
本地部署 OpenAI 的 实时语音合作伙伴LiveKit(模拟人类对话即可以打断对话继续语音交互)教程:openai,ollama,阿里百炼
结合 LiveKit 的实时音视频功能和 Ollama 的大模型响应,可以实现诸如语音转文本、文本生成等功能。: 使用 LiveKit 提供的客户端 SDK(如 JavaScript)连接 LiveKit 服务器。通过客户端应用连接 LiveKit 和 Ollama,需要编写代码来处理这两个组件的交互。: 在本地目录(这是我的路径"D:\Downloads\livekit")中创建。(我们可以去阿
需要安装的依赖
npm install express node-fetch livekit-server-sdk
1.需要安装docker(参考第一篇文章)
终端拉取:
docker pull livekit/livekit-server
可能的error:
这表明 Docker 无法正常连接到其后台服务,检查是否打开docker
这是我的拉取成功截图:
2.创建配置文件: 在本地目录(这是我的路径"D:\Downloads\livekit")中创建 config.yaml
,内容如下
openai的
api_key: my_api_key
api_secret: my_api_secret
rtc:
use_external_ip: true
3。运行 LiveKit 服务器: 在终端中运行以下命令:
docker run -it --rm \
-p 7880:7880 \
-p 7881:7881 \
-v $(pwd)/config.yaml:/config.yaml \
livekit/livekit-server
测试服务器
- 打开浏览器访问
http://localhost:7880
确认 LiveKit 服务器正在运行。
第二步::
上面ollama的
通过客户端应用连接 LiveKit 和 Ollama,需要编写代码来处理这两个组件的交互。
1.LiveKit 客户端: 使用 LiveKit 提供的客户端 SDK(如 JavaScript)连接 LiveKit 服务器。
import { connect } from 'livekit-client';
const room = await connect('ws://localhost:7880', {
token: 'your_access_token',
});
room.on('participant-connected', (participant) => {
console.log(`Participant ${participant.identity} connected`);
});
2.与 Ollama 通信: 使用 HTTP 请求访问 Ollama 提供的 API:
const response = await fetch('http://localhost:11400/api/chat', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ message: 'Hello, Ollama!' }),
});
const data = await response.json();
console.log('Response from Ollama:', data);
3.整合逻辑: 结合 LiveKit 的实时音视频功能和 Ollama 的大模型响应,可以实现诸如语音转文本、文本生成等功能。
4.将 LiveKit 和 Ollama 的功能整合到一个项目中:
创建项目目录
mkdir livekit-ollama && cd livekit-ollama
初始化项目:
npm init -y
npm install livekit-client
创建入口文件 index.js
:
- 包含连接 LiveKit 和调用 Ollama 的逻辑。
运行项目:
node index.js
我们开始ollama的使用方法
1.(我们可以去阿里云百炼大模型去拿自己的api-key::有免费额度)
ollama:
model: qwq-32b-preview
api_key: sk-bd5a10e842384bfa8b08ae85f6d66ff3
url: "https://dashscope.aliyuncs.com/compatible-mode/v1"
2. 使用 Ollama API 的逻辑
Ollama 提供一个 RESTful API,你可以通过 HTTP 请求调用它。假设 Ollama 的服务运行在本地(默认地址为 http://localhost:11400
)。
2.1 Ollama API 示例
你可以使用以下命令调用 Ollama 的模型接口:
curl -X POST http://localhost:11400/api/chat \
-H "Content-Type: application/json" \
-d '{"message": "Hello", "model": "llama"}'
3. 通过代码整合 LiveKit 和 Ollama
要实现 LiveKit 和 Ollama 的集成,可以通过以下方式在代码中进行整合:
3.1 构建一个中间服务
你可以使用 Node.js、Python 等语言编写一个服务,连接 LiveKit 和 Ollama:
const express = require('express');
const fetch = require('node-fetch');
const { connect } = require('livekit-client');
const app = express();
app.use(express.json());
// LiveKit 配置
const LIVEKIT_URL = 'ws://localhost:7880';
const LIVEKIT_TOKEN = 'your_livekit_token';
// Ollama 配置
const OLLAMA_API_URL = 'http://localhost:11400/api/chat';
// WebHook 接收 LiveKit 事件
app.post('/livekit-webhook', async (req, res) => {
const event = req.body;
if (event.event === 'participant-joined') {
const message = `Participant ${event.participant.name} joined the room.`;
const response = await fetch(OLLAMA_API_URL, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ message, model: 'llama' }),
});
const data = await response.json();
console.log('Ollama response:', data);
}
res.sendStatus(200);
});
// 启动服务器
app.listen(3000, () => {
console.log('Server is running on http://localhost:3000');
});
- 确保 LiveKit 和 Ollama 服务都已启动。
- 启动上述中间服务。
- 配置 LiveKit 的 WebHook,将事件推送到中间服务。
4. 修改 config.yaml
添加 WebHook
api_key: my_api_key
api_secret: my_api_secret
rtc:
use_external_ip: true
webhook:
urls:
- http://localhost:3000/livekit-webhook
webhook.urls
:指定 LiveKit 将事件推送到的地址。
5. 验证功能
-
启动 LiveKit(终端):
docker run -it --rm \ -p 7880:7880 \ -p 7881:7881 \ -v $(pwd)/config.yaml:/config.yaml \ livekit/livekit-server
启动中间服务(Node.js 示例):
node app.js
成功后::
更多推荐
所有评论(0)