今天作者带大家实现一个普通配置电脑即可运行的私有化ChatGPT,支持以下功能:
1.界面体验与ChatGPT官方几乎一样。
2.支持多种开源模型,可以聊天、写代码、识别图片内容等。
3.支持文生图。
4.支持麦克风语音输入聊天。
5.支持自动朗读回答结果。
6.支持联网使用openai。
前5个功能拔掉网线也能正常使用。先看一下作者本地(16G内存无GPU)断网运行的聊天与图片识别效果:
文生图效果:
用到的开源项目(文末获取github地址):
1.界面:openwebui,8.1kstar,界面漂亮,功能丰富,我们本次主要用它将其他各开源项目组合起来。
2.大模型:ollama,44.8kstar,支持使用CPU运行多种开源大模型,部署超级简单。
3.文生图:stablediffusion,124kstar,最强开源文生图项目。
4.语音输入:openai开源的whisper,57.1kstar,CPU可用,效果可与收费产品比肩。
5.文本朗读:windows系统提供的接口,离线免费使用,后面有介绍。
6.接入openai:GPT_API_free,13.3kstar,免费的openaiAPIkey。
下面只有前两步为必须执行的,后面步骤根据自己需求决定是否执行。
openwebui不仅是一个聊天界面,还是一个ollama的客户端,还有很多其他功能,感兴趣可以去github看官方文档。使用docker一键部署:
先使用ollama下载llava模型,聊天时选择llava,发送图片即可。以下是作者测试的图片识别效果,连后面有多排座位,有些座位是空的都能准确识别出来!
先本地部署stablediffusion(以下简称sd):AI绘画教程之stablediffusion【2.Windows系统本地部署】
说明:sd需要GPU,但我看sd官方文档好像支持CPU,作者未验证。
接下来坑比较多,作者已解决,照做即可。
5.1open-webui要调用sd的接口,因此sd要提供api,修改sd根目录中的webui.bat,增加以下代码
如图所示:
5.2open-webui要调用sd的/sdapi/v1/options接口,但是这个接口报错,解决方案:sd根目录新建文件user.css,文件内容如下:
5.4生成图片的按钮只在大模型回复的内容下面才会出现,并且会把回复的内容当成sd的prompt,因此想生成图片需要先选择一个模型,让模型把你想使用的promt回复给你,然后点击生成图片按钮,就可以生成了。
感觉本地模型运行慢,有时候想用在线的OpenAI接口?没问题!可以参照这篇获取免费的APIKey:13kstar!获取免费ChatGPTAPIKey的开源项目,亲测可用!然后按照下图配置。
配置后,模型选择列表中就会自动多出来几个openai模型,选择即可使用。
按下图设置即可开启朗读功能,聊天时收到完整响应后会自动朗读。