# AiAnyTra **Repository Path**: ailexc-code/aianytra ## Basic Information - **Project Name**: AiAnyTra - **Description**: ----------------------------- - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-17 - **Last Updated**: 2026-10-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AI随心记(ai_memo) 个人的 AI 信息中枢 / 路由器:输入多源内容(抖音链接 / 文字),AI 整理后自动生成飞书文档。 > **在线介绍页**:https://devops.ailexc.com/ai/anytra/ > **代码仓库**:[Gitee(主)](https://gitee.com/ailexc-code/aianytra) | [GitHub(备用)](https://github.com/Ailexc/ai-anytra) ## 架构 ``` 用户浏览器 │ https://frontend.aianytra.orb.local/ ▼ frontend (nginx SPA + 反代 /api/ → api) ← OrbStack 域名 │ ▼ api (FastAPI 8001: 认证/套餐/任务队列/插件) ├── douyin 插件 → 抖音解析(短链302 → SSR → 引擎API) ├── feishu 插件 → 用户 OAuth 连接器(OpenAPI)优先,降级 lark-cli └── model gateway → 自研多供应商直连(mimo 等,ai_providers 表) ``` - **三端分离**:用户端(选套餐/用功能)/ 管理端(套餐/模型/用量/用户)/ 服务端(认证+任务+数据) - **New API 已退役**;模型走自研多供应商直连网关(`ai_providers` 表 + 能力绑定,管理端可自管) ## 本地开发 ```bash # 后端(端口 8001,注意 8000 常被其他项目占用) SSL_CERT_FILE=$(.venv/bin/python -c "import certifi;print(certifi.where())") .venv/bin/python run.py # 前端(Vite 5173,/api 代理到 8001) cd frontend && npm install && npm run dev ``` ## Docker + OrbStack 部署 ```bash cp .env.example .env # 按需填写模型 / 飞书配置 docker compose up -d --build ``` | 服务 | 任意 Docker(本机) | OrbStack 域名 | |------|--------------------|---------------| | 用户端 / 管理端 | http://localhost:5175 | http://frontend.aianytra.orb.local | | API 文档 | http://localhost:8006/docs | http://api.aianytra.orb.local/docs | > 前端容器内的 nginx 已把 `/api` 反代到 api 服务,浏览器只需访问前端端口。 **默认账号** - 管理员:`root`(密码由 `.env` 的 `AIANYTRA_ADMIN_PASSWORD` 指定,首次启动必须设置) - 普通用户:注册即可 **关键配置(`.env`)** | 变量 | 说明 | |------|------| | `AIANYTRA_LLM_ENABLED` | `1` 开启 LLM 整理 | | `AIANYTRA_JWT_SECRET` | JWT 签名密钥(**值不可变**;上线前更换为强随机值) | | `AIANYTRA_MAIN_MODEL` / `_ASR_MODEL` / `_VISION_MODEL` | 能力默认模型(可在管理端覆盖) | | `AIANYTRA_ADMIN_PASSWORD` | 默认管理员密码(首次创建 root 时生效) | ## 需要人工完成的配置 1. **模型供应商**(管理端「模型配置」): - 添加供应商:name + base_url + API Key(如 mimo `https://api.xiaomimimo.com`) - 测试连通 → 绑定各能力(主模型 / ASR / 视觉)到具体模型 2. **飞书连接**(To C 用户授权): - 用户端「来源」页 → 飞书授权(OAuth 网页授权,走 `.env` 的 FEISHU_APP_ID / APP_SECRET / REDIRECT_URI,每用户独立 token) - 管理端「飞书连接」保留 lark-cli 单账号兜底(`/admin/feishu`) - ⚠️ lark-cli 认证走 keychain,宿主机与容器的认证互相独立;认证数据保存在容器卷 `data/lark-cli/`(重建容器不丢) ## 技术要点(踩坑记录) - lark-cli `--content @file` 必须是相对路径 → 用 `--content -` stdin 传内容 - **api 容器重建后 nginx 反代会 502**(nginx 缓存了 api 旧 IP)→ `docker restart aianytra-frontend` 即可 - macOS 运行抖音引擎 aiohttp 需 `SSL_CERT_FILE` 指向 certifi - 抖音引擎:游客态调 web API 被反爬,需登录 Cookie(`engines/douyin-downloader/config.yml`) - sqlite 跨连接查询前需显式 `conn.commit()` - lark-cli 正确 npm 包名是 `@larksuite/cli`(不是 `lark-cli`,后者是错误同名包) - 抖音引擎为独立仓库(`jiji262/douyin-downloader`,desktop-v0.8.7),位于 `engines/douyin-downloader/`,**未纳入本项目 git**(将来可转 submodule) - 容器内 lark-cli 数据目录用可写持久卷 `./data/lark-cli:/root/.lark-cli` ## License [MIT](./LICENSE) © 2026 ailexc