介绍
多消息模板(系统 + 人类)
适配对话场景,分离系统指令和人类问题,更符合大模型的对话习惯:
code
import os
from dotenv import load_dotenv
from langchain_openai import ChatOpenAI
from langchain_core.messages import HumanMessage, SystemMessage
from langchain_core.prompts import ChatPromptTemplate
# 加载环境变量
load_dotenv()
# 获取密钥
# 定义配置字典 (注意使用冒号 :)
qwen_config = {
"api_key": os.getenv("QWEN_API_KEY"), # 获取QWEN_API_KEY
"base_url": "https://dashscope.aliyuncs.com/compatible-mode/v1", # 请求地址
"model_name": "qwen3.5-flash",
}
model_config = qwen_config
# 初始化聊天模型
chat_model = ChatOpenAI(
model=model_config["model_name"], # 模型名称
api_key=model_config["api_key"],
base_url=model_config["base_url"],
temperature=0.7, # 生成随机性,0-1,0为最严谨,1为最灵活
)
# 定义多消息模板,分别设置system和human的内容,{question}为人类问题变量
chat_prompt = ChatPromptTemplate.from_messages(
[
("system", "你是一个数学解题助手,只给出解题步骤和答案,不做额外解释"),
("human", "请解决这个数学题:{question}"),
]
)
# 2. # 传入变量生成消息
messages = chat_prompt.invoke({"question": "2x+5=15,求x的值"})
chain = chat_prompt | chat_model # LangChain 1.0的管道符语法,简洁高效
# 调用模型生成结果
response = chain.invoke(messages)
# 输出结果
print(response.content)