LLMs vs chat models对比介绍--(ChatPromptTemplate, from_messages)
LLMS
大型语言模型(Large Language Models,LLMs)是LangChain的核心组件。LangChain并不提供自己的LLMs,而是提供了一个标准接口,用于与许多不同的LLMs进行交互。
具体来说,这个接口接受一个字符串作为输入,并返回一个字符串。
LLMs Models
from langchain_openai import 0penAI
from langchain_community.llms.tongyi import Tongyi
LLMs Models示例
from langchain_community.llms.tongyi import Tongyi
from langchain.prompts import PromptTemplate
# 获取apikey
from dotenv import find_dotenv, load_dotenv
import os
load_dotenv(find_dotenv())
DASHSCOPE_API_KEY = os.environ["DASHSCOPE_API_KEY"]
prompt_template=PromptTemplate.from_template(
"给我讲一个关于{topic}的笑话,")
model = Tongyi(model_name='qwen-max')
prompt = prompt_template.format(topic="武大郎")
res = model.invoke(prompt)
print(res)
Chat Models
聊天模型(ChatModels)是LangChain的核心组件。LangChain不提供自己的聊天模型,而是提供了一个标准接口,用于与许多不同的模型进行交互。
具体来说,这个接口接受一个消息列表作为输入,并返回一条消息。
Chat Models
from langchain_openai import ChatOpenAI
from langchain_community.chat models.tongyi import ChatTongyi
ChatPromptTemplate
聊天模型的提示是一个聊天消息列表。
每个聊天消息都与内容相关联,并且有一个额外的参数称为角色。例如,在 OpenAl聊天完成 API 中,一个聊天消息可以与 ai、human 或 system 角色关联。
这样创建一个聊天提示模板:
from langchain_community.llms.tongyi import Tongyi
from langchain.prompts import PromptTemplate, ChatPromptTemplate
# 获取apikey
from dotenv import find_dotenv, load_dotenv
import os
load_dotenv(find_dotenv())
DASHSCOPE_API_KEY = os.environ["DASHSCOPE_API_KEY"]
chat_prompt_template = ChatPromptTemplate.from_messages(
[
("system", "Your name is {name}"),
("human", "你好"),
("ai", "你好啊"),
("human", "{user_input}"),
]
)
print('---类型', type(chat_prompt_template))
messages = chat_prompt_template.format_messages(name='老王', user_input="你叫啥")
print(messages)
ChatPromptTemplate.from_messages 接受多种消息表示形式
混合消息
例如,除了上面使用的 (type,content)的 2元组表示,你还可以传入MessagePromptTemplate或 BaseMessage 的实例。这为您构建聊天提示提供了极大的灵活性。
from langchain_community.llms.tongyi import Tongyi
from langchain.prompts import ChatPromptTemplate, HumanMessagePromptTemplate, SystemMessagePromptTemplate
from langchain_core.messages import SystemMessage
# 获取apikey
from dotenv import find_dotenv, load_dotenv
import os
load_dotenv(find_dotenv())
DASHSCOPE_API_KEY = os.environ["DASHSCOPE_API_KEY"]
# 定义一个 human_message
human_message_prompt_template = HumanMessagePromptTemplate.from_template("{text}")
# 定定义chat_prompt_template ,引入多种消息形式
chat_prompt_template = ChatPromptTemplate.from_messages([
SystemMessage(
content=(
"你喜欢讲笑话"
)
),
human_message_prompt_template,
]
)
messages = chat_prompt_template.format_messages(text="今天天气真好")
print(messages)
大模型计算
from langchain_community.llms.tongyi import Tongyi
from langchain.prompts import ChatPromptTemplate, HumanMessagePromptTemplate, SystemMessagePromptTemplate
from langchain_core.messages import SystemMessage
from langchain.schema import SystemMessage, AIMessage, HumanMessage
# 获取apikey
from dotenv import find_dotenv, load_dotenv
import os
load_dotenv(find_dotenv())
DASHSCOPE_API_KEY = os.environ["DASHSCOPE_API_KEY"]
# 定定义chat_prompt_template
chat_prompt_template = ChatPromptTemplate.from_messages([
SystemMessage(
content=(
"你是一个翻译官,你的任务是将用户的文本翻译成英语"
)
),
HumanMessage(content="你好"),
AIMessage(content="hello"),
HumanMessagePromptTemplate.from_template("{text}")
]
)
# 1.定义模型
model = Tongyi(model_name='qwen-max', model_kwargs={'temperature': 0.01})
# 2.定义 chain 表达式写法。----回顾前面知识----,了解传统写法。推荐表达式写法
chain = chat_prompt_template | model
# chain 传统写法
pro = chat_prompt_template.format_messages(text="我喜欢美女") # fromat 接收的是 = 列表
# 3.模型计算
# 表达式计算方法
res = chain.invoke({"text": "我喜欢吃羊肉串"}) # chain表达式接收的是 {} 字典
print(res)
# 传统计算方法
res = model.invoke(pro)
print(res)
end...
本文来自博客园,作者:王竹笙,转载请注明原文链接:https://www.cnblogs.com/edeny/p/18661840
分类:
AI大模型
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix