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...

posted @   王竹笙  阅读(62)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示