Skip to content

项目结构 ​

txt
assemblyai-hub/
├── app/
│   ├── main.py          # FastAPI 应用、生命周期(建表、导入、轮询、代理启动)
│   ├── config.py        # 全部环境变量与默认值、上游域名表
│   ├── db.py            # SQLAlchemy 模型与自动补列迁移
│   ├── security.py      # Hub Key 生成、哈希、加解密、请求鉴权
│   ├── proxy.py         # 对外 API:/v2、/v3/token、/llm-gateway、/sync、/dictation、/hub
│   ├── streaming.py     # /v3/ws 实时中继
│   ├── upstream.py      # 调用 AssemblyAI:选号、换号重试、按账号走代理
│   ├── pool.py          # 账号池:选号规则、冷却与异常标记
│   ├── jobs.py          # 转写任务:提交、刷新、轮询、转发客户端回调
│   ├── webhook.py       # 接收 AssemblyAI 回调
│   ├── services.py      # 账号 / Key 的新增、导入解析、启动时导入
│   ├── admin.py         # 控制台路由
│   ├── llm.py           # 自定义 OpenAI 兼容 LLM
│   ├── compress.py      # ffmpeg 压缩
│   ├── proxies.py       # 代理节点、订阅、sing-box 进程、测速
│   ├── proxyparse.py    # 订阅与节点链接解析
│   ├── labels.py        # 用量类型、状态的显示名称
│   ├── i18n.py          # 中英文切换
│   ├── i18n_en.py       # 英文翻译表
│   ├── templates/       # Jinja2 页面
│   └── static/          # CSS、JS、图标
├── docs/                # API 覆盖说明、设计规范
├── docs-site/           # 本文档站(VitePress)
├── skills/assemblyai-hub/  # Agent Skill 技能包(文档站「Agent Skill」页提供下载)
├── tests/smoke.py       # 端到端冒烟测试
├── Dockerfile
├── docker-compose.yml
├── .env.example
├── VERSION              # 当前版本号
└── CHANGELOG.md

主要数据表 ​

表内容
accounts上游账号(Key 加密存储)、区域、权重、并发、状态、代理
api_keysHub Key(哈希 + 加密)、区域、请求次数
jobs转写任务、所属账号与 Key、状态、参数、客户端回调、AI 结果
uploadsupload_url 与账号的对应关系
usage用量事件
proxy_nodes / proxy_subs代理节点与订阅
settings控制台保存的设置(如自定义 LLM)

请求在代码中的路径 ​

以 POST /v2/transcript 为例:

  1. proxy.create_transcript 调用 security.client_key 校验 Key。
  2. jobs.submit 接管 webhook_url、兼容旧模型参数,查 uploads 决定是否绑定账号。
  3. upstream.bound 或 upstream.any_account 发出请求,后者通过 pool.pick 选号并在失败时换号。
  4. 成功后写入 jobs,响应返回给客户端。
  5. AssemblyAI 回调 webhook.py,或 jobs.poller 轮询到结束状态,调用 jobs.notify_client 转发给客户端。

文档版本 v3.4.0 · 与项目版本同步