Files
api/README.md
T
2025-01-12 06:58:52 +00:00

4.9 KiB

API集合

该项目为所有API集合,集成了视觉分析、聊天对话和语音处理等功能。

项目结构

```
API/
├── api/                   # 视觉分析和处理模块
│   ├── producer/          # 主程序入口,生产者,分配任务
│   ├── cpm_analyze.py     # CPM_OCR模型分析
│   ├── qwenvl_analyze.py  # QwenVL_OCR模型分析
│   ├── cpm_scene.py       # CPM_场景模型分析
│   ├── qwenvl_scene.py    # QwenVL_场景模型分析
│   ├── compare.py         # 人脸对比模型
│   ├── yolo.py            # YOLO目标检测
│   ├── face.py            # 人脸检测
│   ├── fall.py            # 跌倒检测
│   ├── pose.py            # 姿态估计
│   └── media.py           # 媒体处理
├── api_chat/            # 聊天和语音处理模块
│   ├── producer_chat/       # 聊天生产者
│   ├── chat.py           # 聊天功能
│   ├── tts.py            # 文字转语音
│   ├── asr.py            # 语音识别
│   ├── GPT_SoVITS/      # GPT_SoVITS模型集成,
│   ├── sample/          # OpenBMB模型——学习音色,音色+文本内容,
│   ├── tools/           # GPT_SoVITS模型——工具函数
│   ├── runtime/         # GPT_SoVITS模型——运行时函数
│   ├── docs/            # GPT_SoVITS模型——文档
│   ├── TEMP/            # OpenBMB模型临时文件夹,
│   └── before/          # 历史代码,可以忽略   
├── api_history/          # api历史代码,可以忽略
├── chat_history/         # api_chat历史代码,可以忽略
└── api_old/              # api历史代码,可以忽略
```

主要功能

视觉分析模块 (api/)

- 目标检测和跟踪
- 人脸识别
- 人脸对比
- 姿态估计
- 跌倒检测
- 场景理解(基于CPM和QwenVL模型)

聊天对话模块 (api_chat/)

- 文本对话功能
- 语音识别 (ASR): 通过Whisper模型
- 文字转语音 (TTS): 通过GPT_SoVITS模型
- 多模型支持(通过Ollama)

使用说明

API 部分 http://dev.obscura.work/v1

1. producer 目录          # 生产者,分配任务
2. 服务器:222.186.10.253:8005
3. kafka 配置:222.186.10.253: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 配置:150.158.144.159:13003
    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/yolov8x.pt"
    - POSE = "/obscura/models/yolov8x-pose.pt"
    - QWEN = "/obscura/models/qwen/Qwen2-VL-2B-Instruct"
    - FALL = "/obscura/models/yolov8n-fall.pt"
    - FACE = "/obscura/models/yolov8n-face.pt"
    - MEDIAPIPE = "/obscura/models/face_landmarker.task"    
    - CPM(ollama) = "https://ffgregevrdcfyhtnhyudvr.myfastools.com/api/generate"
6. 上传文件及结果保存目录:
    - UPLOAD_DIR = "/obscura/task/upload"
    - RESULT_DIR = "/obscura/task/result"

API_Chat 部分 http://dev.obscura.work/v1_chat

1. producer_chat 目录  # 聊天生产者
2. 服务器:222.186.10.253:8008
3. kafka 配置:222.186.10.253:9092
    topic分配:
    - asr: "asr"
    - chat: "chat"
    - tts: "tts"
4. redis 配置:150.158.144.159:13003
    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密钥和环境变量设置
  • 注意资源使用和性能优化