Docker部署LocalAI 实现本地私有化 文本转语音(TTS) 语音转文本 GPT功能
简介
LocalAI是一种直接替代REST API,和本地推理的OpenAI API规范兼容。它允许使用消费级硬件在本地或本地运行 LLM(不仅如此),支持与 ggml 格式兼容的多个模型系列。他不需要GPU(使用消费级设备的cpu计算)。
- 本地 OpenAI 替代 REST API。
- 无需GPU(使用cpu计算)。也不需要互联网接入。
- 可选,GPU 加速可在
llama.cpp
兼容的 LLM 中使用。另请参阅构建部分。
- 可选,GPU 加速可在
- 支持多种型号
- 🏃第一次加载后,它会将模型加载到内存中以加快推理速度
- ⚡不进行 shell-out,而是使用 C++ 绑定来实现更快的推理和更好的性能。
功能特点
- 📖 使用 GPT 生成文本(
llama.cpp
,gpt4all.cpp
, …📖以及更多) - 🗣 文本转音频
- 🔈 音频转文本(音频转录
whisper.cpp
) - 🎨 具有稳定扩散的图像生成
- 🔥 OpenAI 功能 🆕
- 🧠 矢量数据库的嵌入生成
- ✍️约束语法
- 🖼️直接从 Huggingface 下载模型
本地安装LocalAI
安装docker和docker-compose环境以及git环境
1 | # 安装docker |
克隆LocalAI项目到本地或者下载release中对应版本的源码包到本地解压
1 | # 方式一:使用git克隆项目 |
启动服务
1 | # 切换到项目目录 |
文本转语音(TTS)模型配置
下载并安装中文语音模型
1 | # 下载中文语音模型 |
使用docker-compose重启LocalAI服务使其重新加载中文语音模型
1 | $ cd LocalAI |
查看中文语音模型是否加载成功
1 | $ curl http://localhost:8080/v1/models |
使用其他客户端调用tts文本转语音接口,测试文本生成语音是否ok
1 | $ curl http://192.168.1.52:8080/tts -H "Content-Type: application/json" -d '{"model":"zh_CN-huayan-medium.onnx","input": "测试一下文本生成语音是否正常"}' --output ~/Desktop/test.mp3 |
192.168.1.52:8080
为你部署LocalAI的主机ip地址zh_CN-huayan-medium.onnx
为刚刚加载的中文语音模型名称测试一下文本生成语音是否正常
为要转成语音的文本内容~/Desktop/test.mp3
为生成的语音mp3
文件存储目录和名称
使用播放器播放~/Desktop/test.mp3
这个生成的音频文件,即可听到效果。
语音转文字模型配置
来 这里下载模型文件,最好下载small以上基本的模型(等级越高文件越大效果越好),我这里下载ggml-small.bin
(ggml-small.en.bin)文件名带en的话就是英语的模型文件。
1 | # 下载模型文件 |
进入LocalAI的docker容器中安装ffmpeg
这个软件,语音转文字时需要用到,不然接口会报错
1 | # 进入容器 |
退出容器使用docker-compose重启容器服务使其重新加载ggml-small.bin
新添加的模型。
1 | $ docker-compose restart |
查看ggml-small.bin
模型是否加载成功
1 | $ curl http://localhost:8080/v1/models |
使用其他客户端调用语音转文本接口,测试是否ok
1 | # 下载测试用的ogg音频文件(mp3、mp4也可以的) |
192.168.1.52:8080
为你部署LocalAI的主机ip地址$PWD/George_W_Bush_Columbia_FINAL.ogg
取你音频文件的路径,$PWD代表音频文件在当前目录下。whisper-1
为使用的模型名称
文本生成模型配置
下载GPT4ALL-J
模型,(也可以使用其他语言模型,配置方法和这个类似)
1 | # 切换到项目目录下,下载语言模型到models目录中,复制模板文件到models目录下 |
使用docker-compose重启容器服务使其加载新增的语言模型
1 | $ docker-compose restart |
查看ggml-small.bin
模型是否加载成功
1 | $ curl http://localhost:8080/v1/models |
使用其他客户端调用生成接口,测试是否ok
1 | $ curl http://192.168.1.52:8080/v1/chat/completions -H "Content-Type: application/json" -d '{"model": "ggml-gpt4all-j","messages": [{"role": "user", "content": "How are you?"}],"temperature": 0.9 }' |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Mr.Pu 个站博客!
评论