GPT4All-UI|开源对话聊天机器人
这是一个 Flask Web 应用程序,提供了一个聊天界面,用于与基于 llamacpp 的聊天机器人(例如 GPT4all、vicuna 等)进行交互。
GPT4All 是一种卓越的语言模型,由专注于自然语言处理的熟练公司 Nomic-AI 设计和开发。该应用程序使用 Nomic-AI 的高级库与最先进的 GPT4All 模型进行通信,该模型在用户的个人计算机上运行,确保无缝高效的通信。
该应用程序的一个印象深刻的特点是,它允许用户发送消息到聊天机器人,并在实时中接收到即时响应,确保无缝的用户体验。此外,该应用程序还支持将整个聊天历史记录以文本或 JSON 格式导出,为用户提供更大的灵活性。
值得注意的是,该模型最近推出,预计将随着时间的推移而不断发展,使其在未来变得更加出色。这个 WebUI 旨在为社区提供一个轻松且完全本地化的聊天机器人访问方式,它将继续改进和适应。
界面展示
主界面
设置界面
扩展界面
训练界面
GitHub
项目开源地址:nomic-ai/gpt4all-ui: gpt4all chatbot ui (github.com)
部署教程
如果您是初学者,对于命令行不太理解,那么请按下键盘上的Win键+R键
后,在弹出的新窗口内输入CMD并按下回车,打开CMD窗口,按顺序执行如下的每一条命令。
首先我们需要确认一个工作目录,用来存放gpt4all-ui
的相关文件。本站所选择的目录为D盘的根目录下openai.wiki文件夹,完整路径为:D:\openai.wiki
。
1.检测D盘是否在openai.wiki
,没有则创建该文件夹。
if not exist D:\openai.wiki mkdir D:\openai.wiki
2.强制切换工作路径为D盘的openai.wiki
文件夹。
cd /d D:\openai.wiki
3.拉取Github仓库文件夹,将下载至openai.wiki
文件夹。
git clone https://github.com/nomic-ai/gpt4all-ui.git
注意:如果您无法完成第3步,执行后报错或者无法下载,可以下载该文件将其解压至D:\openai.wiki
即可。
模型下载
注意:本站长上传的时候粗心,忘记修改模型文件后缀啦。各位下载好之后将模型名称gpt4all-lora-quantized-ggml.bin.original
更改为gpt4all-lora-quantized-ggml.bin
。也就是将.original
删除即可。
将下载后的模型移动至models目录下即可,目录结构如下:
D:\openai.wiki\gpt4all-ui\models └─.keep └─gpt4all-lora-quantized-ggml.bin └─README.md
环境安装
该项目支持全自动安装部署相关依赖环境,我们先强制切换至gpt4all-ui
的项目路径,确保一切可以正常安装。
cd /d D:\openai.wiki\gpt4all-ui
在CMD中执行下面的命令行,使其可以自动安装相关依赖环境。
install.bat
在CMD中执行下面的命令行,激活已创建的虚拟环境。
D:\openai.wiki\gpt4all-ui\env\Scripts\activate.bat
启动
在CMD中执行下面的命令行,以默认参数启动GPT4All-UI。
python app.py
在您启动后,将会看到如下提示:
# 原文 llama_model_load: model size = 4017.27 MB / num tensors = 291 llama_init_from_file: kv self size = 512.00 MB * Serving Flask app 'GPT4All-WebUI' * Debug mode: off [2023-04-14 02:45:19,751] {_internal.py:224} INFO - WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead. * Running on http://localhost:9600 [2023-04-14 02:45:19,752] {_internal.py:224} INFO - Press CTRL+C to quit # 中文 llama_model_load:模型大小 = 4017.27 MB / num tensors = 291 llama_init_from_file:kv 自身大小 = 512.00 MB * 服务 Flask 应用程序“GPT4All-WebUI” *调试模式:关闭 [2023-04-14 02:45:19,751] {_internal.py:224} 信息 - 警告:这是一个开发服务器。 不要在生产部署中使用它。 请改用生产 WSGI 服务器。 * 在 http://localhost:9600 上运行 [2023-04-14 02:45:19,752] {_internal.py:224} 信息 - 按 CTRL+C 退出
该部分可以忽略,其实就是警告您的服务器当前是开发者环境,不用理会,不影响程序正常运行。
我们直接打开网址http://localhost:9600即可,因为当前已经可以显示WebUI交互界面啦。
可选参数
如果您不理解该部分内容,请跳过可选参数这部分内容,继续浏览以下部分。
如果您希望启动时添加各项参数,可以手动设置其各项默认值。
python app.py [--port 9600] [--host localhost] [--temp 0.1] [--n-predict 128] [--top-k 40] [--top-p 0.90] [--repeat-penalty 1.3] [--repeat-last-n 64] [--ctx-size 2048]
选项:
- –config:要使用的配置文件。它包含要使用的默认配置。脚本参数将覆盖配置文件中的配置。它必须放置在configs文件夹中(默认值:default.yaml)
- –personality:人格文件名。它包含聊天机器人个性的定义。它应该放置在personalities文件夹中。默认值为
gpt4all_chatbot.yaml
- –model:要使用的模型名称。模型应该放置在models文件夹中(默认值:
gpt4all-lora-quantized.bin
) - –seed:随机种子用于重现。如果固定,可以完全重现输出(默认值:随机)
- –port:服务器运行的端口(默认值:9600)
- –host:服务器运行的主机地址(默认值:localhost)
- –temp:模型的采样温度(默认值:0.1)
- –n-predict:一次预测的标记数(默认值:128)
- –top-k:考虑用于采样的前k个候选项的数量(默认值:40)
- –top-p:用于top-p采样的累积概率阈值(默认值:0.90)
- –repeat-penalty:应用于重复n-gram的惩罚(默认值:1.3)
- –repeat-last-n:用于检测重复n-gram的标记数(默认值:64)
- –ctx-size:用于生成响应的最大上下文大小(默认值:2048)
注意:所有选项都是可选的,并且具有默认值。
运行服务器后,打开浏览器并导航到http://localhost:9600(或者如果您选择了不同的值,则导航到http://您的IP地址:您的端口号
),以访问聊天机器人UI。要使用应用程序,请打开Web浏览器并导航到此URL。
请确保调整选项的默认值和描述,以匹配您的具体应用程序。
运行
此时我们将会看到如下内容,提示是否转换模型,我们按下键盘上的Y
即可。
# 原文 In order to make a model work, it needs to go through the LLaMA tokenizer, this will fix errors with the model in run.bat. Do you want to convert the model? [Y,N]? # 中文 为了让模型正常运行,需要经过 LLaMA 分词器的处理,这将修复在 run.bat 中出现的错误。您是否想要转换模型?[是,否]?
在我们按下Y之后,将会看到如下提示,让我们选择需要转换的模型,我们输入2
即可。
# 原文 Do you want to convert the model? [Y,N]?Y [1] models\.keep [2] models\gpt4all-lora-quantized-ggml.bin [3] models\README.md Enter the number of the model you want to convert: # 中文 [1] models\.keep [2] models\gpt4all-lora-quantized-ggml.bin [3] models\README.md 输入您要转换的模型编号:
在我们按下2
之后,将会看到如下提示,确认是否开始转换,我们输入Y
即可。
# 原文 Enter the number of the model you want to convert: 2 You selected models\gpt4all-lora-quantized-ggml.bin Do you want to convert the selected model to the new format? [Y,N]? # 中文 您选择了models\gpt4all-lora-quantized-ggml.bin 您要将所选模型转换为新格式吗? [是,否]?
在我们输入Y
之后,将会看到如下提示,这代表我们已经成功转换了模型的格式。
# 原文 The model file (models\gpt4all-lora-quantized-ggml.bin) has been converted to the new format. Cleaning tmp folder Virtual environment created and packages installed successfully. Every thing is setup. Just run run.bat 请按任意键继续. . . # 中文 模型文件 (models\gpt4all-lora-quantized-ggml.bin) 已转换为新格式。 清理 tmp 文件夹 已成功创建虚拟环境并成功安装软件包。 每件事都是设置。 运行 run.bat 请按任键继续。 . .
此时我们执行如下代码即可自动激活环境。
run.bat
部分情况下,安装依赖可能需要代码为.\install.bat
安装时候在模型转化的那部分会因为去烧文件而不能转化模型,这个migrate-ggml-2023-03-30-pr613.py. 打开看它git下来/tmp/llama.cpp里面没有这个文件。估计版本问题,网上找到一个后会运行出错。跳过模型这部分不管,运行run.bat, 没有启动画面,估计失败了.. 有没有遇到过呢
@Sean 我这里已经有热心网友给我提供了已经编译好的模型,正在上传,稍后更新地址。