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

网站建设人员工作要求重庆seo小潘大神

网站建设人员工作要求,重庆seo小潘大神,专业做网站网络,建设网站需要准备哪些内容前言 LangChain 也是一套面向大模型的开发框架(SDK)LangChain 是 AGI 时代软件工程的一个探索和原型学习 LangChain 要关注接口变更LangChain 的核心组件 模型 I/O 封装 LLMs:大语言模型Chat Models:一般基于 LLMs,但按对话结构重新封装PromptTemple:提示词模板OutputPar…

前言

  • LangChain 也是一套面向大模型的开发框架(SDK)
  • LangChain 是 AGI 时代软件工程的一个探索和原型
  • 学习 LangChain 要关注接口变更

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 ChatOpenAI
from dotenv import load_dotenv, find_dotenv_ = load_dotenv(find_dotenv())llm = ChatOpenAI(model="gpt-4o-mini")  # 默认是gpt-3.5-turbo
response = llm.invoke("你是谁")
print(response.content)
我是一个人工智能助手,旨在回答问题和提供信息。如果你有任何问题或需要帮助,请随时告诉我!

1.1.2 多轮对话 Session 封装

from langchain_openai import ChatOpenAI
from dotenv import load_dotenv, find_dotenv_ = load_dotenv(find_dotenv())llm = ChatOpenAI(model="gpt-4o-mini")  # 默认是gpt-3.5-turbofrom langchain.schema import (AIMessage,  # 等价于OpenAI接口中的assistant roleHumanMessage,  # 等价于OpenAI接口中的user roleSystemMessage  # 等价于OpenAI接口中的system role
)messages = [SystemMessage(content="你是大模型应用开发教程的专业老师。"),HumanMessage(content="我是学员,我叫Rivers。"),AIMessage(content="欢迎!"),HumanMessage(content="我是谁")
]ret = llm.invoke(messages)print(ret.content)
你是Rivers,想要学习大模型应用开发的学员。如果你有任何问题或者需要帮助的地方,请告诉我!
划重点:通过模型封装,实现不同模型的统一接口调用

1.1.3 换个国产模型

pip install qianfan

千帆AK和SK如何获取:

  • 登录千帆官网:千帆大模型平台-百度智能云千帆
  • 登录账号
    在这里插入图片描述
  • 点击控制台
  • 进入大模型平台
    在这里插入图片描述
  • 创建应用获得AK和SK

在这里插入图片描述

# 其它模型分装在 langchain_community 底包中
from langchain_community.chat_models import QianfanChatEndpoint
from langchain_core.messages import HumanMessagellm = QianfanChatEndpoint(qianfan_ak="xxx",qianfan_sk="xxx"
)messages = [HumanMessage(content="介绍一下你自己")
]ret = llm.invoke(messages)print(ret.content)

当然现在新版千帆大模型官网提示:v2版本推理接口,兼容OpenAI协议基于API Key认证。如果需要继续创建旧版应用,也就是代码中将不能用ak和sk了,需要申请apikey:
在这里插入图片描述
代码可以改为:

from openai import OpenAIclient = OpenAI(api_key="bce-v3/ALTAK-xxx",  # 替换为控制台获取的API Keybase_url="https://qianfan.baidubce.com/v2"  # V2接口统一域名
)# 调用ERNIE-4.0模型
response = client.chat.completions.create(model="ernie-4.0-turbo-8k",  # V2支持的模型标识messages=[{"role": "user", "content": "介绍一下你自己"}]
)
print(response.choices[0].message.content)

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='小明'))
===Template===
input_variables=['subject'] template='给我讲个关于{subject}的笑话'
===Prompt===
给我讲个关于小明的笑话
from langchain.prompts import PromptTemplate
from langchain_openai import ChatOpenAI
from dotenv import load_dotenv, find_dotenv_ = load_dotenv(find_dotenv())
template = PromptTemplate.from_template("给我讲个关于{subject}的笑话")
print("===Template===")
print(template)
print("===Prompt===")
print(template.format(subject='小明'))
# 定义 LLM
llm = ChatOpenAI()
# 通过 Prompt 调用 LLM
ret = llm.invoke(template.format(subject='小明'))
# 打印输出
print(ret.content)
===Template===
input_variables=['subject'] input_types={} partial_variables={} template='给我讲个关于{subject}的笑话'
===Prompt===
给我讲个关于小明的笑话
好的,这有一个关于小明的笑话:小明问爸爸:“爸爸,为什么房子会有窗户?”
爸爸答道:“因为房子要呼吸。”
小明说:“那为什么我看到的房子没有喘气呢?”
  1. ChatPromptTemplate 用模板表示的对话上下文
from langchain.prompts import (ChatPromptTemplate,HumanMessagePromptTemplate,SystemMessagePromptTemplate,
)from langchain_openai import ChatOpenAIfrom dotenv import load_dotenv, find_dotenv_ = load_dotenv(find_dotenv())
template = ChatPromptTemplate.from_messages([SystemMessagePromptTemplate.from_template("你是{product}工程师。你的名字叫{name}"),HumanMessagePromptTemplate.from_template("{query}"),]
)llm = ChatOpenAI()
prompt = template.format_messages(product="大模型应用开发",name="Rivers",query="你是谁"
)print(prompt)ret = llm.invoke(prompt)print(ret.content)
[SystemMessage(content='你是大模型应用开发工程师。你的名字叫Rivers', additional_kwargs={}, response_metadata={}), HumanMessage(content='你是谁', additional_kwargs={}, response_metadata={})]
你好,我是一个大模型应用开发工程师。如果你有任何关于应用开发或者大模型相关的问题,我很乐意为你提供帮助。有什么我可以帮你的吗?
  1. MessagesPlaceholder 把多轮对话变成模板
from langchain.prompts import (ChatPromptTemplate,HumanMessagePromptTemplate,MessagesPlaceholder,
)
from langchain_openai import ChatOpenAI
from dotenv import load_dotenv, find_dotenv_ = load_dotenv(find_dotenv())
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())
llm = ChatOpenAI()
result = llm.invoke(messages)
print(result.content)
[HumanMessage(content='Who is Elon Musk?', additional_kwargs={}, response_metadata={}), AIMessage(content='Elon Musk is a billionaire entrepreneur, inventor, and industrial designer', additional_kwargs={}, response_metadata={}), HumanMessage(content='Translate your answer to 中文.', additional_kwargs={}, response_metadata={})]
埃隆·马斯克是一位亿万富翁企业家、发明家和工业设计师。
划重点:把Prompt模板看作带有参数的函数

1.2.2、从文件加载 Prompt 模板

from langchain.prompts import PromptTemplatetemplate = PromptTemplate.from_file("../data/test1.csv",encoding='utf-8')
print("===Template===")
print(template)
print("===Prompt===")
print(template.format(topic='学生'))
===Template===
input_variables=[] input_types={} partial_variables={} template='姓名,年龄\n张三,23\n李四,24'
===Prompt===
姓名,年龄
张三,23
李四,24

1.3 结构化输出

1.3.1 直接输出 Pydantic 对象

from pydantic import BaseModel, Field
from langchain.prompts import PromptTemplate
from langchain_openai import ChatOpenAI# 定义你的输出对象
class Date(BaseModel):year: int = Field(description="Year")month: int = Field(description="Month")day: int = Field(description="Day")era: str = Field(description="BC or AD")from dotenv import load_dotenv, find_dotenv_ = load_dotenv(find_dotenv())model_name = 'gpt-4o-mini'
temperature = 0
llm = ChatOpenAI(model_name=model_name, temperature=temperature)# 定义结构化输出的模型
structured_llm = llm.with_structured_output(Date)template = """提取用户输入中的日期。
用户输入:
{query}"""prompt = PromptTemplate(template=template,
)query = "2025年五月22日天气晴..."
input_prompt = prompt.format_prompt(query=query)res = structured_llm.invoke(input_prompt)
print(res)
year=2025 month=5 day=22 era='AD'

1.3.2 输出指定格式的 JSON

from dotenv import load_dotenv, find_dotenv
from langchain_core.prompts import PromptTemplate
from langchain_openai import ChatOpenAI_ = load_dotenv(find_dotenv())
json_schema = 
http://www.dtcms.com/wzjs/69881.html

相关文章:

  • 做调查问卷的网站有什么祁阳seo
  • 有赞云 wordpress网站关键词如何优化上首页
  • 厦门 微网站制作百度用户服务中心电话
  • web做网站含源代码软文推广平台有哪些
  • 企业网站建设心得品牌如何做推广
  • 哪家专门做特卖网站网站seo优化网站
  • 企业网站设计图网络营销管理办法
  • 企业 北京 响应式网站制作培训方案及培训计划
  • wordpress 缩略图调用网站seo关键词优化排名
  • 网上买名表最靠谱的网站今日新闻头条新闻最新
  • 做网站是怎么挣钱的湖南企业竞价优化服务
  • 惠州网站建设哪里找百度网络科技有限公司
  • html5高端网站建设织梦模板今日头条新闻下载安装
  • 淘宝网站建设目标是什么网络培训班
  • 微网站怎么搭建烘焙甜点培训学校
  • 樟木头网站仿做seo关键词优化培训
  • 公司微网站怎么做的网站怎样做推广
  • oracle 网站开发大数据营销经典案例
  • 网站制作软件叫什么百度首页优化
  • 网站建设管理工作计划湖南省人民政府官网
  • 中文域名的网站有哪些推广普通话内容100字
  • 网页搜索栏隐藏了北京网站优化方案
  • 政务公开网站建设要求做小程序的公司
  • 可以充值的网站怎么建设职业培训学校加盟合作
  • 苏州要服务网站建设泉州seo按天计费
  • 网站建设报价 东莞怎样做电商 入手
  • 河北省镇政府做网站吗百度代理公司
  • 电商网站大连广告资源网
  • 做网站必须知道的问题互联网广告平台代理
  • 淘宝客 wordpress合肥优化