您的位置:首页 > 新闻 > 热点要闻 > 哪里有网站监控工具_外贸网络推广员_百度快速收录软件_关键词优化好

哪里有网站监控工具_外贸网络推广员_百度快速收录软件_关键词优化好

2025/1/5 6:30:56 来源:https://blog.csdn.net/YZL40514131/article/details/144375163  浏览:    关键词:哪里有网站监控工具_外贸网络推广员_百度快速收录软件_关键词优化好
哪里有网站监控工具_外贸网络推广员_百度快速收录软件_关键词优化好

在这里插入图片描述


ModelsIO LLM 与 ModelsIO ChatModels详解

  • 一、LangChain ModelsIO LLM
    • 1、简介
    • 2、LLMs 模块的优势
    • 3、实战示例
  • 二、LangChain ModelsIO ChatModels
    • 1、简介
    • 2、ChatModels 与 Models 的区别
    • 3、Messages 类型
    • 4、代码示例
      • 4.1、List[BaseMessage] 形式
      • 4.2、指定消息类型
      • 4.3、结合提示词模板

一、LangChain ModelsIO LLM

1、简介

LangChain 本质上还是对大语言模型的封装,其设计旨在简化对 LLM 的应用,并使应用不局限于特定的大语言模型。所以,大语言模型(LLM)仍然是 LangChain 的核心组件。

2、LLMs 模块的优势

LangChain 并不会提供 LLMs,而是通过提供一个统一的接口来适配不同的大语言模型,以便用户可以根据自己的需求来选择合适的模型进行调用。

通过 LLMs 模块这样的设计使得 LangChain 在使用大型语言模型进行应用开发时具有更大的灵活性和可扩展性。
开发者可以专注于业务逻辑的实现,而无需担心底层的模型选择和集成细节。

3、实战示例

在使用某个大语言模型之前,需要先安装对应的 Python 第三方库。
本章节将继续使用 OpenAI 的 LLM:
安装命令:pip install langchain_openai

# ChatGPT模型调用对象
import osfrom langchain_openai import OpenAI
os.environ["OPENAI_API_KEY"] = "xxxxxxxxxxx"  # 将个人token替换到这个位置
os.environ["OPENAI_API_BASE"] = "xxxxxxxxxxx"llm = OpenAI()
# 输入提示词模版中的变量部分,调用链会自动完成后续的调用和解析
res = llm.invoke("出给一个宣传语")  # invoke 调用
res_batch = llm.batch(["出给一个宣传语", "将静夜思翻译为英文"])  # batch 调用
print(res)
print("======")
print(res_batch)

结合上节课的模板,可以将上述内容优化如下:

# ChatGPT模型调用对象
llm = OpenAI()
# 提示词模板
prompt = PromptTemplate.from_template("给出一个关于{goods}的宣传语")
# 将提示词模板与大模型组合为一个调用链
chain = prompt | llm
# 输入提示词模版中的变量部分,调用链会自动完成后续的调用和解析
res = chain.invoke({"goods":"鲜花"})  # invoke 调用
res_batch = chain.batch([{"goods":"鲜花"}])  # batch 调用
print(res)
print("======")
print(res_batch)

扩展用法

  • 自定义 LLM :允许用户自定义 LLM 的功能,增加灵活性。
  • 缓存:添加缓存,加快运行速度。
  • Stream 流:支持返回一个迭代器,包含每次的回答结果。

二、LangChain ModelsIO ChatModels

1、简介

聊天模型 ChatModels 是 Models 的一种变体,基于语言模型的基础上进行了优化。不同于传统的语言模型,ChatModels 更适合对话场景,因为它是基于消息进行响应和返回的。这意味着用户可以像与真人交流一样与 ChatModels 进行对话,而不需要提供原始文本。

2、ChatModels 与 Models 的区别

~ModelsChatModels
应用场景文本生成、机器翻译、信息检索智能客服、虚拟助手、社交机器人
输入原始文本消息形式
输出单一的文本消息形式

语言模型:更加侧重于文本生成和理解,适用于各种文本处理和自然语言理解任务。
聊天模型:更加侧重于与用户进行自然语言交流。

3、Messages 类型

上述提到 ChatModels 基于的是消息而不是文本本身,所以消息也是 ChatModels 的重要组成部分。

在传入时,可以使用默认 List[BaseMessage] 的形式传入消息不指定消息发出者,同时也可以将消息对象转换为 LangChain 定义好的几种消息类型,如下所示:

  • HumanMessage:代表用户的消息。
  • AIMessage:代表模型输出的消息。
  • SystemMessage:代表系统消息。
  • FunctionMessage:表示函数调用的结果,该参数为被调用的函数的名称。
  • ToolMessage:表示工具调用的结果,与 FunctionMessage 不同,是为了匹配 OpenAI 的 function 和 tool 消息类型。

4、代码示例

4.1、List[BaseMessage] 形式

聊天模型支持传入基础消息的列表作为输入,列表中的的内容需要包含 role 和 content 所组成的字典形式,代码示例如下所示:

# ChatGPT 调用对象
import osfrom langchain_core.messages import SystemMessage, HumanMessage
from langchain_openai import ChatOpenAIos.environ["OPENAI_API_KEY"] = "xxxxxxxxxxxxxxxx"  # 将个人token替换到这个位置
os.environ["OPENAI_API_BASE"] = "xxxxxxxxxxxxxxxx"model = ChatOpenAI()
# 消息列表,指定消息类型
messages = [SystemMessage(content="你是一个翻译各种语言的助手"),HumanMessage(content="把静夜思这首诗翻译为英文")
]
messages_1 = [SystemMessage(content="你是一个给出广告词的助手"),HumanMessage(content="给出耳机的广告词")
]
messages_2 = [SystemMessage(content="你是一个给出宣传语的助手"),HumanMessage(content="宣传音乐节")
]
# invoke 方式调用
res = model.invoke(messages)
# batch 方式调用
res_batch = model.batch([messages_1, messages_2])
print(res)
print("=======")
print(res_batch)

在这里插入图片描述

4.2、指定消息类型

聊天模型除了支持基础的输入,显式指定出 role 和 content 的内容,还可以使用 LangChain 已经封装好的消息类型作为列表元素组合为消息列表。代码示例如下:

# ChatGPT 调用对象
model = ChatOpenAI()
# 消息列表,指定消息类型
messages = [SystemMessage(content="你是一个翻译各种语言的助手"),HumanMessage(content="把静夜思这首诗翻译为英文")
]
messages_1 = [SystemMessage(content="你是一个给出广告词的助手"),HumanMessage(content="给出耳机的广告词")
]
messages_2 = [SystemMessage(content="你是一个给出宣传语的助手"),HumanMessage(content="宣传音乐节")
]
# invoke 方式调用
res = model.invoke(messages)
# batch 方式调用
res_batch = model.batch([messages_1, messages_2])
print(res)
print("=======")
print(res_batch)

在这里插入图片描述

4.3、结合提示词模板

聊天模型可以同前边章节介绍的聊天提示模板结合起来,组成调用链,代码示例如下:

# ChatGPT 调用对象
model = ChatOpenAI()
# 消息提示模板
messages = ChatPromptTemplate.from_messages([SystemMessage(content="你是一个翻译各种语言的助手"),HumanMessagePromptTemplate.from_template("把 {poetry} 的原文诗翻译为英文")
])
# 将模板和模型调用组合为调用链
chain = messages | model
# 发送请求
res = chain.invoke({"poetry": "静夜思"})
print(res)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com