使用自定义知识库训练 AI 聊天机器人:结合 ChatGPT API、LangChain 和 GPT Index (2023)
在之前的文章中,我们探讨了如何利用 ChatGPT API 构建 AI 聊天机器人并进行个性化设置。然而,如果您希望使用自己的数据来训练 AI,该如何操作呢?例如,您可能拥有一本书籍、财务数据或庞大的数据库,并希望能够轻松地在其中进行搜索。本文将为您提供一份简明易懂的教程,指导您如何使用自定义知识库以及 LangChain 和 ChatGPT API 来训练 AI 聊天机器人。我们将借助 LangChain、GPT Index 和其他强大的库,利用 OpenAI 的大型语言模型 (LLM) 来训练 AI 聊天机器人。接下来,让我们一起了解如何使用您自己的数据集训练和创建 AI 聊天机器人。
本文将更详细地阐述使用您自己的数据训练 AI 聊天机器人的步骤。从设置工具和软件到训练 AI 模型,我们将用浅显易懂的语言提供所有指导。强烈建议您按照顺序逐步操作,不要跳过任何环节。
使用自有数据训练 AI 前的重要须知
1. 您可以在任何平台上训练 AI 聊天机器人,包括 Windows、macOS、Linux 和 ChromeOS。本文以 Windows 11 为例进行说明,但其他平台的操作步骤基本相同。
2. 本指南面向普通用户,使用通俗易懂的语言进行解释。因此,即使您对计算机只有基本的了解且不熟悉编程,也可以在几分钟内轻松训练并创建一个问答 AI 聊天机器人。如果您曾按照我们之前的 ChatGPT 机器人文章进行操作,会更容易理解本教程。
3. 由于我们需要根据自己的数据训练 AI 聊天机器人,建议使用具有良好 CPU 和 GPU 的高性能计算机。当然,您也可以使用任何低配置计算机进行测试,它也能正常运行。我使用 Chromebook 和一本 100 页(约 100MB)的书籍来训练 AI 模型。但是,如果要训练包含数千页的大型数据集,强烈建议使用高性能计算机。
4. 最后,为了获得最佳效果,数据集应为英文。但根据 OpenAI 的说法,它也适用于流行的国际语言,如法语、西班牙语、德语等。您可以尝试使用其他语言。
设置 AI 聊天机器人训练的软件环境
与之前的文章一样,您应该了解需要安装 Python 和 Pip 以及一些库。本文将从头开始设置所有内容,以便新用户也能理解设置过程。简而言之,我们将先安装 Python 和 Pip,然后安装 Python 库,包括 OpenAI、GPT Index、Gradio 和 PyPDF2。您将在安装过程中了解每个库的作用。请放心,安装过程非常简单。下面开始具体操作。
安装 Python
1. 首先,您需要在计算机上安装 Python (Pip)。访问 此链接 下载适用于您平台的安装文件。
2. 接下来,运行安装文件并确保选中“Add Python.exe to PATH”复选框。这是非常重要的一步。然后,单击“Install Now”并按照常规步骤安装 Python。
3. 要检查 Python 是否已正确安装,请打开计算机上的终端。我在 Windows 上使用 Windows 终端,但您也可以使用命令提示符。在终端中运行以下命令,它将输出 Python 版本。在 Linux 和 macOS 上,您可能需要使用 python3 --version
而不是 python --version
。
python --version
升级 Pip
安装 Python 时,Pip 会同时安装到您的系统中。因此,让我们将其升级到最新版本。对于不熟悉的人,Pip 是 Python 的包管理器。它允许您通过终端安装数千个 Python 库。借助 Pip,我们可以安装 OpenAI、gpt_index、gradio 和 PyPDF2 库。以下是具体步骤:
1. 在计算机上打开您选择的终端。我使用 Windows 终端,但您也可以使用命令提示符。现在,运行以下命令来更新 Pip。同样,在 Linux 和 macOS 上,您可能需要使用 python3
和 pip3
。
python -m pip install -U pip
2. 要检查 Pip 是否已正确安装,请运行以下命令。它会输出版本号。如果您遇到任何错误,请参考我们关于如何在 Windows 上安装 Pip 的指南,以解决与 PATH 相关的问题。
pip --version
安装 OpenAI、GPT Index、PyPDF2 和 Gradio 库
一旦我们安装了 Python 和 Pip,就该安装必要的库了,这些库将帮助我们使用自定义知识库训练 AI 聊天机器人。以下是具体步骤:
1. 打开终端并运行以下命令来安装 OpenAI 库。我们将使用它作为 LLM(大型语言模型)来训练和创建 AI 聊天机器人。我们还将导入 OpenAI 的 LangChain 框架。请注意,Linux 和 macOS 用户可能必须使用 pip3
而不是 pip
。
pip install openai
2. 接下来,让我们安装 GPT Index,也就是 LlamaIndex。它允许 LLM 连接到作为我们知识库的外部数据。
pip install gpt_index
3. 之后,安装 PyPDF2 来解析 PDF 文件。如果您想以 PDF 格式提供数据,该库将帮助程序轻松读取数据。
pip install PyPDF2
4. 最后,安装 Gradio 库。它用于创建一个简单的用户界面,以便与训练后的 AI 聊天机器人进行交互。现在,我们已经完成了训练 AI 聊天机器人所需的所有库的安装。
pip install gradio
下载代码编辑器
最后,我们需要一个代码编辑器来编辑代码。在 Windows 上,我推荐 Notepad++ (下载)。只需通过链接下载并安装该程序。如果您熟悉强大的 IDE,也可以在任何平台上使用 VS Code。除了 VS Code,您还可以在 macOS 和 Linux 上安装 Sublime Text (下载)。
对于 ChromeOS,您可以使用出色的 Caret 应用程序 (下载) 来编辑代码。我们已经几乎完成了软件环境的设置,接下来获取 OpenAI API 密钥。
免费获取 OpenAI API 密钥
现在,为了基于自定义知识库训练和创建 AI 聊天机器人,我们需要从 OpenAI 获取 API 密钥。API 密钥将允许您使用 OpenAI 的模型作为 LLM 来研究您的自定义数据并进行推理。目前,OpenAI 在前三个月向新用户提供免费 API 密钥和价值 5 美元的免费信用额度。如果您之前创建过 OpenAI 帐户,您的帐户中可能有 18 美元的免费信用额度。免费额度用完后,您将需要为 API 访问付费。但目前,所有用户都可以免费使用。
1. 访问 platform.openai.com/signup 并创建一个免费帐户。如果您已经有 OpenAI 帐户,请直接登录。
2. 接下来,单击右上角的个人资料,然后从下拉菜单中选择“View API keys”。
3. 在这里,单击“Create new secret key”并复制 API 密钥。请注意,您以后无法复制或查看整个 API 密钥。因此,强烈建议您立即复制 API 密钥并将其粘贴到记事本文件中。
4. 此外,请勿公开分享或展示 API 密钥。这是一个私钥,仅用于访问您的帐户。您还可以删除 API 密钥并创建多个私钥(最多五个)。
使用自定义知识库训练和创建 AI 聊天机器人
现在,我们已经设置了软件环境并从 OpenAI 获取了 API 密钥,接下来开始训练 AI 聊天机器人。我们将使用“text-davinci-003”模型,而不是最新的“gpt-3.5-turbo”模型,因为 Davinci 在文本补全方面效果更好。当然,您也可以将模型更改为 Turbo 以降低成本。接下来,我们开始具体操作。
添加用于训练 AI 聊天机器人的文档
1. 首先,在桌面等易于访问的位置创建一个名为 “docs” 的新文件夹。您也可以根据自己的喜好选择其他位置,但请保持文件夹名称为 “docs”。
2. 接下来,将您希望用于训练 AI 的文档移动到 “docs” 文件夹中。您可以添加多个文本或 PDF 文件(甚至是扫描的文件)。如果您在 Excel 中有一个大表格,可以将其导入为 CSV 或 PDF 文件,然后添加到 “docs” 文件夹。您甚至可以添加 SQL 数据库文件,如 LangChain AI 推文 中所述。除了上述文件格式外,我没有尝试过太多其他格式,但您可以自行添加并检查。在本文中,我添加了一篇关于 NFT 的 PDF 格式的文章。
注意:如果您的文档很大,处理数据的时间会更长,具体取决于您的 CPU 和 GPU。此外,它会快速消耗您的免费 OpenAI 代币。因此,建议您首先从小型文档(30-50 页或小于 100MB 的文件)入手,了解整个过程。
准备代码
1. 现在,启动 Notepad++(或您选择的代码编辑器)并将以下代码粘贴到一个新文件中。我再次得到了 Google Colab 上的 armrrs 的大力帮助,并调整了代码使其与 PDF 文件兼容,并在顶部创建了 Gradio 界面。
from gpt_index import SimpleDirectoryReader, GPTListIndex, GPTSimpleVectorIndex, LLMPredictor, PromptHelper
from langchain import OpenAI
import gradio as gr
import sys
import os
os.environ["OPENAI_API_KEY"] = 'Your API Key'
def construct_index(directory_path):
max_input_size = 4096
num_outputs = 512
max_chunk_overlap = 20
chunk_size_limit = 600
prompt_helper = PromptHelper(max_input_size, num_outputs, max_chunk_overlap, chunk_size_limit=chunk_size_limit)
llm_predictor = LLMPredictor(llm=OpenAI(temperature=0.7, model_name="text-davinci-003", max_tokens=num_outputs))
documents = SimpleDirectoryReader(directory_path).load_data()
index = GPTSimpleVectorIndex(documents, llm_predictor=llm_predictor, prompt_helper=prompt_helper)
index.save_to_disk('index.json')
return index
def chatbot(input_text):
index = GPTSimpleVectorIndex.load_from_disk('index.json')
response = index.query(input_text, response_mode="compact")
return response.response
iface = gr.Interface(fn=chatbot,
inputs=gr.inputs.Textbox(lines=7, label="Enter your text"),
outputs="text",
title="Custom-trained AI Chatbot")
index = construct_index("docs")
iface.launch(share=True)
2. 以下是代码在代码编辑器中的显示效果。
3. 接下来,单击顶部菜单中的“文件”,然后从下拉菜单中选择“另存为…”。
4. 之后,设置文件名为 “app.py”,并从下拉菜单中将“保存类型”更改为“所有类型”。然后,将文件保存到您创建 “docs” 文件夹的位置(在我的示例中,它是桌面)。您可以根据自己的喜好更改名称,但请务必添加 “.py” 后缀。
5. 确保 “docs” 文件夹和 “app.py” 位于同一位置,如下面的屏幕截图所示。 “app.py” 文件将位于 “docs” 文件夹之外,而不是在其内部。
6. 再次回到 Notepad++ 中的代码。在这里,将您的 API 密钥替换为上面从 OpenAI 网站生成的密钥。
7. 最后,按 “Ctrl + S” 保存代码。您现在可以运行代码了。
使用自定义知识库创建 ChatGPT AI 机器人
1. 首先,打开终端并运行以下命令,将目录切换到桌面。这是我保存 “docs” 文件夹和 “app.py” 文件的地方。如果这两个项目都保存在另一个位置,请通过终端切换到该位置。
cd Desktop
2. 现在,运行以下命令。 Linux 和 macOS 用户可能需要使用 python3
。
python app.py
3. 现在,它将开始使用 OpenAI LLM 模型分析文档并开始索引信息。根据文件大小和您计算机的性能,处理文档需要一些时间。完成后,将在桌面上创建一个 “index.json” 文件。如果终端没有显示任何输出,请不要担心,它可能仍在处理数据。作为参考,处理一个 30MB 的文档大约需要 10 秒。
4. LLM 处理完数据后,您可能会收到一些可以忽略的警告。最后,在底部,您会找到一个本地 URL。复制该 URL。
5. 现在,将复制的 URL 粘贴到 Web 浏览器中,即可开始使用。您经过自定义训练的 ChatGPT 驱动的 AI 聊天机器人已准备就绪。首先,您可以询问 AI 聊天机器人文档的内容。
6. 您可以提出更多问题,ChatGPT 机器人将根据您提供给 AI 的数据进行回答。这就是您如何使用自己的数据集构建自定义训练的 AI 聊天机器人。您现在可以根据所需的任何类型的信息训练和创建 AI 聊天机器人。可能性是无限的。
7. 您还可以复制公开网址分享给您的朋友和家人。该链接将有效 72 小时,但您还需要保持计算机开启,因为服务器实例正在您的计算机上运行。
8. 要停止自定义训练的 AI 聊天机器人,请在终端窗口中按 “Ctrl + C”。如果不起作用,请再次按 “Ctrl + C”。
9. 要重新启动 AI 聊天机器人服务器,只需再次切换到桌面位置并运行以下命令。请记住,本地 URL 是相同的,但每次服务器重启后,公共 URL 都会发生变化。
python app.py
10. 如果您想使用新数据训练 AI 聊天机器人,请删除 “docs” 文件夹中的文件并添加新文件。您可以添加多个文件,但为了获得连贯的响应,请确保它们是关于同一主题的信息。
11. 现在,在终端中再次运行代码,它会创建一个新的 “index.json” 文件。旧的 “index.json” 文件将被自动替换。
python app.py
12. 要跟踪您的代币使用情况,请访问 OpenAI 的在线 仪表板 并查看剩余的免费信用额度。
13. 最后,除非您想更改 API 密钥或 OpenAI 模型以进行进一步的定制,否则您无需修改代码。
使用自有数据构建自定义 AI 聊天机器人
以上就是如何使用自定义知识库训练 AI 聊天机器人的方法。我已经使用这段代码,在医学书籍、文章、数据表和来自旧档案的报告上训练了 AI,效果非常理想。现在开始,使用 OpenAI 的大型语言模型和 ChatGPT 创建您自己的 AI 聊天机器人吧!无论如何,这就是我们的教程。如果您正在寻找最佳的 ChatGPT 替代品,请查看我们的链接文章。要在 Apple Watch 上使用 ChatGPT,请参考我们的详细教程。最后,如果您遇到任何问题,请在下面的评论区告诉我们,我们一定会尽力帮助您。