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

上海建站网络科技北京网站设计公司有哪些

上海建站网络科技,北京网站设计公司有哪些,平面设计网课推荐,自助建站seo探讨如何使用LangChain库创建一个上下文感知的问答系统。这个系统能够根据用户的聊天历史#xff0c;将当前问题转化为一个独立的问题#xff0c;接着根据上下文提供准确的答案。 1. 导入所需模块 from operator import itemgetter from config import llm # 从config文件…探讨如何使用LangChain库创建一个上下文感知的问答系统。这个系统能够根据用户的聊天历史将当前问题转化为一个独立的问题接着根据上下文提供准确的答案。 1. 导入所需模块 from operator import itemgetter from config import llm # 从config文件导入语言模型llm from langchain_core.output_parsers import StrOutputParser # 导入字符串输出解析器 from langchain_core.prompts import ChatPromptTemplate # 导入聊天提示模板 from langchain_core.runnables import Runnable, RunnablePassthrough, chain # 导入可执行单元、直通单元和链式处理功能首先我们导入了需要的模块。llm 是一个语言模型StrOutputParser 是一个字符串输出解析器ChatPromptTemplate 用于创建提示模板Runnable、RunnablePassthrough 和 chain 则用于创建和处理可执行的链式处理流程。 2. 指令上下文化用户问题 contextualize_instructions 根据聊天记录将最新的用户问题转换为独立问题。不要回答问题返回问题不要做其他任何事情没有描述性文本这里我们定义了一段指令告知系统根据聊天记录将用户的最新问题转化为一个独立的问题并只返回问题本身而不包含其他信息。 3. 创建聊天提示模板 contextualize_prompt ChatPromptTemplate.from_messages([(system, contextualize_instructions), # 系统指令(placeholder, {chat_history}), # 占位符用于填充聊天历史(human, {question}), # 用户提出的问题] )我们使用 ChatPromptTemplate.from_messages 创建了一个聊天提示模板该模板结合了上下文指令、聊天历史和用户问题用于生成系统提示。 4. 链式处理将上下文指令与语言模型连接 contextualize_question contextualize_prompt | llm | StrOutputParser()在这一步我们将聊天提示模板、语言模型以及字符串输出解析器连接起来形成一个完整的处理链。contextualize_question 将作为处理链的一部分用于上下文化用户问题。 5. 创建问答系统的提示模板 qa_instructions (Answer the user question given the following context:\n\n{context}. )这里我们定义了问答系统的指令系统将根据提供的上下文来回答用户的问题。 qa_prompt ChatPromptTemplate.from_messages([(system, qa_instructions), (human, {question})] )随后我们创建了另一个聊天提示模板 qa_prompt它结合上下文指令和用户问题用于生成问答提示。 6. 定义链式处理函数 chain def contextualize_if_needed(input_: dict) - Runnable:if input_.get(chat_history):return contextualize_questionelse:return RunnablePassthrough() | itemgetter(question)我们定义了一个链式处理函数 contextualize_if_needed用于根据聊天历史上下文化用户问题。如果有聊天历史存在系统将返回上下文化问题的可执行单元否则直接返回用户问题。 7. 模拟数据检索器 chain def fake_retriever(input_: dict) - str:return Tadej Pogačar won the Tour de France in 2024.在这个步骤中我们定义了一个假的检索器 fake_retriever用于模拟从数据库或API中检索数据。在本例中它直接返回一条硬编码的信息。 8. 定义完整的处理流程 full_chain (RunnablePassthrough.assign(questioncontextualize_if_needed).assign(contextfake_retriever)| qa_prompt| llm| StrOutputParser() )full_chain 是整个系统的核心。它将用户问题和聊天历史传递给 contextualize_if_needed 进行上下文处理然后通过 fake_retriever 获取相关的上下文信息接着生成问答提示并使用语言模型生成答案最后解析并输出结果。 9. 调用处理流程 res full_chain.invoke({question: what about Tour de France in 2024,chat_history: [(human, Who won the Tour de France in 2023?),(ai, Jonas Vingegaard.),],} )在这里我们调用了 full_chain传入用户当前的问题和聊天历史。这个链式处理流程会根据历史记录将问题转化为一个独立问题并返回答案。 10. 输出结果 print(res)最后我们将处理结果输出到控制台。 Tadej Pogačar.Process finished with exit code 0
http://www.w-s-a.com/news/904946/

相关文章:

  • 上海网站排名个人网站可以做百度推广
  • 网站主题及样式优化个人网站 可以做论坛吗
  • 中企动力 网站推广一级域名免费申请
  • 山东专业的网站建设博罗做网站哪家强
  • 手机网站支持微信支付吗宝塔如何添加ip域名做网站
  • 什么专业学网站建设企业合同管理系统
  • 我要啦免费统计怎么做网站销售订单管理系统软件
  • 门户网站建设教程更改wordpress端口
  • 普兰店网站建设公司云计算培训
  • 网站建设的网络技术app下载平台哪个好
  • 中国建筑人才网是什么网站导购网站制作
  • 网站建设开票东莞龙岗网站建设
  • 17网站一起做网批最近湘潭的新闻
  • 专业网站设计专业服务网站news怎么做
  • 杭州租房网站建设设计网站架构
  • 安徽做网站公司哪家好建设网站需要什么内容
  • 哪些网络公司可以做机票预订网站网站新闻后台怎么做
  • 微网站 域名企业网站怎么做推广
  • 兴安盟住房和城乡建设部网站在国外做网站
  • 南雄市建设局网站搜索关键词的方法
  • 网站建设维护工作经验深圳定制展会
  • 新闻类网站备案WordPress评论昵称显示错误
  • 如何建立一个个人网站自己做一个购物网站
  • 吴忠网站建设公司中国建筑股份有限公司 官网
  • 深圳电商网站开发公司page list wordpress
  • 长安外贸网站建设顺德区网站设计建设企业
  • 临沂市建设局网站简介专业建设网站开发
  • 肇庆网站制作设计中国企业500强招聘
  • 苏州厂房装修宁波seo网络推广外包报价
  • 文山知名网站建设惠州哪家做网站好