当前位置: 首页 > news >正文

湖南建设c证查询网站新乡网络公司首选

湖南建设c证查询网站,新乡网络公司首选,网站建设选亿企网络,建个企业网站一年需要多少钱LangChain 的核心组件 模型 I/O 封装 LLMs:大语言模型Chat Models:一般基于 LLMs,但按对话结构重新封装PromptTemple:提示词模板OutputParser:解析输出 数据连接封装 Document Loaders:各种格式文件的加载…

LangChain 的核心组件

  1. 模型 I/O 封装
    • LLMs:大语言模型
    • Chat Models:一般基于 LLMs,但按对话结构重新封装
    • PromptTemple:提示词模板
    • OutputParser:解析输出
  2. 数据连接封装
    • Document Loaders:各种格式文件的加载器
    • Document Transformers:对文档的常用操作,如:split, filter, translate, extract metadata, etc
    • Text Embedding Models:文本向量化表示,用于检索等操作(啥意思?别急,后面详细讲)
    • Verctorstores: (面向检索的)向量的存储
    • Retrievers: 向量的检索
  3. 对话历史管理
    • 对话历史的存储、加载与剪裁
  4. 架构封装
    • Chain:实现一个功能或者一系列顺序功能组合
    • Agent:根据用户输入,自动规划执行步骤,自动选择每步需要的工具,最终完成用户指定的功能
      • Tools:调用外部功能的函数,例如:调 google 搜索、文件 I/O、Linux Shell 等等
      • Toolkits:操作某软件的一组工具集,例如:操作 DB、操作 Gmail 等等
  5. Callbacks

文档(以 Python 版为例)

  • 功能模块:https://python.langchain.com/docs/get_started/introduction
  • API 文档:https://api.python.langchain.com/en/latest/langchain_api_reference.html
  • 三方组件集成:https://python.langchain.com/docs/integrations/platforms/
  • 官方应用案例:https://python.langchain.com/docs/use_cases
  • 调试部署等指导:https://python.langchain.com/docs/guides/debugging

一、模型 I/O 封装

把不同的模型,统一封装成一个接口,方便更换模型而不用重构代码。

1.1 模型 API:LLM vs. ChatModel

# !pip install --upgrade langchain
# !pip install --upgrade langchain-openai
# !pip install --upgrade langchain-community

1.1.1 OpenAI 模型封装

from langchain_openai import ChatOpenAIllm = ChatOpenAI(model="gpt-4o-mini")  # 默认是gpt-3.5-turbo
response = llm.invoke("你是谁")
print(response.content)# 我是一个人工智能助手,旨在回答问题和提供信息。有什么我可以帮助你的吗?

1.1.2 多轮对话 Session 封装

rom langchain.schema import (AIMessage,  # 等价于OpenAI接口中的assistant roleHumanMessage,  # 等价于OpenAI接口中的user roleSystemMessage  # 等价于OpenAI接口中的system role
)messages = [SystemMessage(content="你是CSDN的课程助理。"),HumanMessage(content="我是学员,我叫靓仔。"),AIMessage(content="欢迎!"),HumanMessage(content="我是谁")
]ret = llm.invoke(messages)print(ret.content)
# 你是靓仔,一位学员。如果你有任何问题或需要帮助的地方,请随时告诉我!

划重点:通过模型封装,实现不同模型的统一接口调用

1.1.3 换个国产模型

# !pip install qianfan
# 其它模型分装在 langchain_community 底包中
from langchain_community.chat_models import QianfanChatEndpoint
from langchain_core.messages import HumanMessage
import osllm = QianfanChatEndpoint(qianfan_ak=os.getenv('ERNIE_CLIENT_ID'),qianfan_sk=os.getenv('ERNIE_CLIENT_SECRET')
)messages = [HumanMessage(content="介绍一下你自己")
]ret = llm.invoke(messages)print(ret.content)
# 您好,我是文心一言,英文名是ERNIE Bot。我能够与人对话互动,回答问题,协助创作,高效便捷地帮助人们获取信息、知识和灵感。

1.2 模型的输入与输出

1.2.1 Prompt 模板封装

  1. PromptTemplate 可以在模板中自定义变量
from langchain.prompts import PromptTemplatetemplate = PromptTemplate.from_template("给我讲个关于{subject}的笑话")
print("===Template===")
print(template)
print("===Prompt===")
print(template.format(subject='小明'))

print(template.format(subject='小明'))
#%%
from langchain_openai import ChatOpenAI# 定义 LLM
llm = ChatOpenAI()
# 通过 Prompt 调用 LLM
ret = llm.invoke(template.format(subject='小明'))
# 打印输出
print(ret.content)
  1. ChatPromptTemplate 用模板表示的对话上下文
from langchain.prompts import (ChatPromptTemplate,HumanMessagePromptTemplate,SystemMessagePromptTemplate,
)
from langchain_openai import ChatOpenAItemplate = ChatPromptTemplate.from_messages([SystemMessagePromptTemplate.from_template("你是{product}的客服助手。你的名字叫{name}"),HumanMessagePromptTemplate.from_template("{query}"),]
)llm = ChatOpenAI()
prompt = template.format_messages(product="AGI课堂",name="瓜瓜",query="你是谁"
)print(prompt)ret = llm.invoke(prompt)print(ret.content)
  1. MessagesPlaceholder 把多轮对话变成模板

#%%
from langchain.prompts import (ChatPromptTemplate,HumanMessagePromptTemplate,MessagesPlaceholder,
)human_prompt = "Translate your answer to {language}."
human_message_template = HumanMessagePromptTemplate.from_template(human_prompt)chat_prompt = ChatPromptTemplate.from_messages(# variable_name 是 message placeholder 在模板中的变量名# 用于在赋值时使用[MessagesPlaceholder("history"), human_message_template]
)
from langchain_core.messages import AIMessage, HumanMessagehuman_message = HumanMessage(content="Who is Elon Musk?")
ai_message = AIMessage(content="Elon Musk is a billionaire entrepreneur, inventor, and industrial designer"
)messages = chat_prompt.format_prompt(# 对 "history""language" 赋值history=[human_message, ai_message], language="中文"
)print(messages.to_messages())
result = llm.invoke(messages)
print(result.content)

划重点:把Prompt模板看作带有参数的函数

http://www.dtcms.com/a/600068.html

相关文章:

  • 国际站wap端流量广州招聘网网站开发
  • 佛山市门户网站建设全屋设计
  • 邢台做移动网站公司电话辽宁旅游网站开发
  • 网站开发系统规划推广普通话的广告语
  • 东西湖建设局网站网站建设服务费怎么写分录
  • 网站备案找回密码电子商务的发展趋势
  • 汕头网站建设过程汉服网站建设毕业设计
  • 大连精美网站制作做地税电子签章的网站
  • 网站架构模板文书写作网站
  • 网站管理系统排名wordpress付费显示
  • 衡阳网站建设衡阳千度网络微微网站建设
  • 门户网站信息发布管理办法重庆建设工程网站
  • 建设网站的目标免费咨询律师电话
  • 亚马逊虚拟主机做网站wordpress基础
  • 东莞手机网站价格便宜wordpress 密码更改
  • 玉环城乡建设规划局网站在线直播网站开发
  • 多光营销软件网站wordpress 登陆插件下载
  • 做个电商网站需要怎么做济南模板网站制作
  • 河北省和城乡住房建设厅网站淘宝客优惠券网站怎么做的
  • asp.net 网站开发框架广州网站设计哪个好
  • .net 网站开发流程西安 网站托管
  • 松岗做网站公司虚拟空间网站ftp如何差异化同步
  • 自已买域名做网站要多少钱网站数据库太大搬家还原500错误
  • 苏州做网站公司怎么样如何建立自己的商城
  • 做动画视频的网站wordpress 数字指纹
  • 苏州淘宝网站建设培训盐城有没有做公司网站
  • 网站建设通讯设备中企动力软件外包的成本标准
  • iis配置网站权限江苏优化网站公司
  • 网站建设成本估算软件库合集软件资料链接
  • 目前做系统比较好的网站产品网站建设