深入浅析,一步步用GPT打造你的聊天机器人
与ChatGPT聊天很有趣,而且信息量很大 —— 与它闲聊可以探索一些新的想法。但这些都是比较随意的用例,新奇感很快就会减弱,特别是当人意识到它能产生幻觉的时候。
如何以更高效的方式使用ChatGPT呢?在OpenAI发布GPT3.5系列API后,可以做的事情远不止是闲聊。QA(问答)是企业和个人使用的一个非常有效的用例 —— 用自然语言向机器人询问自己的文件/数据,它可以通过从文件中检索信息并生成回应来快速回答。可以把它用于客户支持、综合用户研究、个人知识管理等等。
向机器人询问与文件相关的问题。使用稳定扩散法生成的图像。
本文将探讨如何根据自己的数据建立问答聊天机器人,包括为什么有些方法行不通,以及如何利用llama-index和GPT API以高效的方式建立一个文档问答聊天机器人的步骤指南。
(如果只想知道如何建立问答聊天机器人,可以直接跳到“逐步建立文档问答聊天机器人”部分)
探索不同的方法
当ChatGPT问世时,可以想到把它作为自己工作的一个助手,从而节省自己的时间和精力等。
首先想到的是用自己的数据对GPT模型进行微调来实现这个目标。但是,微调需要花费相当多的钱,而且需要一个有实例的大数据集。也不可能在文件有变化时每次都进行微调。更为关键的一点是,微调根本不可能让模型“知道”文档中的所有信息,而是要教给模型一种新的技能。因此,对于(多)文档质量保证来说,微调并不是一个好办法。
第二个方法是通过在提示中提供上下文来进行提示工程。例如,可以在实际问题之前附加原始文档内容,而不是直接问问题。但是GPT模型的注意力是有限的 —— 它只能接受提示中的几千字(大约4000个标记或3000字)。只要有成千上万的客户反馈邮件和数百个产品文档,就不可能给它提示中的所有背景。如果向API传递一个长的上下文,也是很昂贵的,因为定价是基于使用的代币的数量。
I will ask you questions based on the following context: — Start of Context — YOUR DOCUMENT CONTENT — End of Context— My question is: “What features do users want to see in the app?”
由于提示符对输入标记的数量有限制,想出了这样一个主意来解决问题:首先使用一种算法来搜索文档并挑选出相关的摘录,然后只将这些相关的语境与问题一起传递给GPT模型。在过程中需要使用一个简单、便捷的gpt-index(现在改名为LlamaIndex)的库。
从文件中提取相关部分,然后将其反馈给提示。
在下一节中,将给出一个使用LlamaIndex和GPT在自己的数据上建立一个问答聊天机器人的分步教程。
逐步建立文档问答聊天机器人
在这一节中,将用LlamaIndex和GPT(text-davinci-003)在现有文档的基础上建立一个问答聊天机器人,这样就可以用自然语言提出关于文档的问题,并从聊天机器人那里得到答案。
前提条件
在开始本教程之前,需要做一些准备:
- OpenAI API密钥,可以在https://platform.openai.com/account/api-keys找到。
- 一个文件数据库。LlamaIndex支持许多不同的数据源,如Notion、Google Docs、Asana等。在本文中将只使用一个简单的文本文件进行演示。
- 一个本地的Python环境或一个在线的Google Colab笔记本。
工作流程
工作流程很简单,只需要几个步骤:
- 1.用LlamaIndex为你的文档数据建立一个索引。
- 2.用自然语言查询该索引。
- 3.LlamaIndex将检索相关部分并将其传递给GPT提示。
- 4.向GPT询问相关的上下文并构建一个回应。
LlamaIndex所做的是将原始文档数据转换成一个矢量的索引,这对查询来说是非常有效的。它将使用这个索引,根据查询和数据的相似性,找到最相关的部分。然后,它将把检索到的内容插入到它将发送给GPT的提示中,这样GPT就有了回答问题的背景。
设置
首先需要安装库。只需在终端或谷歌Colab笔记本上运行以下命令。这些命令将同时安装LlamaIndex和OpenAI。
!pip install llama-index !pip install openai
接下来将在python中导入这些库,并在一个新的.py文件中设置OpenAI API密钥。
# 导入必要的库 from llama_index import GPTSimpleVectorIndex, Document, SimpleDirectoryReader import os os.environ['OPENAI_API_KEY'] = 'sk-YOUR-API-KEY'
构建索引并保存
在安装了所需的库并将其导入后,将需要构建一个文档的索引。
为了加载文档,可以使用LllamaIndex提供的SimpleDirectoryReader方法,或者可以从字符串中加载它。
# 从一个目录中加载 documents = SimpleDirectoryReader('your_directory').load_data() # 从字符串中加载,假设将数据保存为字符串text1,text2,... text_list = [text1, text2, ...] documents = [Document(t) for t in text_list]
LlamaIndex还提供各种数据连接器,包括Notion、Asana、Google Drive、Obsidian等。可以在https://llamahub.ai/找到可用的数据连接器。
加载完文档后,就可以用以下方法简单地构建索引了:
# 构建一个简单的向量索引 index = GPTSimpleVectorIndex(documents)
如果想保存索引并加载它以便将来使用,可以使用以下方法:
# 将索引保存在`index.json`文件中 index.save_to_disk('index.json') # 从保存的`index.json`文件中加载索引 index = GPTSimpleVectorIndex.load_from_disk('index.json')
查询索引并获得响应
查询索引很简单:
# 查询索引 response = index.query("What features do users want to see in the app?") print(response)
一个回应的例子。
然后就可以得到答案了。在幕后,LlamaIndex将接收提示,在索引中搜索相关块,并将提示和相关块传递给GPT。
一些高级用法的说明
上面的步骤只是展示了使用LlamaIndex和GPT回答问题的一个非常简单的入门用法。但可以做得比这更多。事实上,可以配置LlamaIndex来使用不同的大型语言模型(LLM),为不同的任务使用不同类型的索引,用一个新的索引来更新现有的索引,等等。如果有兴趣,可以在https://gpt-index.readthedocs.io/en/latest/index.html,阅读他们的文档。
总结
本文中展示了如何结合使用GPT和LlamaIndex来构建一个文档问答聊天机器人。虽然GPT(和其他LLM)本身就很强大,但如果把它与其他工具、数据或流程结合起来,它的力量也会被大大增强。
以上是深入浅析,一步步用GPT打造你的聊天机器人的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

译者|布加迪审校|重楼本文介绍了如何使用GroqLPU推理引擎在JanAI和VSCode中生成超快速响应。每个人都致力于构建更好的大语言模型(LLM),例如Groq专注于AI的基础设施方面。这些大模型的快速响应是确保这些大模型更快捷地响应的关键。本教程将介绍GroqLPU解析引擎以及如何在笔记本电脑上使用API和JanAI本地访问它。本文还将把它整合到VSCode中,以帮助我们生成代码、重构代码、输入文档并生成测试单元。本文将免费创建我们自己的人工智能编程助手。GroqLPU推理引擎简介Groq

LeanCopilot,让陶哲轩等众多数学家赞不绝口的这个形式化数学工具,又有超强进化了?就在刚刚,加州理工教授AnimaAnandkumar宣布,团队发布了LeanCopilot论文的扩展版本,并且更新了代码库。图片论文地址:https://arxiv.org/pdf/2404.12534.pdf最新实验表明,这个Copilot工具,可以自动化80%以上的数学证明步骤了!这个纪录,比以前的基线aesop还要好2.3倍。并且,和以前一样,它在MIT许可下是开源的。图片他是一位华人小哥宋沛洋,他是

Plaud Note AI 录音机(亚马逊有售,售价 159 美元)背后的公司 Plaud 宣布推出一款新产品。该设备被称为 NotePin,被描述为人工智能记忆胶囊,与 Humane AI Pin 一样,它是可穿戴的。 NotePin 是

想了解更多AIGC的内容,请访问:51CTOAI.x社区https://www.51cto.com/aigc/译者|晶颜审校|重楼不同于互联网上随处可见的传统问题库,这些问题需要跳出常规思维。大语言模型(LLM)在数据科学、生成式人工智能(GenAI)和人工智能领域越来越重要。这些复杂的算法提升了人类的技能,并在诸多行业中推动了效率和创新性的提升,成为企业保持竞争力的关键。LLM的应用范围非常广泛,它可以用于自然语言处理、文本生成、语音识别和推荐系统等领域。通过学习大量的数据,LLM能够生成文本

人形机器人Ameca升级第二代了!最近,在世界移动通信大会MWC2024上,世界上最先进机器人Ameca又现身了。会场周围,Ameca引来一大波观众。得到GPT-4加持后,Ameca能够对各种问题做出实时反应。「来一段舞蹈」。当被问及是否有情感时,Ameca用一系列的面部表情做出回应,看起来非常逼真。就在前几天,Ameca背后的英国机器人公司EngineeredArts刚刚演示了团队最新的开发成果。视频中,机器人Ameca具备了视觉能力,能看到并描述房间整个情况、描述具体物体。最厉害的是,她还能

图检索增强生成(GraphRAG)正逐渐流行起来,成为传统向量搜索方法的有力补充。这种方法利用图数据库的结构化特性,将数据以节点和关系的形式组织起来,从而增强检索信息的深度和上下文关联性。图在表示和存储多样化且相互关联的信息方面具有天然优势,能够轻松捕捉不同数据类型间的复杂关系和属性。而向量数据库则处理这类结构化信息时则显得力不从心,它们更专注于处理高维向量表示的非结构化数据。在RAG应用中,结合结构化化的图数据和非结构化的文本向量搜索,可以让我们同时享受两者的优势,这也是本文将要探讨的内容。构

随着开源大型语言模型的性能不断提高,编写和分析代码、推荐、文本摘要和问答(QA)对的性能都有了很大的提高。但是当涉及到QA时,LLM通常会在未训练数据的相关的问题上有所欠缺,很多内部文件都保存在公司内部,以确保合规性、商业秘密或隐私。当查询这些文件时,会使得LLM产生幻觉,产生不相关、捏造或不一致的内容。一种处理这一挑战的可行技术是检索增强生成(RAG)。它涉及通过引用训练数据源之外的权威知识库来增强响应的过程,以提升生成的质量和准确性。RAG系统包括一个检索系统,用于从语料库中检索相关文档片段

在工业自动化技术领域,最近有两个热点很难被忽视:人工智能(AI)和英伟达(Nvidia)。不要改变原内容的意思,微调内容,重写内容,不要续写:“不仅如此,这两者密切相关,因为英伟达在不仅仅局限于其最开始的图形处理单元(GPU),正在将其GPU技术扩展到数字孪生领域,同时紧密连接着新兴的AI技术。”最近,英伟达与众多工业企业达成了合作,包括领先的工业自动化企业,如Aveva、罗克韦尔自动化、西门子和施耐德电气,以及泰瑞达机器人及其MiR和优傲机器人公司。Recently,Nvidiahascoll
