langchain 入门指南(四)- 指定大语言模型的角色

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站

使用过 OpenAI 或者其他 LLM 的人应该都知道,有时候 LLM 会回答得不那么准确。

这是因为,LLM 可能并不知道你问题的背景是什么,所以只能从它大量学习到的数据中,找到一个最接近的答案,

但可能这个答案跟我们实际想要的答案相去甚远。

指定角色

如果我们为 LLM 指定一个角色,那么就等于给了 LLM 一个明确的指示,为它提供了一个上下文框架,这样它就能使用相关的知识来回答问题。

下面是一些例子:

指定为翻译

python 复制代码
from langchain_openai import ChatOpenAI
from langchain_core.messages import HumanMessage, SystemMessage

chat = ChatOpenAI(
    model="yi-large",
    temperature=0.3,
    max_tokens=200,
    api_key='your key',
    base_url="https://api.lingyiwanwu.com/v1",
)

messages = [
    SystemMessage(content="你是一名翻译,把用户的输入翻译为英语"),
    HumanMessage(content="今天天气真好"),
]

response = chat.invoke(messages)

print(response.content)

指定为 程序员

python 复制代码
from langchain_openai import ChatOpenAI
from langchain_core.messages import HumanMessage, SystemMessage

chat = ChatOpenAI(
    model="yi-large",
    temperature=0.3,
    max_tokens=200,
    api_key='your key',
    base_url="https://api.lingyiwanwu.com/v1",
)

messages = [
    # 如果设定的是翻译角色,那么 LLM 只是翻译 ruby 是什么
    # SystemMessage(content="你是一名翻译"),
    SystemMessage(content="你是一名程序员"),
    HumanMessage(content="ruby是什么"),
]

response = chat.invoke(messages)

print(response.content)

在上面的例子中,我们可以看到,在给 LLM 设定的角色是翻译的时候,我问他它 ruby 是什么,它直接翻译成中文给我。

但是当我给它设定的角色是程序员的时候,它就给我回答了 ruby 是一种编程语言。

指定上下文

下面这个例子中,我们为 LLM 提供了一个上下文,这样 LLM 就能更好地回答我们的问题。

如果我们直接问 LLM 我想查询所有年龄大于 18 岁的用户,应该怎么写 SQL 语句? 的话,它可能会回答得不那么准确,因为它并不知道我们的表结构是怎样的。

python 复制代码
from langchain_openai import ChatOpenAI
from langchain_core.messages import HumanMessage, SystemMessage

chat = ChatOpenAI(
    model="yi-large",
    temperature=0.3,
    max_tokens=200,
    api_key='your key',
    base_url="https://api.lingyiwanwu.com/v1",
)

messages = [
    SystemMessage(content="你是一名 MySQL DBA"),
    HumanMessage(content=""""
    假设我有一个 user 表,里面有 id, name, age 三个字段,我想查询所有年龄大于 18 岁的用户,应该怎么写 SQL 语句?
    """),
]

response = chat.invoke(messages)

print(response.content)

总结

如果我们想从 LLM 那里得到更加精确、高质量的答案,我们就需要为它指定一个角色,或者给他提供更多跟我们问题相关的内容。

当然,我们没办法给他提供太多的上下文,因为这样会让 LLM 处理很久,需要更昂贵的价格,同时,每个 LLM 的最大输入长度也是有限制的。

相关推荐
DO_Community1 小时前
Claude Opus 5 现已上线 DigitalOcean AI 推理云
人工智能·llm·agent·claude
幸福指北1 小时前
🚀 开源了,一个人 + AI 肝出一个 AI 终端 | AShell 技术分享
运维·人工智能·ai·终端
可以飞的话1 小时前
一、机器学习概述
人工智能·机器学习
sunneo1 小时前
磐石2.0发布,科学建模新突破
人工智能
煎饼学大模型1 小时前
Agent 的“大脑-手“解耦架构:当推理层和工具执行层各自独立演进
数据库·人工智能·oracle·架构·agent
南京码讯光电技术有限公司2 小时前
2026年4G/5G工业CPE推荐:从极端场景看硬核选型
人工智能
企业智能研究3 小时前
企业如何落地企微私域智能客服来降本增效:从技术选型到实施落地的完整指南
大数据·人工智能·企业微信·智能客服
人间凡尔赛3 小时前
2026多智能体系统深度解析:从GPT-5.6 Ultra到开源框架,构建你的Agent军团
ai·agent·多智能体·langgraph·crewai·gpt-5.6
AI办公探索者3 小时前
仓储物流AI任务执行的技术拆解:从WMS自动化到多设备协同的落地路径
运维·人工智能·ai·自动化
delishcomcn3 小时前
边缘计算+AI模型:电化铝分切装备的智能化改造路径
大数据·人工智能·边缘计算