LangChain - prompt_template(多消息模板).py

介绍

多消息模板(系统 + 人类)
适配对话场景,分离系统指令和人类问题,更符合大模型的对话习惯:

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)
添加新评论