庆云古诗词

庆云古诗词

llama-index(gpt-index):后chatgpt时代的对话式文档问答解决方案

互联资讯 0

淘宝搜:【天降红包222】领超级红包,京东搜:【天降红包222】
淘宝互助,淘宝双11微信互助群关注公众号 【淘姐妹】

LlamaIndex

本文中所用的llama-index版本为0.4.25,如果使用更高版本的llama-index(>=0.5),可能会有报错。

chatgpt的api距今上线一周,已经出现了几款热度很高的文档问答产品,例如chatpdf,接下来解析一下这些产品背后的技术原理。

对话式文档问答,字面意思就是基于文档建立的问答系统。使用这项技术,开发者无需梳理意图、词槽,无需进行问题和答案的整理,只需准备文本格式的业务文档(例如洗碗机的使用手册),就可以得到一个问答系统,回答用户的各种问题(例如“洗碗机排水管堵塞了怎么办“)。

如果使用openai api来实现对话式文档问答,最朴素的想法把这个当成一个阅读理解问题,构建如下的prompt:

  • 现有一个问题:“洗碗机排水管堵塞了怎么办”,请根据下面的文章来回答,文章内容如下:"......"

这种方法在文档较长时存在两个问题:

  • 第一,openai api存在最大长度的限制,例如chatgpt的最大token数为4096,此时直接对文档截断,存在上下文丢失的问题
  • 第二,api的调用费用和token长度成正比,tokens数太大,则每次调用的成本都会很高

可以参考搜索引擎中“先检索再重排”的思路,针对文档问答设计“先检索再整合“的方案,整体思路如下:

  • 首先准备好文档,并整理为纯文本的格式。把每个文档切成若干个小的chunks
  • 调用文本转向量的接口,将每个chunk转为一个向量,并存入向量数据库
    • 文本转向量可以使用openai embedding()
    • 也可以使用其他方案,如fasttext/simbert等
  • 当用户发来一个问题的时候,将问题同样转为向量,并检索向量数据库,得到相关性最高的一个或几个chunk
  • 将问题和chunk合并重写为一个新的请求发给openai api,可能的请求格式如下:
结合下面的段落来回答问题:“ 如何使用预约功能”    * 段落1: 您可以按照以下步骤使用预约功能....  * 段落2: 在使用预约功能之前,请确保您已正确地设置了洗涤程序....  * 段落3: .......

上述“先检索再整合的逻辑”已经封装在llama-index库中:

llama-index的前身是gpt-index项目,最近才刚改名为'llama-index'。下面给出一个基于llama-index实现文档问答的具体demo,代码已上传至github:

  • 安装依赖: pip3 install openai llama-index==0.4.25 tiktoken
  • 获取openai的api key: ,并设置api key到环境变量: export OPENAI_API_KEY=XXYYZZ

建立索引的代码位于build_index.py,具体代码如下:

import os  import logging  import sys  from llama_index import SimpleDirectoryReader, GPTSimpleVectorIndex    logging.basicConfig(stream=sys.stdout, level=logging.INFO)  logging.getLogger().addHandler(logging.StreamHandler(stream=sys.stdout))    # 读取data文件夹下的文档  documents = SimpleDirectoryReader('data').load_data()  # 按最大token数500来把原文档切分为多个小的chunk,每个chunk转为向量,并构建索引  index = GPTSimpleVectorIndex(documents, chunk_size_limit=500)  # 保存索引  index.sa【【微信】】('index.json')

执行上述代码后可以看到日志打印如下:

>[build_index_from_documents]【【微信】】: 0 tokens  >[build_index_from_documents]【【微信】】sage: 1466 tokens

说明原文档中所有token数为1466,这也是请求embedding接口的调用成本。按最大token数500,则会切分为4个chunk,可以在索引文件index.json确认chunk的数目确实为4,同时index.json中也记录了每个chunk对应的embedding向量。

查询索引的代码位于【【微信】】.py,具体代码如下:

import os  import logging  import sys  from llama_index import GPTSimpleVectorIndex    logging.basicConfig(stream=sys.stdout, leve【【微信】】.INFO)  【【微信】】etLogger().addHandler(logging.StreamHandler(stream=sys.stdout))    # 加载索引  【【微信】】=GPTSimpleVectorIndex.load_from_disk('index.json')  # 查询索引  response=【【微信】】.query("【【微信】】 9th grade?")  # 打印答案  print(response)

调用query接口的时候,llama-index会构造如下的prompt:

"Context information is below. \  "      "---------------------\  "      "{context_str}"      "\  ---------------------\  "      "Gi【【微信】】tion and not prior knowledge, "      "answer the 【【微信】】:{【【微信】】}\  "

上述代码执行后,日志打印如下:

>[query]【【微信】】: 576 tokens  >[query]【【微信】】sage: 10 tokens    In 9th grade, the author tried writing programs on an IBM 1401 computer in the basement of their junior high school. They used an early 【【微信】】ad to type programs on punch cards. They attempted to do things that didn't rely on any input, like calculate approximations of pi, but didn't ha【【微信】】e to do anything interesting. They also learned that programs could not terminate, which was a social as well as a technical error.
  • '【【微信】】sage: 10 tokens'对应的是问题"【【微信】】 9th grade?"计算embedding的成本
  • '【【微信】】: 576 tokens'对应的是用整个prompt调用LLM语言模型的成本,又可分成四部分
    • context_str: 500 tokens
    • 【【微信】】: 10 tokens
    • prompt模板中的其他文本:16 tokens
    • answer: 50 tokens
  • 通过这种方法,原来接近1500 token的查询调用成本,被降到了500 tokens左右
  • 默认的embedding方案为text-embedding-ada-002,支持定制:Embedding support
  • 默认的completion(答案生成模型)方案为text-da【【微信】】,也支持定制:Defining LLMs - LlamaIndex documentation
  • prompt也支持定制:Defining Prompts

本文提供了一种后chatgpt时代的对话式文档问答解决方案,可供参考。

  • 宝玉xp的微博:
  • llama-index文档:
  • UNIT3.0详解之对话式文档问答:
  • paul-graham-gpt:


手机edge内置的chatgpt怎么用 ios使用chatgpt加载失败

手机上的edge,手机edge有插件功能吗,手机edge有扩展吗,手机edge浏览器插件

本篇文章给大家谈谈ios配置chatgpt,以及iOS配置路径对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

  • 1、如何让gpt给我发送邮件
  • 2、一怎么去
  • 3、chatGPT是什么意思?
  • 4、chatjpt是什么
  • 5、chatgpt风格模型为什么老是加载失败?

可以通过以下步骤让它给你发盯岩邮件:

1、首先打开邮箱账户,并确保已经登录了邮箱账户。无论使用的是Gmail、Outlook、Yahoo或其他任何邮箱服务,都可以发送邮件给ChatGPT。

2、在邮箱主页上派宴,找到一个“写邮件”或“新建邮件”的按钮。单击该按钮,进入一个新邮件的编辑页面。

3、在邮件编辑页面中,需要填写收件人、主题和正文内容。ChatGPT的电子邮件地址是【【邮箱】】,在收件人框中输入该地址,邮件内容可以输入想要询问的问题。

4、完成邮件内容的填写后,单击“发送”凯羡御按钮将邮件发送给ChatGPT。ChatGPT将根据邮件的内容来识别问题并生成答案并将其发送回你的邮箱。

要访问Chatgpt对话系统,您可以通过以下任一方式:1.在网页浏览器中输入"【【网址】】",进入Chatgpt的官方网站,然后点击网页上的"开始对话"按钮;2.进入FacebookMessenger,搜索并启动"Chatgpt"机器人,然后就可以开始与Chatgpt进行语音或文字交互;3.在Telegram应用中搜索并启动"Chatgpt"机器人,与Chatgpt进行语音或文字对话。无论您选择渣团哪种方式,都可以获得Chatgpt提供宴键的智能对话服务,并与它进晌梁巧行自然、有趣的聊天交流。

ChatGPT是是由人工智能研究实验室OpenAI在2022年11月30日发布的全新聊天机器人模型,一款人工智能技术驱动的自然语言处理工具。

它能够通过学习和理解人类的语言宽拦来进行对话,不仅上知天文下知地理,知识渊博,还铅租能根据聊天的上下文进行互慎激胡动,真正像人类一样来聊天交流,但ChatGPT不单是聊天机器人的简单,甚至能完成撰写邮件、视频脚本、文案、翻译、代码等任务。同时也引起无数网友沉迷与ChatGPT聊天,成为大家讨论的火爆话题。

chatjpt是什么

ChatGPT是美国人工困大智能研究实验室OpenAI新推出的一种人工智能技术驱动的自然语言处理工具,使用了Transformer神经网络架构,也是GPT-3.5架构,这是一种用于处理序列数据的模型,拥有语言理解和文本生成能力,尤其是它会通过连接大量的语料库来训练模型。

这些语料库包含了真实世界中的对话,使得ChatGPT具备上知天文下知地理,还能根据聊天的上下文进行互动的能力,做到与真正人类几乎无异的聊天场景进行交流。

ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

在OpenAI的官网上,ChatGPT被描述为优化对话的语言模型,是GPT-3.5架构的主力模型。宴帆

ChatGPT具有同类产品具备的一些特性,例如对话能力,能够在同一个会话期间内回答上下文相关的后续问题。然而,其在短时间内引爆全球的原因在于,在网友们晒出汪祥竖的截图中,ChatGPT不仅能流畅地与用户对话,甚至能写诗、撰文、编码。

ChatGPT还采用了注重道德水平的训练方式,按照预先设计的道德准则,对不怀好意的提问和请求“说不”。一旦发现用户给出的文字提示里面含有恶意,包括但不限于暴力、歧视、犯罪等意图,都会拒绝提供有效答案。

如果您使用的是ChatGPT风格模型的在线API服务,可能因为以下几个原因导致它经常加载失败:

服务器问题:API服务端可能出现了服务器故障或维护等问题,导致您无法正常连接服务。这种情况下,您可以稍后再次尝试连接,或联系API服务提供商获得更多信息。

请求过于频繁:如果您发送了过多的请求,API服务可能会对您的IP地址进行限制,从而导致服务暂时不可用。在这种情况下,您需要调整请求频率,并等待一段时间后再次尝试连接API服务。

配置问题:如果您在使用API服务时遇到了配置问题,比如未正确渗胡银设置API密钥或参数等,可能会导致服务无法正常启动或提供数据。在这种情况下,您需要仔细检查您的配置,并按照API服务丛宴提供商的指导进行设置。

以上是我列举的一些可能导致ChatGPT风格模型加载失败的原因,请根据具体情况进行排查和处理。如果问题依然存在,您做做可以与API服务提供商联系寻求帮助。

关于ios配置chatgpt和iOS配置路径的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。