如何打造本地知识库——那些与Chat Pdf相关的几款开源热门跑车级应用

前言

随着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文件并提取正文,可以生成嵌入式概要,可以根据正文内容回答你的问题。

另外,之前梳理过的有几个与之相关的热门项目,列举如下:

pdfGPT——通过AI与上传的PDF文件进行聊天

Flowise——通过拖放界面构建定制的LLM流程

Quivr - 你的第二个大脑,由AIGC赋能

一、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或创建可分享的链接。

picture.image

为什么我要构建它

当你想分享一些聊天记录时,截取整个聊天记录非常困难。这将增加将其导出为图片,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”旁边)注意到新的按钮:

picture.image

在页面底部寻找它们:

picture.image

点击它们可以生成PNG,下载PDF或创建整个聊天的HTML:

picture.image

路线图

•支持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.jsonconfig.json •编辑config.json, 设置open_ai_key为你的openai的api key •安装依赖


        
            

          pip3 install -r requirements.txt
        
      

•运行


        
            

          python3 main.py
        
      

模式选择

•编辑config.json, 设置modeconsole, apiwebui作为选择启动模式。 •console模式下,输入/help查看指令 •api模式下,可对外提供api服务,在config.json中可设置api_portapi_hostwebui模式下,可提供webui服务,在config.json中可设置webui_port,默认为http://127.0.0.1:7860

Stream模式

•编辑config.json, 设置use_streamtrue

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_postgrestrue •安装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

0
0
0
0
评论
未登录
暂无评论