master
API集合
该项目为所有API集合,集成了视觉分析、聊天对话和语音处理等功能。
更新日志
- 20250410 部署到docker
- 20250403 部署到222.186.20.67时的更新
项目结构
```
API/
├── api/ # 视觉分析和处理模块
│ ├── cpm_analyze.py # CPM_OCR分析
│ ├── qwenvl_analyze.py # QwenVL_OCR分析
│ ├── cpm_scene.py # CPM_场景分析
│ ├── qwenvl_scene.py # QwenVL_场景分析
│ ├── compare.py # insightface 面部特征提取
│ ├── yolo.py # YOLO目标检测
│ ├── face.py # 人脸检测
│ ├── fall.py # 跌倒检测
│ ├── pose.py # 姿态估计
│ ├── media.py # mediapipe 面部特征提取
| ├── start_services.sh #一键开始所有程序
| └── stop.sh #一键停止所有程序
├── api_chat/ # 聊天和语音处理模块
│ ├── chat.py # 聊天功能
│ ├── tts.py # 文字转语音
│ ├── asr.py # 语音识别
│ ├── GPT_SoVITS/ # GPT_SoVITS模型集成,
│ ├── sample/ # OpenBMB模型——学习音色,音色+文本内容
│ ├── tools/ # GPT_SoVITS模型——工具函数
│ ├── runtime/ # GPT_SoVITS模型——运行时函数
│ ├── docs/ # GPT_SoVITS模型——文档
| └── weight.json # GPT_SoVITS模型——权重
|
├── producer_chat/ # 聊天生产者
├── producer/ # 算法生产者,分配任务
└── README # 说明文档
```
主要功能
视觉分析模块 (api/) 支持图片、视频
- 目标检测 yolov8x
- 人脸检测 yolov8n-face
- 面部特征提取 insightface 、mediapipe
- 姿态估计 yolov8x-pose
- 跌倒检测 yolov8n-fall
- 场景理解、OCR分析(基于MiniCPM-v2.6和QwenVL-2B模型)
聊天对话模块 (api_chat/)
- 文本对话功能(Ollama-qwen2.5:3b)
- 语音识别 (ASR): 通过Whisper-large-v3模型
- 文字转语音 (TTS): 通过GPT_SoVITS模型
- 多模型支持(通过Ollama)
使用说明
API 部分 http://dev2.obscura.work/v1
1. producer 目录 # 生产者,分配任务
2. 服务器:222.186.20.67:8005
3. kafka 配置:222.186.20.67:9092
topic分配:
- yolo: "yolo"
- pose: "pose"
- qwenvl: "qwenvl"
- qwenvl_analyze: "qwenvl_analyze"
- cpm: "cpm"
- cpm_analyze: "cpm_analyze"
- fall: "fall"
- face: "face"
- mediapipe: "mediapipe"
- compare: "compare"
4. redis 配置:222.186.20.67:6379
db分配:
- 4: "yolo"
- 5: "pose"
- 9: "qwenvl"
- 32: "qwenvl_analyze"
- 8: "cpm"
- 31: "cpm_analyze"
- 6: "fall"
- 7: "face"
- 10: "mediapipe"
- 30: "compare"
5. 模型配置:
- YOLO = "/obscura/models/yolo11n.pt"
- POSE = "/obscura/models/yolo11n-pose.pt"
- QWEN = "/obscura/models/qwen/Qwen2.5-VL-7B-Instruct"
- FALL = "/obscura/models/yolov8n-fall.pt"
- FACE = "/obscura/models/yolo11n-face.pt"
- MEDIAPIPE = "/obscura/models/face_landmarker.task"
- CPM(ollama) = "https://222.186.20.67:11435/api/generate"
6. 上传文件及结果保存目录:
- UPLOAD_DIR = "/obscura/task/upload"
- RESULT_DIR = "/obscura/task/result"
API_Chat 部分 http://dev2.obscura.work/v1_chat
1. producer_chat 目录 # 聊天生产者
2. 服务器:222.186.20.67:8008
3. kafka 配置:222.186.20.67:9092
topic分配:
- asr: "asr"
- chat: "chat"
- tts: "tts"
4. redis 配置:222.186.20.67:6379
db分配:
- 2: "api key"
- 3: "api使用情况"
- 11: "task 任务记录"
- 12: "asr 记录"
- 13: "chat 记录"
- 14: "tts 记录"
#语言
- 63: "session_zh 中文"
- 62: "session_en 英文"
- 61: "session_ko 韩语"
#音色
- 15: "girl"
- 16: "woman"
- 17: "man"
- 18: "leijun"
- 19: "dufu"
- 20: "hejiong"
- 21: "mahuateng"
- 22: "lidan"
- 23: "dabing"
- 24: "luoxiang"
- 25: "xuzhiyuan"
- 26: "yuhua"
- 27: "liuzhenyun"
5. 音频文件保存目录:
- OUTPUT_PATH=/obscura/task/audio_files # 音频文件保存目录
注意事项
- 注意redis的db分配
- 注意kafka的topic分配
- 注意producer的config.py环境配置
- 注意producer_chat的.env环境配置
- 确保模型权重文件已正确配置
- 检查API密钥和环境变量设置
- 注意资源使用和性能优化
Description
Languages
Python
93.2%
Dockerfile
4.2%
Shell
2.6%