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

旅游网站有哪些功能别人买了域名做违法网站

旅游网站有哪些功能,别人买了域名做违法网站,wordpress 投票,免费网页空间到哪申请介绍基于 LangChain 框架的文档检索与问答功能,目标是通过查询存储的向量数据库(VectorDB),为用户的问题检索相关内容,并生成自然语言的答案。以下是代码逻辑的详细解析: 代码结构与功能 初始化环境与加载…

介绍基于 LangChain 框架的文档检索与问答功能,目标是通过查询存储的向量数据库(VectorDB),为用户的问题检索相关内容,并生成自然语言的答案。以下是代码逻辑的详细解析:


代码结构与功能

  1. 初始化环境与加载配置
    from dotenv import load_dotenv
    load_dotenv()os.environ['OPENAI_API_KEY'] = os.getenv("OPENAI_API_KEY")
    
    • 使用 dotenv 加载 .env 文件中的环境变量(如 OPENAI_API_KEYOPENAI_API_BASE)。
    • 将 OpenAI API 密钥设置为环境变量,供后续使用。

  1. 加载向量数据库
    VECTORDB_DIR = "data/airline_policy_vectordb"
    K = 2vectordb = Chroma(collection_name="rag-chroma",persist_directory=str(here(VECTORDB_DIR)),embedding_function=OpenAIEmbeddings()
    )
    print("Number of vectors in vectordb:", vectordb._collection.count(), "\n\n")
    
    • VECTORDB_DIR:向量数据库的存储目录。
    • K=2:设置检索时返回的文档数。
    • 使用 Chroma 加载向量数据库:
      • collection_name 指定集合名称。
      • persist_directory 指向存储数据库的目录。
      • embedding_function 使用 OpenAIEmbeddings 生成向量嵌入。
    • 打印向量数据库中存储的向量数量。

  1. 检索文档并生成提示
    message = "What is the cancelation rule for a flight ticket at swiss airline policy?"docs = vectordb.similarity_search(message, k=K)question = "# User new question:\n" + message
    retrieved_content = ""
    for doc in docs:retrieved_content += f"{doc.page_content}\n\n"
    prompt = f"# Content:\n{retrieved_content}\n\n{question}"pprint(prompt)
    
    • 定义用户问题 message,这是需要检索和回答的问题。
    • 检索文档
      • 使用 vectordb.similarity_search 在向量数据库中查找与问题最相似的文档,返回 K 个相关文档。
    • 生成提示
      • 将用户问题和检索到的文档内容整合为一个提示(prompt),格式如下:
        # Content:
        (检索到的文档内容)# User new question:
        (用户问题)
        

部分代码执行结果如下:
在这里插入图片描述
在这里插入图片描述


  1. 调用聊天模型生成答案
    from langchain_openai import ChatOpenAIchat = ChatOpenAI(openai_api_base=os.getenv("OPENAI_API_BASE"),openai_api_key=os.getenv("OPENAI_API_KEY"),temperature=0
    )messages = [{"role": "system", "content": "You will receive a user's query and possible content where the answer might be. If the answer is found, provide it, if not, state that the answer does not exist."},{"role": "user", "content": prompt}
    ]response = chat.invoke(messages)
    print(response)
    
    • 使用 ChatOpenAI 调用 OpenAI 的聊天模型。
    • 定义对话上下文:
      • 系统消息:告诉模型用户会提供问题和可能的内容,要求模型判断答案是否存在。
      • 用户消息:将生成的提示作为输入。
    • 调用 chat.invoke 生成回答并打印。

  1. 定义工具函数
    from langchain_core.tools import tool@tool
    def lookup_swiss_airline_policy(query: str) -> str:"""Search within the Swiss Airline's company policies to check whether certain options are permitted. Input should be a search query."""vectordb = Chroma(collection_name="rag-chroma",persist_directory=str(here(VECTORDB_DIR)),embedding_function=OpenAIEmbeddings())docs = vectordb.similarity_search(query, k=K)return "\n\n".join([doc.page_content for doc in docs])
    
    • 使用 @tool 装饰器创建一个可复用工具函数
    • 功能
      • 接受查询 query
      • 从向量数据库中检索相关文档。
      • 返回检索到的文档内容。
    • 说明信息:提供关于工具功能的描述,供其他程序或用户调用时参考。

  1. 工具函数的调用
    print(lookup_swiss_airline_policy.name)
    print(lookup_swiss_airline_policy.args)
    print(lookup_swiss_airline_policy.description)pprint(lookup_swiss_airline_policy.invoke("can I cancel my ticket?"))
    
    • 打印工具的元信息(名称、参数、描述)。
    • 调用 lookup_swiss_airline_policy.invoke,检索 “can I cancel my ticket?” 的相关内容并打印结果。

工具函数的执行结果:
在这里插入图片描述


运行流程总结

  1. 加载向量数据库,并初始化嵌入模型。
  2. 用户输入问题。
  3. 从数据库中检索与问题相关的文档。
  4. 将问题和文档内容发送至聊天模型,生成答案。
  5. 定义工具函数供后续复用。

用途与适用场景

  • 用途:实现基于文档的问答系统,用于快速查询特定文档的内容。
  • 适用场景
    • 公司政策文档检索(如航空政策)。
    • 产品说明文档或技术支持文档查询。
    • 法律条款、合同内容等信息的检索与问答。
http://www.yayakq.cn/news/276233/

相关文章:

  • 网站开发项目比赛wordpress页面编辑乱码
  • 使用wordpress做网站网页设计与制作教程第二版刘瑞新
  • 网站布局设计分析特点wordpress西班牙语
  • 怎样自做网站租房注册公司需要什么资料
  • 有什么发布做投标报价的网站秦皇岛手机网站
  • 黑龙江网站设计产品网络营销
  • 南宁会制作网站的技术人员北京cms建站系统
  • 管理类手机网站山西建设机械网站
  • 佛山市官网网站建设企业无限动力网站
  • 个人资料库网站怎么做企业官方网站模板下载
  • 长春网站推广优化公司关键词优化推广公司哪家好
  • 定制设计网站万州做网站的公司
  • 网站建设与管理适合女生学吗企业网站 域名注册
  • 一个网站的制作特点wordpress 教材主题
  • 企业网站建设招标一套网站开发需要多少钱
  • 新站突然网站停止收录凡科微信小程序怎么样
  • 第二课强登陆网站新型智库建设的意见左侧固定导航栏的网站
  • dedecms农业种植网站模板学生网页网站制作软件大全
  • 2345浏览器网站大全网站所用的图片大小
  • 网站模板超市军事视频2020最新
  • 紫金保险车险官方网站网络系统管理技能大赛linux
  • 网站建设电子商务WordPress免插件实现QQ咨询
  • 沈阳有多少网站一个备案可以做几个网站吗
  • 有没有做古装衣服的网站山东平台网站建设哪里有
  • 常州网站制作策划百度互联网营销顾问是做什么的
  • 万户网络网站建设wordpress 页面 文章 区别
  • 音乐网站设计模板网站做百度推广划算吗
  • 词条有哪些网站可以做荥阳做公司网站的公司
  • 资源网站哪个好玉环做网站有哪些
  • 南通网站建设要多少钱网站制作业务