Files
sionrui/docs/kling-integration.md
2025-12-01 22:27:50 +08:00

156 lines
4.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 可灵数字人功能集成报告
## 功能概述
基于302.ai的可灵API我们成功集成了独立的人脸识别功能为后续对口型服务提供基础支持。
## 后端开发
### 1. API客户端
- **文件**: `yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/kling/KlingClient.java`
- **功能**: 调用302.ai的Identify-Face接口
- **复用**: 使用现有的LatentsyncProperties配置API密钥已配置
### 2. 业务服务
- **Service接口**: `KlingService.java`
- **Service实现**: `KlingServiceImpl.java`
- **Controller**: `KlingController.java` (路径: `/webApi/api/tik/kling/identify-face`)
### 3. 数据传输对象
- **请求VO**: `KlingIdentifyFaceReqVO.java`
- **响应VO**: `KlingIdentifyFaceRespVO.java`
- **DTO**: `KlingIdentifyFaceRequest.java`, `KlingIdentifyFaceResponse.java`
### API接口
```
POST /webApi/api/tik/kling/identify-face
Content-Type: application/json
Request:
{
"videoUrl": "https://example.com/video.mp4"
}
Response:
{
"code": 0,
"data": {
"sessionId": "session_xxxxx",
"faceData": [
{
"faceId": "face_001",
"faceImage": "https://...",
"startTime": 1000,
"endTime": 5000
}
]
}
}
```
## 前端开发
### 1. API服务
- **文件**: `frontend/app/web-gold/src/api/kling.js`
- **功能**: `identifyFace()` 方法
### 2. 页面组件
- **文件**: `frontend/app/web-gold/src/views/kling/IdentifyFace.vue`
- **功能**:
- 视频上传(支持 .mp4/.mov
- 拖拽上传支持
- 进度显示
- 识别结果展示(人脸列表、时间段)
- 科技极简风格UI黑蓝紫色调
### 3. 路由配置
- **文件**: `frontend/app/web-gold/src/router/index.js`
- **路径**: `/digital-human/kling`
- **菜单项**: "可灵数字人"(位于"数字人"分组下)
## 技术特点
### 1. 配置复用
- 复用了现有的 `LatentsyncProperties` 配置
- API Key: `sk-0IZJ2oo7VCkegFuF3JRsSRtyFUsIvLoHNK8OpulnlsStFN78`
- Base URL: `https://api.302.ai`
### 2. 代码架构
- 遵循Yudao框架的分层架构
- 复用现有的客户端模式参考LatentsyncClient
- VO/DTO分层设计
### 3. 前端设计
- 采用Vue 3 Composition API
- 响应式设计(支持移动端)
- 科技极简风格(渐变背景、毛玻璃效果)
## 文件结构
```
yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/kling/
├── KlingClient.java # API客户端
├── KlingService.java # 服务接口
├── KlingServiceImpl.java # 服务实现
├── KlingController.java # REST控制器
├── dto/
│ ├── KlingIdentifyFaceRequest.java
│ └── KlingIdentifyFaceResponse.java
└── vo/
├── KlingIdentifyFaceReqVO.java
└── KlingIdentifyFaceRespVO.java
frontend/app/web-gold/src/
├── api/
│ └── kling.js # 前端API
├── views/
│ └── kling/
│ └── IdentifyFace.vue # 识别页面
└── router/
└── index.js # 路由配置(含可灵路由)
```
## 使用说明
### 1. 访问页面
- 登录系统后,点击左侧菜单 **数字人** > **可灵数字人**
### 2. 上传视频
- 支持格式:.mp4, .mov
- 文件大小:≤ 100MB
- 视频时长2-60秒
- 支持拖拽上传
### 3. 人脸识别
- 点击"开始识别"按钮
- 系统调用302.ai API进行分析
- 显示识别结果:
- 会话ID用于后续操作
- 检测到的人脸列表
- 每张人脸的可对口型时间段
## 注意事项
1. **视频URL**: 目前页面使用本地URL进行测试生产环境需要先上传到OSS获取公网URL
2. **API密钥**: 已使用现有的302.ai配置无需额外配置
3. **跨域**: 确保前端已配置API代理到后端
## 后续扩展
1. **口型同步功能**: 基于sessionId进行口型同步
2. **批量处理**: 支持多个视频的批量识别
3. **历史记录**: 保存识别历史到数据库
4. **结果导出**: 支持导出识别结果
## 测试建议
1. 测试不同格式的视频文件
2. 测试大文件上传接近100MB
3. 测试网络异常情况
4. 测试识别失败场景
---
**开发完成时间**: 2024-11-30
**状态**: 后端API完成前端页面完成待测试联调