AI VoIP
- 一个基于
FastAPI + PostgreSQL + Vue3的智能外呼平台示例工程,覆盖SIP线路管理、话术编排、名单导入、任务外呼、录音管理、转写结果查看和基础质检能力。 - 这个基础的版本将话术编排好后,拿到SIP账号后就可以做群拨了,由于实在是精力有限,其他的功能自己完善吧。
- 同时本人也开发了一套在freeswitch中的推流模块,可以实现PCM注入,文件转写,也支持打断,支持高并发。详细的看这里FreeSwitch推流模块 。
- 目前这一套中小型企业自用是完全足够了,录音也落盘了,同时支持minio存储,自己配置就行了。
- 项目开源地址智能呼叫系统
待完善的功能
- 目前线路只有SIP,暂时还没做对接线路,也没有做ESL。
- 质检的功能各家情况不一样,这里只做了一个基础的版本,可以根据自己的需求进行扩展。
功能概览
SIP线路管理:支持sip_account与gateway- 话术画布:节点编排、分支配置、版本发布
- 名单与批次:联系人导入、批次归档
- 任务运行:任务调度、执行批次、会话列表
- 线路池并发:一个任务可绑定多条
SIP线路,运行时按线路可用并发自动分配 - 录音管理:按通话展示录音文件,支持试听和下载
- 转写结果:按通话展示客服 / 客户对话时间线
- 质检与运行态:基础质检、日志排查、接口联调
页面预览
首页
话术编排
项目结构
.
├── README.md
├── SECURITY.md
├── ai_voip_backend
│ ├── README.md
│ ├── .env.example
│ ├── docs/API.md
│ ├── pyproject.toml
│ ├── sql/pgsql
│ └── src/ai_voip_backend
├── web-admin-vue3
├── .env.example
├── package.json
└── src
环境要求
- Linux
uv- Python
3.10 - PostgreSQL
14+ - Node.js
20+ - npm
10+ ffmpeg 6.x,如果需要处理录音或音频转码,建议提前安装
快速开始
1. 初始化后端
cd ai_voip_backend
cp .env.example .env
uv sync
uv run ai-voip-backend apply-sql
uv run ai-voip-backend bootstrap-admin --username admin --password '
<YOUR_ADMIN_PASSWORD>' --display-name '系统管理员'
2. 启动后端
cd ai_voip_backend
uv run ai-voip-api
默认地址:
- API:
http://127.0.0.1:3900 - Swagger:
http://127.0.0.1:3900/docs - OpenAPI:
http://127.0.0.1:3900/openapi.json
3. 初始化前端
cd web-admin-vue3
cp .env.example .env
npm install
npm run dev
默认前端地址:
- Web Admin:
http://127.0.0.1:5173
配置说明
后端环境变量
请参考 ai_voip_backend/.env.example:
AIVOIP_PG_HOST:PostgreSQL 地址AIVOIP_PG_PORT:PostgreSQL 端口AIVOIP_PG_USER:数据库用户AIVOIP_PG_PASSWORD:数据库密码AIVOIP_PG_DATABASE:数据库名AIVOIP_JWT_SECRET:JWT 签名密钥AIVOIP_TOKEN_ENCRYPTION_KEY:访问令牌加密密钥
开发命令
后端
cd ai_voip_backend
uv sync
uv run ai-voip-backend list-sql
uv run ai-voip-backend apply-sql
uv run python -m compileall src
前端
cd web-admin-vue3
npm install
npm run dev
npm run build
数据与存储
- 数据库统一使用
PostgreSQL - 录音、TTS 产物、导出文件默认走本地目录
- 也支持
MinIO / S3 Compatible,但开源仓库不包含任何真实桶配置或访问密钥

