使用OpenAI ChatGPT API和文本嵌入与文档对话

如何利用OpenAI ChatGPT API和文本嵌入与任意文档、PDF和图书进行交流

如今,似乎所有应用程序都在名称中包含“聊天”或“GPT”。新发布的应用程序包括ChatPDF(用于与PDF文件聊天)、ArvixGPT(用于与arXiv论文——学术文章进行聊天)以及GPT for Sheets and Docs(将ChatGPT带到Google Sheets™和Docs™)等等,每天都有新的应用发布。

你是否曾经想过这些应用程序如何能够与超过100页甚至1000页的文档进行交流,而当你尝试使用ChatGPT时却会收到错误消息?简短的答案是,它们将长达100页甚至1000页的文档转换成数值表示的数据和相关上下文(向量嵌入),并将它们存储在向量搜索引擎中。当用户与文档进行交流(即提问)时,系统使用一种称为近似最近邻搜索(ANN)的算法搜索并返回与问题相似的文本(即聊天)。它看起来像这样。程序接着将返回的与问题相似的文本(即聊天)包含在提示中,并再次向OpenAI GPT-3 API提问。这将返回一个你习惯于ChatGPT的漂亮回答。这种方法的优点是,提示内容更小,而不是1000页的文档,用户能够得到他们正在寻找的答案。

顺便提一句,如果你担心类似ChatGPT的工具回答问题时出现错误,那么你可以将其指向你的组织知识库,并从那里提供答案。答案的准确性将取决于你的知识库。教程

在这个领域有更多的专家可以更好地解释这些技术的复杂性,所以让我们继续学习如何使用OpenAI ChatGPT API和文本嵌入与文档(们)交流的教程。

工具

在本教程中,我们将使用三个工具:

  1. OpenAI GPT-3,具体来说是新的ChatGPT API(gpt-3.5-turbo)。之所以使用这个模型,并非因为它比其他模型更好,而是因为它更便宜(每1000个token 0.002美元),而且对于这个用例已经足够好。
  2. Chroma,AI原生开源嵌入数据库(即向量搜索引擎)。与LangChain结合使用时,Chroma是一个易于使用的向量数据库;否则,

它几乎无法使用。如果您想在生产环境中部署这类应用程序,我建议使用Elasticsearch,因为它具有广泛的应用,并且已经存在多年。选择Elasticsearch并非因为它比竞争对手更好,而是因为很多组织不喜欢添加新的技术栈。 3. LangChain,这是一个旨在帮助开发者构建使用大型语言模型(LLMs)的应用程序的库,允许他们将这些模型与其他计算或知识来源进行集成。

数据

我们将使用Project Gutenberg的“罗密欧与朱丽叶(William Shakespeare著)”中的数据,共55,985个tokens。这使得它成为一个大小适中的数据集。

Python代码

代码是在Google Colab上开发的。我喜欢使用Google Colab,因为它使您能够轻松复制教程,但是其中一些代码可能仅适用于Google Colab。

在开始编写代码之前,请确保您已安装了所有必需的库和依赖项。在Google Colab中,您可以按照以下步骤操作:

  1. 首先,安装OpenAI库,这将使您能够与GPT-3.5-turbo API进行交互。
!pip install openai
  1. 接下来,安装Chroma库,用于嵌入数据库操作。
!pip install chroma
  1. 最后,安装LangChain库,以便更容易地使用大型语言模型(LLMs)。
!pip install langchain

现在,我们准备编写代码与文档进行交流。以下是一些关键步骤:

  1. 从Project Gutenberg下载“罗密欧与朱丽叶”文本并读取内容。

  2. 使用LangChain库将文本转换为嵌入向量,并将其存储在Chroma向量搜索引擎中。

  3. 使用OpenAI ChatGPT API,通过将提问发送给API,并从API接收答案。

  4. 通过将提问与Chroma向量搜索引擎中的嵌入向量进行比较,找到与提问最相关的文本片段。

  5. 将找到的相关文本片段与从ChatGPT API接收到的答案结合,以生成最终的回答。

当然,这只是一个简化的概述。实际实现将需要更多细节。要开始构建您自己的应用程序,请查看OpenAI、Chroma和LangChain的官方文档,以获取更多有关如何使用这些库的信息和示例。

使用OpenAI ChatGPT API和文本嵌入与文档进行交流是一种强大的方法。本教程介绍了所需的工具和步骤以实现这一目标。随着技术的发展,我们可以期待将来更多类似的应用程序出现,以提供更丰富、更准确的信息检索和交互体验。


壹涵网络我们是一家专注于网站建设、企业营销、网站关键词排名、AI内容生成、新媒体营销和短视频营销等业务的公司。我们拥有一支优秀的团队,专门致力于为客户提供优质的服务。

我们致力于为客户提供一站式的互联网营销服务,帮助客户在激烈的市场竞争中获得更大的优势和发展机会!

点赞(78) 打赏

评论列表 共有 88 条评论

暂无评论
立即
投稿
发表
评论
返回
顶部