这是一个基于FastAPI的后端项目,用于创建十一实验室(ElevenLabs)代理,该代理可拨出电话,以友好且无专业术语的方式提供科技新闻更新。本项目展示了如何集成十一实验室的MCP(模型上下文协议),以创建具备语音功能的对话式AI代理。
本项目是一个基于FastAPI的后端应用,借助十一实验室的MCP协议,创建能拨出电话并提供科技新闻更新的对话式AI代理。以下是快速搭建和使用该项目的步骤。
克隆仓库
git clone https://github.com/LEKKALAGANESH/Eleven-Labs-MCP-Integration.git
cd Eleven-Labs-MCP-Integration
安装依赖项
pip install -r requirements.txt
配置环境变量
cp .env.example .env
# 使用实际值编辑.env文件
运行服务器
uvicorn app.main:app --reload
创建一个 .env 文件,并设置以下变量:
ELEVENLABS_API_KEY=your_elevenlabs_api_key
ELEVENLABS_BASE_URL=https://api.elevenlabs.io/v1
AGENT_VOICE_ID=Xb7hH8MSUJpSbSDYk0k2
AGENT_PHONE_NUMBER_ID=your_phone_number_id
ElevenLabs/
├── app/
│ ├── main.py # 包含端点的FastAPI应用程序
│ ├── elevenlabs_client.py # 十一实验室API客户端函数
│ └── config.py # 配置和环境变量
├── requirements.txt # Python依赖项
├── .env.example # 环境变量模板
├── .gitignore # Git忽略规则
└── README.md # 项目文档
POST /create-agent
创建一个具有预定义个性和语音的新科技新闻更新代理。
响应:
{
"agent": {
"agent_id": "agent_5701k1capwtse9fske3xgefspyra",
"name": "Tech News Update Agent",
"voice_id": "Xb7hH8MSUJpSbSDYk0k2"
}
}
POST /call
发起一个拨出电话到指定的电话号码。
请求体:
{
"phone_number": "+1234567890"
}
响应:
{
"result": {
"conversation_id": "conv_3401k1casackffe9emj08wgf9zsd",
"call_sid": "CA12265951d92ca816f1f15693d7efd6a2",
"status": "success"
}
}
创建代理:
curl -X POST "http://localhost:8000/create-agent"
拨打电话:
curl -X POST "http://localhost:8000/call" \
-H "Content-Type: application/json" \
-d '{"phone_number": "+1234567890"}'
import requests
# 创建代理
response = requests.post("http://localhost:8000/create-agent")
agent_data = response.json()
agent_id = agent_data["agent"]["agent_id"]
# 拨打电话
call_data = {"phone_number": "+1234567890"}
response = requests.post("http://localhost:8000/call", json=call_data)
print(response.json())
科技新闻更新代理配置如下:
⚠️ 重要提示
- 电话验证:必须拥有经过验证或付费的十一实验室/Twilio账户,才能拨打未验证的号码。
- 代理ID:创建代理后,将返回的
agent_id更新到main.py文件中。- API限制:注意十一实验室API的速率限制和使用配额。
- 环境变量:切勿将实际的API密钥提交到版本控制系统。
本项目为开源项目,采用 MIT许可证。
欢迎贡献代码!请随意提交拉取请求。
如需支持,请在GitHub仓库中创建一个问题,或联系维护人员。
使用十一实验室MCP集成 ❤️ 构建