54 lines
2.4 KiB
Markdown
54 lines
2.4 KiB
Markdown
# FunASR OpenAI 兼容 API OpenAPI 规范
|
|
|
|
[English](OPENAPI.md)
|
|
|
|
当你希望在接入应用、API 网关、开发者门户、工作流引擎或 SDK 生成器之前,先查看、mock、导入或发布 FunASR 语音 API 时,可以使用 [`openapi.json`](openapi.json)。
|
|
|
|
运行中的 FastAPI 服务也会在 `/docs` 暴露 Swagger UI,并在 `/openapi.json` 暴露实时 schema。仓库里的 `openapi.json` 是这个示例服务的便携参考规范,便于在服务启动前完成评估和导入。
|
|
|
|
## 导入方式
|
|
|
|
| 工具 | 使用方式 |
|
|
|---|---|
|
|
| Swagger Editor 或 Redoc | 导入 `openapi.json`,查看 `/health`、`/v1/models` 和 `/v1/audio/transcriptions`。 |
|
|
| Postman | 如果偏好 schema 驱动集合,可导入 `openapi.json`;如果想直接 smoke test,可使用现成的 [Postman 集合](POSTMAN_zh.md)。 |
|
|
| Dify、n8n 或内部工作流工具 | 结合规范中的 multipart 请求结构和 [工作流配方](WORKFLOWS_zh.md) 配置 HTTP 节点。 |
|
|
| API 网关或内部开发者门户 | 发布该规范,并把 server URL 改成你的 FunASR API 可访问地址。 |
|
|
| 客户端生成 | 生成内部小客户端,并确保 multipart `file` 字段映射为二进制上传。 |
|
|
|
|
## Server URL
|
|
|
|
规范内置了两个示例地址:
|
|
|
|
- `http://localhost:8000`
|
|
- `http://funasr-api:8000`
|
|
|
|
请替换为你的应用、容器或工作流运行环境能访问到的地址。
|
|
|
|
## 端点
|
|
|
|
| Endpoint | Method | 用途 |
|
|
|---|---|---|
|
|
| `/health` | `GET` | 健康检查、设备、已加载模型和可用别名。 |
|
|
| `/v1/models` | `GET` | OpenAI 风格模型列表,包含 `ready` 状态。 |
|
|
| `/v1/audio/transcriptions` | `POST` | multipart 音频转写;使用 `response_format=verbose_json` 返回 segments。 |
|
|
|
|
## Multipart 转写字段
|
|
|
|
| Field | Type | Required | 说明 |
|
|
|---|---|---|---|
|
|
| `file` | binary | yes | 音频文件,例如 wav、mp3、flac、m4a、ogg 或 webm。 |
|
|
| `model` | string | no | 默认 `sensevoice`;可用别名由 `/v1/models` 返回。 |
|
|
| `language` | string | no | 可选语言提示。 |
|
|
| `response_format` | string | no | 使用 `json` 或 `verbose_json`。 |
|
|
|
|
## 对照运行中的服务验证
|
|
|
|
```bash
|
|
cd examples/openai_api
|
|
python server.py --model sensevoice --device cuda --port 8000
|
|
curl -fsS http://localhost:8000/openapi.json > /tmp/funasr-openapi-live.json
|
|
```
|
|
|
|
实时 FastAPI schema 可能包含框架级校验细节;仓库中的静态规范保留更小、更稳定的公开集成面。
|