中文文档 | English
使用 Azure OpenAI API(或 OpenAI API)和 Gradio 构建自己的 GPT 助手并管理 GPT 驱动的知识库!
现在,我正在构建一个更方便用户使用的项目,名为"RAGENT" 及其插件"RAGENT-Copilot",它不仅实现了项目的主要功能,还能实际创建和调用代理。如果您希望获得更好的使用体验,请查看这两个软件仓库。
- 🤖 简洁易用的聊天框界面
- 🔧 详细的参数配置
- 📚️ GPT(或任何 LLM )驱动的知识库,并支持知识库管理和 RAG (检索增强生成)
- 👓️ 优异的 RAG 检索能力(支持混合检索、重排序、指定文件检索)
- 🖼️ Dall-E-3 图片生成器
- 🔍️ RAG 搜索
- 🖥️ 支持完全本地的 embedding (Hugging Face)和聊天(Ollama)(如果您想要完全本地,或没有 Azure OpenAI)。这意味着,您可以在本地运行 GPT-Gradio-Agent 的聊天和知识库,而无需连接到 Azure OpenAI API!
- 📦 打包成便携包,下载即用
- 🛜 通过网络爬虫获取网页内容和对话;并根据你的需要选择是否将其存储在知识库中——进行中
如果你喜欢这个项目,请你为它点上 star,这是对我最大的鼓励!
这是基本的聊天框界面,你可以在其中直接与GPT进行对话,通过系统提示让他们扮演专家的角色并回答您的问题,并管理你的多个对话。
在此界面中,您可以创建和管理自己的知识库(CRUD),并让 GPT 结合指定的文档(或整个知识库)回答您的问题,实现 RAG (检索增强生成)。
不用一行行地在文件里找内容真是太高效了!
v0.9.0 新增:你现在不仅可以查看知识库的文件目录,还可以查看知识库内的具体内容,并且了解具体的分块情况。
点击勾选框,就可以查看分块的具体信息:
需要指出的是,当你加载了一个知识库后,它就会自动加载出它的具体信息。
并且,它是一个独立的模块,这也就意味着,你可以同时在打开知识库 A 时,使用该模块查看知识库 B !
v0.12.0 新增
现在你可以在 嵌入模型类型
中选择 Hugging Face(local)
,并自行选择已经支持的嵌入模型进行向量嵌入(目前已支持:BGE v1.5 系列)。
v0.12.0 新增,该改动为跨越式改动,需要进行知识库的手动移植。
现在,知识库将统一存储至路径 .\knowledge base
下,并且在右侧边栏以下拉列表的形式展现。你可以创建自定义名称的知识库,该名称将作为文件夹的名称。
移植旧有的知识库,请完成以下步骤:
- 在根目录下新建文件
embedding_config.json
,填写以下内容:{ "your knowledge base name": { "embedding_model_type": "OpenAI", "embedding_model": "text-embedding-ada-002" }, ... }将你想要使用的名称替换掉
your knowledge base name
(可以是中文)。
- 将原知识库文件夹完整地移动到
.\knowledge base
下,并将文件名称改为步骤 1 中填入的名称。- 移植成功!运行程序即可正常使用。
值得强调的是,在知识库列表中选中知识库后,页面会自动更新对应的嵌入模型信息,但是这些信息可以手动更改,我的本意是你可以在创建知识库后可以自由选定嵌入模型,但是这实际上可能会导致在同一个知识库中出现两种不同维度的向量(如果你在一次嵌入后自作主张地修改嵌入模型)。
对此我暂时没有想到好的解决方式,如果你有好想法,欢迎提 Issue 。所以就目前来说,强烈建议仅在创建新知识库时调整该选项,其他时候都不要修改。
如果你有 Azure OpenAI API 的访问权限,那么不尝试一下 Dall-E-3 模型来生成图片真是太浪费了!基于其非常强大的图片生成能力,它可能会成为你的得力助手。
通过利用搜索引擎(目前支持Bing)的广泛知识和 LLM 的卓越功能,您可以获得精确的答案和广泛的参考资料。它的灵感来自 search_with_lepton。
并且你还可以查看此前的历史记录,该项功能预计将不晚于 v0.14 上线。
-
使用
git clone https://github.com/Wannabeasmartguy/GPT-Gradio-Agent.git
拉取代码; 然后在**命令提示符 (CMD)**中打开你的运行环境,使用pip install -r requirements.txt
安装运行依赖。
模型的部署名称,一定要和模型的原名称相同! 比如部署
'gpt-35-turbo'
时,模型的部署名称也要填'gpt-35-turbo'
如果你要用 Dall-E-3 模型,那么部署名称请使用'dall-e-3'
- 复制
.env_example
并重命名为.env
,修改环境变量:
从 v0.9.0 开始,环境变量与之前存在变化:Langchain 对 OpenAI 和 Azure OpenAI 的环境变量设置存在冲突,无法在同时设置二者的变量时正常使用 Azure Openai ,这也意味着从该版本开始,暂时无法同时支持 OpenAI(我会在未来寻找兼容的方法),因此需要参照以下对环境变量进行设置。
AZURE_OAI_KEY
:Azure OpenAI 的 api key;
AZURE_OAI_ENDPOINT
:Azure OpenAI 的提供的“终结点”;API_VERSION
:Azure OpenAI 使用的 API 版本;注意:如果你想使用 Dall-E-3,请使用2023-12-01-preview
,2023-09-15-preview
及更早的版本将于 2024年 4 月 2 日被废弃;API_TYPE
:表示使用 Azure OpenAI 而非 OpenAI。
如果你要使用 RAG Search,请设置
BING_SUBSCRIPTION_KEY
,你可以在 Azure 中获得相关的免费资源,每月可以有 1000 次的免费调用机会。
- 尽情享受吧!
在终端输入python GPT-Gradio-Agent.py
以运行代码。在终端内你可以看到本地 URL,它一般是 http://127.0.0.1:7860。
如果你没有安装 Git ,可以在 release 页面下载最新代码。
解压后,按照上面 GIT 的步骤 1 和步骤 2 配置环境,最后**双击run.bat
**运行代码。
-
自适应语言适配(已支持中文、英语)
-
(系统级提示)身份扮演
-
添加上下文
-
流式输出
-
详细的参数配置
-
模型选择
-
支持 gpt-4-turbo( Azure 中名称为
gpt-4-1106-preview
) -
支持 gpt-4-turbo 的图片输入(需要额外部署 Azure 的 Computer Vision 资源)
-
支持使用 Dall-E 3 生成图片
-
-
对话管理
-
检索增强生成(RAG)
-
检索的多项优化 —— 持续进行
-
混合检索
-
重排序
-
指定文件检索
-
-
单文件对话
-
文件全文总结
-
知识库本地管理
-
知识库全局检索与对话
- 显示引用来源
-
预估嵌入文件的费用
-
-
RAG 强化搜索引擎搜索
-
支持 Bing 搜索引擎
-
历史搜索记录的保存和查看(不晚于 v0.14)
-
-
网页内容检索以及和知识库的交互
-
聊天记录导入、导出
-
聊天记录导出
-
聊天记录导入
-