与ChatGPT聊天很有趣,而且信息量很大–过去一段时间我一直在与它闲聊,探索一些新的想法,学习。但这些都是比较随意的用例,新奇感很快就会减弱,特别是当你意识到它能产生幻觉的时候。 我们可能如何以更有成效的方式来使用它?随着OpenAI最近发布的GPT 3.5系列API,我们可以做的事情远不止是闲聊。对于企业和你的个人使用来说,一个非常有成效的使用案例是QA(问题回答)–你用自然语言向机器人询问你自己的文件/数据,它可以通过从文件中检索信息并生成回应来快速回答你[1]。你可以把它用于客户支持、综合用户研究、你的个人知识管理,等等 向机器人询问与文件有关的问题,用稳定扩散法生成的图像。 在这篇文章中,我将探讨如何根据自己的数据建立自己的问答聊天机器人,包括为什么有些方法行不通,以及如何利用llama-index和GPT API以高效的方式建立文档问答聊天机器人的步骤指南。 (如果你只想知道如何建立问答聊天机器人,你可以直接跳到 “逐步建立文档问答聊天机器人” 部分) 探索不同的方法 我的日常工作是产品经理–阅读客户反馈和内部文件占据了我生活的很大一部分时间。当ChatGPT出来的时候,我立刻想到了把它作为一个助手,帮助我综合客户的反馈,或者找到关于我正在做的功能的相关旧产品文档。 我首先想到的是用我自己的数据对GPT模型进行微调来实现这个目标。但是,微调需要花费相当多的钱,而且需要一个有实例的大数据集。也不可能在文件有变化时每次都进行微调。更关键的一点是,微调根本不可能让模型 “知道 “文档中的所有信息,而是要教给模型一种新的技能。因此,对于(多)文档质量保证来说,微调并不是一个好办法。 我想到的第二个方法是通过在prompt中提供上下文来进行prompt工程。例如,我可以在实际问题之前附加原始文档内容,而不是直接问问题。但是GPT模型的注意力是有限的–它只能接受prompt中的几千字(大约4000个标记或3000字)。只要我们有成千上万的客户反馈邮件和数百个产品文档,就不可能给它prompt中的所有背景。如果你向API传递一个长的上下文,也是很昂贵的,因为定价是基于你使用的代币的数量。 (如果你想了解更多关于GPT的微调和promp工程,你可以阅读这篇文章:https://medium.com/design-bootcamp/3-ways-to-tailor-foundation-language-models-like-gpt-for-your-business-e68530a763bd) 由于prompt对输入标记的数量有限制,我想出了这样一个主意:首先使用一种算法来搜索文档并挑选出相关的摘录,然后只将这些相关的语境与我的问题一起传递给GPT模型。在我研究这个想法的时候,我发现了一个叫做gpt-index(现在改名为LlamaIndex)的库,它正是我想做的事情,而且使用起来很简单[2]。 从文件中提取相关部分,然后将其反馈给prompt。图标来自https://www.flaticon.com/ 在下一节中,我将给出一个使用LlamaIndex和GPT在你自己的数据上建立一个问答聊天机器人的分步教程。 逐步建立文档问答聊天机器人 在这一节中,我们将用LlamaIndex和GPT(text-davinci-003)在现有文档的基础上建立一个问答聊天机器人,这样你就可以用自然语言提出关于文档的问题,并从聊天机器人那里得到答案。 前提条件在开始本教程之前,我们需要准备一些东西:
工作流程工作流程简单明了,只需要几个步骤:
LlamaIndex所做的是将你的原始文档数据转换成一个矢量的索引,这对查询来说是非常有效的。它将使用这个索引,根据查询和数据的相似性,找到最相关的部分。然后,它将把检索到的内容插入到它将发送给GPT的prompt中,这样GPT就有了回答你问题的背景。 设置 我们需要先安装这些库。只需在你的终端或谷歌Colab笔记本上运行以下命令。这些命令将同时安装LlamaIndex和OpenAI。 接下来,我们将在python中导入这些库,并在一个新的.py文件中设置你的OpenAI API密钥。 构建索引并保存它 在我们安装了所需的库并将其导入后,我们将需要构建一个你的文档的索引。 为了加载你的文档,你可以使用LllamaIndex提供的SimpleDirectoryReader方法,或者你可以从字符串中加载它。 LlamaIndex还提供各种数据连接器,包括Notion、Asana、Google Drive、Obsidian等。你可以在https://llamahub.ai/找到可用的数据连接器。 加载完文档后,我们就可以用以下方法简单地构建索引了: 如果你想保存索引并加载它以便将来使用,你可以使用以下方法: 查询索引并获得响应 查询索引很简单 一个响应的例子。 然后就可以了!你会得到你的答案。在引擎盖下,LlamaIndex将接受你的prompt,在索引中搜索相关的块,并将你的prompt和相关块传递给GPT。 一些关于高级用法的说明 上面的步骤只展示了使用LlamaIndex和GPT回答问题的一个非常简单的入门用法。但你可以做的远不止这些。事实上,你可以配置LlamaIndex来使用不同的大型语言模型(LLM),为不同的任务使用不同类型的索引,用一个新的索引来更新现有的索引,等等。如果你有兴趣,你可以在https://gpt-index.readthedocs.io/en/latest/index.html,阅读他们的文档。 小结在这篇文章中,我们看到了如何将GPT与LlamaIndex结合起来使用,建立一个文档问题回答的聊天机器人。虽然GPT(和其他LLM)本身就很强大,但如果我们把它与其他工具、数据或流程结合起来,它的力量就会被大大放大。 你会用一个文件问题回答聊天机器人做什么? References: [1] What Is Question Answering? — Hugging Face. 5 Dec. 2022, https://huggingface.co/tasks/question-answering. [2] Liu, Jerry. LlamaIndex. Nov. 2022. GitHub, https://github.com/jerryjliu/gpt_index. via uxdesign.cc 闪电博编译(原文有删减) |
|Archiver|手机版|小黑屋|雄启汇|雄启识慧云上智库:您身边的行业研究顾问
( 黑ICP备2023000012号-1 )|网站地图
GMT+8, 2025-6-3 18:07 , Processed in 1.781775 second(s), 26 queries .
Powered by Discuz! X3.5
© 2001-2025 Discuz! Team.