如何使用ChatGPT打造本地知识库
前言
随着AI浪潮的到来,涌现了一大批AI应用,其中结合chatpdf的技术搭建本地知识库的应用尤其多,本文主要将重点梳理并介绍了几个与之相关的项目:
•gpt4-pdf-chatbot-langchain:使用新的GPT-4 api为多个大型PDF文件构建chatGPT聊天机器人。可使用langchain与其他AI模块整合,详见项目:Flowise——通过拖放界面构建定制的LLM流程•ChatGPT-pdf:这是一个Chrome扩展,用于将您的ChatGPT历史记录下载为PNG,PDF或创建可分享的链接。•chatWeb:ChatWeb可以爬取任意网页或PDF,DOCX,TXT文件并提取正文,可以生成嵌入式概要,可以根据正文内容回答你的问题。
另外,之前梳理过的有几个与之相关的热门项目,列举如下:
一、gpt4-pdf-chatbot-langchain
地址
github地址:https://github.com/mayooear/gpt4-pdf-chatbot-langchain
介绍
GPT-4 & LangChain - 为您的PDF文件创建ChatGPT聊天机器人
使用新的GPT-4 api为多个大型PDF文件构建chatGPT聊天机器人。使用的技术栈包括LangChain、Pinecone、Typescript、Openai和Next.js。LangChain是一个框架,使构建可扩展的AI/LLM应用程序和聊天机器人变得更容易。Pinecone是一个向量存储,用于存储嵌入和您的PDF文本,以便以后检索相似的文档。教程视频 如果您有问题,请加入discord 此仓库和教程的视觉指南位于视觉指南文件夹中。如果您遇到错误,请查看此页面下方的故障排除部分。前奏:请确保您已经在系统上下载了节点,并且版本是18或更高。
开发
1.克隆仓库或下载 ZIP 文件
git clone [github https url]
2.安装依赖包
首先运行 npm install yarn -g
来全局安装 yarn(如果尚未安装)。
然后运行:
yarn install
安装完成后,您应该可以看到一个 node_modules
文件夹。
3.设置 .env
文件
•将 .env.example
复制为 .env
。您的 .env
文件应该如下所示:
OPENAI_API_KEY=
PINECONE_API_KEY=PINECONE_ENVIRONMENT=
PINECONE_INDEX_NAME=
•访问 openai[1] 获取 API 密钥并将其插入到您的 .env
文件中。•访问 pinecone[2] 创建和获取 API 密钥,并从仪表板中获取环境和索引名称。•在config文件夹中,将PINECONE_NAME_SPACE替换为您希望在运行npm run ingest时在Pinecone上存储您的嵌入的命名空间。稍后将使用此命名空间进行查询和检索。•在utils/makechain.ts链中更改QA_PROMPT以适应您自己的用例。如果您有访问gpt-4 api的权限,将new OpenAI中的modelName更改为gpt-4。请在此仓库外部验证您是否有访问gpt-4 api的权限,否则应用程序将无法工作。
将您的PDF文件转换为嵌入
•此仓库可以加载多个PDF文件•在docs文件夹中,添加您的pdf文件或包含pdf文件的文件夹。•运行脚本npm run ingest来'摄取'并嵌入您的文档。如果您遇到错误,请在下面进行故障排除。•检查Pinecone仪表板以验证您的命名空间和向量已被添加。
运行应用程序
•一旦您验证了嵌入和内容已成功添加到您的Pinecone,您可以运行应用程序npm run dev来启动本地
二、ChatGPT-pdf
地址
github地址:https://github.com/liady/ChatGPT-pdf
介绍
ChatGPT 导出和分享
这是一个Chrome扩展,用于将您的ChatGPT历史记录下载为PNG,PDF或创建可分享的链接。
为什么我要构建它
当你想分享一些聊天记录时,截取整个聊天记录非常困难。这将增加将其导出为图片,PDF文件或创建可分享链接的功能。
如何安装
安装到Chrome/Edge
•从发布页面的最新版本中下载chrome-chatgpt-share.zip。•解压下载的文件以提取扩展文件。•在Chrome/Edge中转到扩展页面(chrome://extensions 或 edge://extensions)。•通过点击页面右上角的切换开关启用开发者模式。•点击“加载未打包的”按钮,并选择你解压扩展文件的目录。•ChatGPT Export现在应该已经安装并在ChatGPT网站(https://chat.openai.com/chat)上激活。
安装到Firefox
•从发布页面的最新版本中下载firefox-chatgpt-share.zip。•转到about:debugging,点击侧边栏上的“This Firefox”。•点击“加载临时插件”按钮,然后选择压缩文件。•ChatGPT Export现在应该已经安装并在ChatGPT网站(https://chat.openai.com/chat)上激活。
如何使用
在与ChatGPT聊天后,你会在页面底部(在“Try Again”旁边)注意到新的按钮:
在页面底部寻找它们:
点击它们可以生成PNG,下载PDF或创建整个聊天的HTML:
路线图
•支持Firefox•允许选择分辨率/文件大小•允许分割为较小的部分图像(例如,用于Twitter)
贡献
感谢adrianmarinwork修复问题。
欢迎PR!
三、chatWeb
地址
github地址:https://github.com/SkywalkerDarren/chatWeb
介绍
ChatWeb
[3]
ChatWeb可以爬取任意网页或PDF,DOCX,TXT文件并提取正文,可以生成嵌入式概要,可以根据正文内容回答你的问题。基于gpt3.5的chatAPI和embeddingAPI,以及向量数据库实现。
基本原理
基本类似于现有的chatPDF,自动化客服AI等项目的原理。
1.爬取网页2.提取正文3.对于每一段落,使用gpt3.5的embeddingAPI生成向量4.每一段落的向量和全文向量做计算,生成概要5.将向量和文本对应关系存入向量数据库6.对于用户输入,生成关键词7.对关键词生成向量8.使用向量数据库进行最近邻搜索,返回最相似的文本列表9.使用gpt3.5的chatAPI,设计prompt,使其基于最相似的文本列表进行回答
新增的使用关键词生成向量相比直接使用问题生成向量,提高了对相关文本的搜索准确度
就是先把大量文本中提取相关内容,再进行回答,最终可以达到类似突破token限制的效果
准备开始
•安装python3•下载本仓库git clone https://github.com/SkywalkerDarren/chatWeb.git
•进入目录cd chatWeb
•复制config.example.json
为config.json
•编辑config.json
, 设置open_ai_key
为你的openai的api key•安装依赖
pip3 install -r requirements.txt
•运行
python3 main.py
模式选择
•编辑config.json
, 设置mode
为console
, api
或webui
作为选择启动模式。•console
模式下,输入/help
查看指令•api
模式下,可对外提供api服务,在config.json
中可设置api_port
和api_host
•webui
模式下,可提供webui服务,在config.json
中可设置webui_port
,默认为http://127.0.0.1:7860
Stream模式
•编辑config.json
, 设置use_stream
为true
temperature设置
•编辑config.json
, 设置temperature
为0-1之间的数值•数值越小,回答越保守稳定,数值越大,回答越大胆,可能导致出现“幻觉”
OpenAI代理设置
•编辑config.json
, 添加open_ai_proxy
为你的代理地址,如:
"open_ai_proxy": { "http": "socks5://127.0.0.1:1081", "https": "socks5://127.0.0.1:1081" }
安装postgresql(可选)
•编辑config.json
, 设置use_postgres
为true
•安装postgresql•默认的sql地址: postgresql://localhost:5432/mydb
或在config.json
中设置•安装pgvector插件
编译并安装扩展(支持Postgres 11+)
git clone --branch v0.4.0 https://github.com/pgvector/pgvector.git
cd pgvector
make
make install # may need sudo
然后在您要使用它的数据库中加载它
CREATE EXTENSION vector;
•pip安装依赖pip3 install psycopg2
Example
Please enter the link to the article or the file path of the PDF/TXT/DOCX document: https://gutenberg.ca/ebooks/hemingwaye-oldmanandthesea/hemingwaye-oldmanandthesea-00-e.html
Please wait for 10 seconds until the webpage finishes loading.
The article has been retrieved, and the number of text fragments is: 663
...
=====================================
Query fragments used tokens: 7219, cost: $0.0028876
Query fragments used tokens: 7250, cost: $0.0029000000000000002
Query fragments used tokens: 7188, cost: $0.0028752
Query fragments used tokens: 7177, cost: $0.0028708
Query fragments used tokens: 2378, cost: $0.0009512000000000001
Embeddings have been created with 663 embeddings, using 31212 tokens, costing $0.0124848
The embeddings have been saved.
=====================================
Please enter your query (/help to view commands):
TODO
• 支持pdf/txt/docx文件
• 支持免数据库纯内存(faiss)
• 支持Stream
• 支持API
• 支持代理
• 添加colab
• 添加语言支持
• 支持temperature
• 支持webui
• 其他还没想到的
References
[1]
openai: https://help.openai.com/en/articles/4936850-where-do-i-find-my-secret-api-key[2]
pinecone: https://pinecone.io/[3]
: https://colab.research.google.com/github/SkywalkerDarren/chatWeb/blob/master/example.ipynb