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

网站优化怎么做效果才好电商运营自学全套教程

网站优化怎么做效果才好,电商运营自学全套教程,wordpress浏览次数插件,app怎么推广探讨如何使用LangChain库创建一个上下文感知的问答系统。这个系统能够根据用户的聊天历史,将当前问题转化为一个独立的问题,接着根据上下文提供准确的答案。 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 用于创建提示模板,RunnableRunnablePassthroughchain 则用于创建和处理可执行的链式处理流程。

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(question=contextualize_if_needed).assign(context=fake_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.ds6.com.cn/news/121737.html

相关文章:

  • 厦门外贸网站搭建友链网
  • wordpress中文游戏门户国外网站seo免费
  • 企业网站建设设计方案关键词优化排名公司
  • 沧州南皮网站建设大数据营销推广精准粉
  • 企慕网站建设网络推广广州网站设计建设
  • 一站式网站建设供应商汕头seo推广优化
  • 设计本官方网站广告关键词自动优化
  • 南京网站制作公司怎么样站长工具站长
  • 景县做网站一键建站
  • 广东品牌网站建设一个完整的产品运营方案
  • 可以做电算化的网站郑州seo询搜点网络效果佳
  • 男人和男人做爰漫画网站上海网站建设方案
  • 做网站哈尔滨网站seo如何优化
  • 微网站建设加盟开发网站的公司
  • 网站设计的要素南山网站seo
  • 哪些企业喜欢做网站广告关键词排名怎样
  • 常州做网站咨询今天株洲最新消息
  • 网站挣钱网网络游戏排行榜百度风云榜
  • 做图片素材的网站有哪些网站设计与制作教程
  • 上海建设厅焊工证查询网站曹操博客seo
  • wordpress 底部菜单windows优化大师有哪些功能
  • 黄浦集团网站建设千万不要学网络营销
  • 购物网站含有哪些模块资讯门户类网站有哪些
  • 设计师网站哪个好长春疫情最新消息
  • 网络优化工程师有前途吗seo网站首页推广
  • 菲律宾bc网站总代理怎么做免费引流推广
  • 做司法亲子鉴定网站站长之家seo查询
  • 网站建设方案模板下载网络营销顾问
  • 成都网站设计关键词优化软件
  • 老师用什么网站做ppt天津百度seo排名优化