Deep Read
ChatPromptTemplate
ChatPromptTemplate 创建聊天消息列表,模板带有对应角色。常用的有 AIMessagePromptTemplate、SystemMessagePromptTemplate、HumanMessagePromptTemplate。
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate, SystemMessagePromptTemplate
from langchain_core.output_parsers import StrOutputParser
from models import DEEPSEEK_URL, DEEPSEEK_V4_PRO
import os
api_key = os.getenv("MY_DEEPSEEK_API_KEY")
base_url = DEEPSEEK_URL
model = DEEPSEEK_V4_PRO
llm = ChatOpenAI(api_key=api_key, base_url=base_url, model=model)
"""
# 第1种格式
template = ChatPromptTemplate.from_messages(
[("system", "你是一名专业的翻译助手"), ("human", "讲以下{text} 翻译成英文")]
)
# 第2种格式
template = ChatPromptTemplate.from_messages([("human", "讲以下{text} 翻译成英文")])
"""
# 第3种格式
template = ChatPromptTemplate.from_template("讲以下{text} 翻译成英文")
message = template.invoke({"text": "我是程序员"})
# 真正调用大模型,返回 AI 的回答
aimessage = llm.invoke(message)
print(aimessage.content)
以上是ChatPromptTemplate 常用的 3 种方式
from_messages 中的参数是列表, 但是列表里装的是 (角色, 内容) 的元组,[("system", "你是一名专业的程序员"), ("user", "{input}")]
每个元组就是一条消息:
- 第一个元素:角色,固定字符串
"system"/"human"/"user"/"ai" - 第二个元素:消息内容,可以包含
{变量名}占位符