小鱼开发
c6a40331d4
chore(release): bump version to 1.9.1 and apply pending changes
2026-06-16 15:17:30 +08:00
小鱼开发
da03669a99
chore: 更新提示词素材库并修正评论区用语
2026-06-08 17:12:56 +08:00
小鱼开发
c98509c07a
fix: 提示词中引导评论/私信领取资料的用语从'扣/抠'改为'回复'
...
避免'扣避坑'/'抠避坑'等表达被平台判定为敏感词。
2026-06-08 10:09:45 +08:00
小鱼开发
3e94013d2b
feat: MP4音频提取、素材6.2导入、新prompt
...
- Tauri FFmpeg sidecar 支持从 MP4 提取音频(MP4→MP3)
- VoiceMaterialLibrary 支持 .mp4 上传自动提取音频后走声音复刻
- 前端路径安全:writeFile/remove 改用 BaseDirectory.AppLocalData + 相对路径
- 新增 prompt:新房装修流程、装备材料选择
- 新增素材6.2:48个分类 + 67个视频素材入库脚本
- MP4 时长限制修正:10秒~2分钟(原5分钟)
2026-06-03 15:04:06 +08:00
小鱼开发
44bda3e67f
style: 脚本卡片样式美化 — 左对齐、加粗标题、选中态左侧竖条
2026-06-01 16:04:58 +08:00
小鱼开发
534ffd08b2
refactor: 脚本提示词体系重构 — 子类从目录改为单个文件
...
- 删除 system/bk/ 下所有旧提示词,平铺替换为 23 个新文件
- 文件名格式统一为: 文案——描述.txt
- 后端: _meta.json 扁平化,loader.py 新增 list_prompt_files() + load_prompt_file()
- 后端: API 从 subcategory 改为 filename,按指定文件读取
- 后端: categories 接口返回文件列表(label/desc/filename)供前端展示
- 前端: ScriptCreation 分类选择改为卡片网格,展示文案+描述
- 前端: 清理 subcategoryCode,统一改为 filename
- 前端: 字幕字号调整为 64/96/80px
2026-06-01 14:05:43 +08:00
小鱼开发
aa818b75a8
refactor: 脚本提示词体系重构 — 子类从目录改为单个文件
...
- 删除 system/bk/ 下所有旧提示词,平铺替换为 23 个新文件
- 文件名格式统一为: 文案——描述.txt
- 后端: _meta.json 扁平化,loader.py 新增 list_prompt_files() + load_prompt_file()
- 后端: API 从 subcategory 改为 filename,按指定文件读取
- 后端: categories 接口返回文件列表(label/desc/filename)供前端展示
- 前端: ScriptCreation 分类选择改为卡片网格,展示文案+描述
- 前端: 清理 subcategoryCode,统一改为 filename
- 前端: 字幕字号调整为 64/96/80px
2026-06-01 13:44:59 +08:00
小鱼开发
00f0088c2a
fix(prompts): 将'评论区扣/抠'改为'评论区回复',避免台词中出现'扣'字
2026-05-27 14:20:27 +08:00
小鱼开发
4a295e6e0d
fix(vidu): 回调签名头大小写不敏感匹配
...
dict(request.headers) 的 key 为小写(x-hmac-signature),代码用大写(X-HMAC-SIGNATURE)获取导致全为None。建立小写查找表统一处理。
2026-05-27 09:40:45 +08:00
小鱼开发
63e0ffeaea
fix(vidu): 回调签名使用 APP_BASE_URL 构建 URL,添加调试日志
...
- vidu_callback 改用 APP_BASE_URL 构建 callback_url,避免 Nginx 代理导致 scheme 不一致
- verify_signature 增加详细调试日志,打印 signing_string 和签名对比
2026-05-27 09:34:59 +08:00
小鱼开发
d18e705a99
feat(image): 抠图增加人物白色描边(need_contour + contour_color + contour_size + need_crop_background)
...
- provider: 增加 need_contour/contour_color/contour_size/need_crop_background 参数
- service: 默认 scene=human,human/product 场景自动启用白色描边 + 裁剪背景
- adapter: 透传新参数到 provider
- API: scene 默认值改为 human
- 前端: removeBackground 默认 scene 改为 human
2026-05-23 10:04:34 +08:00
小鱼开发
222c468681
fix(mediakit): 兼容火山引擎抠图API的两种响应格式(code/data 和 success/result)
2026-05-23 09:44:27 +08:00
小鱼开发
430aea4aa8
fix(image): 增强抠图失败时的诊断日志,记录原始响应内容
2026-05-23 09:39:38 +08:00
小鱼开发
1a0679049e
refactor(profile): restore recent transactions table
...
Replace menu list (使用明细 + 设置) with recent transactions table:
- Add back recentTx state and loading state
- Fetch last 5 transactions in loadData
- Display table with type/amount/description/time columns
- Add '查看全部' link to usage-detail page
- Remove unused icon components (FileTextIcon, SettingsIcon, ChevronRightIcon)
2026-05-22 15:02:11 +08:00
小鱼开发
1d7a45618a
temp: 启用 Windows DevTools + 清理无用文件 + 修复积分计算
2026-05-20 10:55:43 +08:00
小鱼开发
9ddcb2347d
ci: 构建流程优化 - test环境固定/平台选择/版本号自动更新/缓存
...
- VITE_API_BASE_URL 固定为 dev.tapi.meijiaka.cn(test环境)
- 添加 platform 选择(all/macos/windows),支持单独构建
- 添加版本号自动更新(tauri.conf.json + Cargo.toml)
- 添加 Rust + Node 构建缓存,节省CI额度
- 修复 ViduAdapter parse_callback 运算符优先级bug
- 修复 ViduProvider tts_sync 日志前缀误写
- VoiceSynthesis 空状态UI优化
2026-05-19 15:17:36 +08:00
小鱼开发
ddec4a607b
fix(prompt): 修复 3 个提示词示例中使用二级分类名的错误 scene
...
将示例 JSON 中的 scene 从二级分类名改为正确的三级分类名:
- 水电改造5.9.txt: 瓷砖铺贴->墙砖定位-瓷砖铺贴
- 常见问题25选8-5.9.txt: 瓷砖铺贴->墙砖定位-瓷砖铺贴
- 油工进场5.7.txt: 墙面基层->墙固施工-墙面基层
2026-05-17 23:18:41 +08:00
小鱼开发
2d41b58021
fix(prompt): 修复 6 个提示词示例中的截断 scene
...
示例 JSON 中的 scene 值漏写了 '-施工翻车镜' 后缀,
导致 AI 可能模仿生成截断的 scene 名称,匹配失败。
受影响的文件:
- 半包谈价格5.8.txt
- 装修合同5.8.txt
- 装修监工5.8-2.txt
- 装修监工5.8.txt
- 防水5.7.txt
- 瓦工进场交代5.8.txt
2026-05-17 22:23:43 +08:00
小鱼开发
85f7e5c934
chore(prompt): 强化 24 个提示词的 scene 格式约束
...
要求 AI 输出 scene 时必须从内置素材库标题中完整原样复制,
包括连字符-前后的顺序,不得调换、缩写或改写。
从源头减少 scene 名称与数据库分类名不匹配的问题。
2026-05-17 21:37:49 +08:00
小鱼开发
f8fd241d58
chore(prompts): 移除水电材料(sc)分类
2026-05-16 09:22:12 +08:00
小鱼开发
f20de12fa2
feat: macOS Big Sur 风格图标 + Docker 日志轮转 + 后台运维 SQL
...
图标:
- 添加白色圆角矩形底板,占画布 80%(四周留透明呼吸边距)
- M 内容占底板 65%,裁剪透明边距后居中
- 底板微妙渐变(#FAFAFA → #F0F0F0)
- 清理原始图标幽灵半透明像素
- 全平台图标重新生成(PNG / ICNS / ICO / Android / iOS)
运维:
- docker-compose.prod.yml & test.yml 添加 json-file 日志轮转
max-size: 100m, max-file: 5
- scripts/admin-ops.sql: 新增用户、积分赠送、积分补偿、批量补偿
- scripts/generate-rounded-icon.py: 可复用的图标生成脚本
其他:
- prompts 文件重命名为语义化文件名
- .gitignore 移除 binaries/ 忽略(FFmpeg sidecar 需提交)
2026-05-15 11:33:51 +08:00
小鱼开发
86486fa4d5
chore: 添加装修避坑脚本prompt(sq/3、wt/2)
2026-05-13 13:51:16 +08:00
小鱼开发
353890df29
chore: 更新 prompt 配置与分类
2026-05-12 17:36:26 +08:00
小鱼开发
95e55293c6
security: 全面生产安全加固与部署修复
...
后端安全:
- DEBUG 默认 True → False
- 彻底移除 AUTH_BYPASS 认证绕过
- 验证码不再明文打印到日志
- 上传接口增加大小限制(500MB/20MB/100MB)与魔数校验
- python-jose → PyJWT, 更新 requirements.lock/uv.lock
- Bandit 恢复关键规则(B104/B301/B305/B314/B324/B603/B607)
- 修复 5 处 try_except_pass, 15 处加 nosec 注释
- 启用 Bandit pre-commit 钩子
前端安全:
- 配置完整 CSP 策略
- 收紧 Capabilities(fs:allow-read-file → $RESOURCE/**)
- 移除硬编码 devToken
- 清理前端 TODO(美家卡智影命名统一)
部署修复:
- docker-compose.prod 增加 alembic 迁移步骤
- api + scheduler 增加 Redis 心跳健康检查
- Nginx 添加安全响应头
- Nginx client_max_body_size 100M → 500M
- .env.example 补充 UPLOAD_MAX_* 配置与安全注释
其他:
- /voice/upload 合并到 /upload/audio
- Rust 上传增加文件大小检查
- 清理 Rust 19 处 println! + 前端 21 处 console.info
- 修复 VideoCompose.tsx toast 未导入(已有bug)
2026-05-10 23:31:34 +08:00
小鱼开发
04e467e433
feat(points): 积分系统收尾 + 充值弹窗改造 + 命名统一
...
后端:
- 微信回调 db.commit 失败仍返回 SUCCESS,避免无限重试
- recharge() 加 order_id 幂等保护,防重复充值
- time_expire 使用北京时间(UTC+8),修复时区 bug
- 充值档位后端配置化(points-config.yaml + /recharge-options API)
- 代码审查 20 项修复(认证加固、扣费顺序、错误响应、状态同步等)
前端:
- 充值弹窗:自动轮询 + 【我已支付】手动兜底
- 二维码倒计时显示,过期后遮罩 + 刷新按钮
- 充值档位从后端动态加载
- 去掉 select/qrcode 弹窗标题,金额红色突出显示
- 全项目命名统一(视频生成/压制成片/配音合成/声音复刻等)
- Modal 关闭按钮独立于 title 显示
2026-05-09 21:29:35 +08:00
小鱼开发
566c94eb77
chore: 调整系统提示词文件命名
2026-05-08 21:16:55 +08:00
小鱼开发
092051210e
chore: 更新系统提示词文件
2026-05-08 21:15:02 +08:00
小鱼开发
b597d715c8
fix: 认证流程修复 + alembic 迁移补全 + 前端僵尸代码清理
...
后端:
- 修复 get_current_user 未校验 is_active,被封禁用户仍可用旧 Token
- auth.py 捕获 ValueError 转 HTTPException(验证码错误、账号被封、Token 无效等不再返回 500)
- 修正 SMS 每日上限注释(3次 → 10次)
- 修复迁移脚本外键引用错误:users.id → mjk_users.id
- 新建积分系统 4 张表的迁移(mjk_user_points/batches/transactions/recharge_orders)
- pyproject.toml 补充 alembic + psycopg2-binary 依赖
- ruff 格式修复(import 排序等)
前端:
- 修复 doRefreshToken 成功后不持久化新 Token 的严重 bug
- 修复应用重启后 SSE 不自动重连(收不到踢人通知)
- 修复 App.tsx handleLogout 未 await
- client.ts 统一从 utils/env 导入 isTauri,默认 base URL 兜底 localhost:8000
- 清理 ~20 个未使用的 hooks/utils/api 模块/组件导出
- 修复所有 ESLint 警告(206 → 0)和 TSC 错误
- 测试通过(5/5)
其他:
- 更新 requirements.lock 和 uv.lock
2026-05-08 11:10:48 +08:00
小鱼开发
755ecc9abe
refactor(config): 统一配置体系,禁用热重载,清理兼容层
...
- 删除 .gitlab-ci.yml
- 删除 runtime_config.py 兼容层
- Pydantic Settings + YAML 三层配置分离
- 统一 PlatformConfigLoader 加载器
- docker-compose 移除重复 environment 覆盖
- volcengine base_url 从 YAML 读取
- 微信支付/SMS 空值启动时拦截
- 日志仅输出控制台,不写文件
- 更新 model_router 注释
2026-05-07 18:42:47 +08:00
小鱼开发
e7dcb017c6
chore: update prompt files
2026-05-06 21:33:11 +08:00
小鱼开发
c79b2323f4
refactor: 删除脚本生成未使用的 duration/style/scriptType/scriptDuration 参数
...
前端:
- 删除 scriptType 字段及相关 store action、持久化、API 类型
- 删除 scriptDuration 字段及相关 store action、持久化、加载逻辑
- ScriptCreation 不再传 duration/style 参数给后端
后端:
- ScriptParams 删除 duration/style 字段
- ScriptHandler 删除 duration/style 参数读取和传递
- ScriptService.generate_script 签名删除 duration/script_type
- load_script_user_prompt 删除 duration 参数
影响:无,duration/style 在 prompt 模板中未被实际使用
2026-05-06 13:30:40 +08:00
小鱼开发
a0562a21e3
fix: 补全 Method.CLONE_VOICE 常量
2026-05-06 11:14:20 +08:00
小鱼开发
3ed37b6c27
fix(adapter): Vidu 状态映射补全 created/queueing,错误字段改为 err_code
...
- 文档中 state 包含 created/queueing,原映射表缺失导致 normalize_state 默认返回 failed
- parse_callback 错误信息从 message 改为 err_code(与文档一致)
2026-05-05 23:20:04 +08:00
小鱼开发
5aafabf88f
feat(log): Vidu 对口型提交请求增加完整参数日志
...
- VideoHandler 提交前记录 callback_url 和 video_url
- ViduProvider.lip_sync() 发送前记录完整请求体 body
- 部署后可从日志直接确认 callback_url 是否传给 Vidu API
2026-05-05 23:05:56 +08:00
小鱼开发
26f9096e2e
fix(provider): ViduProvider 外部 client 补 Authorization header
...
- main.py / scheduler/main.py 均使用外部 httpx.AsyncClient 注入 ViduProvider
- 外部 client 创建时未带 Authorization header,导致所有 Vidu API 请求 401
- 在 ViduProvider.__init__ 中统一补 header,无论自建还是外部 client
2026-05-05 22:08:38 +08:00
小鱼开发
bd6681c454
fix(adapter): VolcengineArkAdapter 转发 reasoning_effort,移除 temperature 传参
...
- Adapter 之前漏传 reasoning_effort,platform-config.yaml 里配置的
minimal 未生效,可能导致脚本生成走完整推理链变慢
- 豆包 Seed 2.0 Pro 强制固定 temperature=1,传参无效,全部移除
- 移除 script_service.generate_script/polish_content 和 script.py
generate_title 中的 temperature 硬编码
2026-05-05 21:52:09 +08:00
小鱼开发
43f13cf394
fix(provider): VolcengineProvider 自动从 Settings 读取 API Key / Base URL
...
- VolcengineProvider 无参调用时 api_key 为 None,导致 scheduler/main.py 中
volcengine_ark adapter 注册失败,脚本生成报'未注册的平台: volcengine_ark'
- 参照 ViduProvider 做法,__init__ 中自动兜底读取 get_settings()
- 补充 Settings.VOLCENGINE_BASE_URL 字段(.env 中已有但 Pydantic 未定义)
- 顺手清理 volcengine_provider.py 中的 unused import / variable
2026-05-05 21:42:39 +08:00
小鱼开发
12625a830d
fix: model_router.py 缺失 VolcengineProvider 导入
...
_load_from_config() 中直接使用了 VolcengineProvider 类方法,
但文件顶部未导入,导致 NameError 使 initialize() 失败。
_model_router 处于半成品状态,后续调用返回无 gateway 的实例,
最终触发 'PlatformGateway 未初始化' 错误。
2026-05-05 21:11:29 +08:00
小鱼开发
4076f316f8
fix: ModelRouter 初始化失败安全机制
...
- get_model_router() 增加 _initialized 检查,之前初始化失败时自动重试
- 防止 lifespan 中 initialize() 抛异常后,_model_router 处于半成品状态
2026-05-05 21:08:58 +08:00
小鱼开发
c38e67ce08
fix: ModelHealth 导入路径 + Pydantic protected_namespaces 警告
...
- model_router.py: ModelHealth 从 adapters.base 移至 providers.base
- script.py: TestModelRequest 添加 ConfigDict(protected_namespaces=()) 消除 Pydantic 警告
2026-05-05 21:00:35 +08:00
小鱼开发
30536276ba
refactor(scheduler): 统一异步任务调度架构
...
核心变更:
- 统一第三方接口架构:所有服务走 PlatformGateway(call_sync/submit_task/query_task/handle_webhook)
- 视频生成(Vidu 对口型)纳入 Async Engine,与 script/subtitle/tts 统一为 POST /tasks/{task_type} 模式
- 新增 VideoHandler、TTSHandler,完善 ScriptHandler/SubtitleHandler
- PlatformGateway 生成 internal_task_id,建立 Redis 双向映射,callback 场景传入 Async Engine task_id 保证映射一致
- SlotManager 新增 acquire_ctx 上下文管理器,所有 Handler 统一使用
- ViduAdapter 状态映射归一化(normalize_state/denormalize_state)
- 移除 ViduService Semaphore 和 tenacity 重试,并发控制完全交予 SlotManager
- nonce 防重放下沉到 CallbackCapable 协议
- Service 层错误统一为 PlatformError,路由层错误信息脱敏
- 废弃 /voice/lip-sync,清理 vidu.py 遗留路由
Bug 修复:
- VideoHandler 轮询阶段后添加 continue,防止已提交任务重复创建
- voice.py synthesize_to_file 变量名冲突(request vs request_body)
- PlatformGateway.submit_task 空 data 防护
- ScriptHandler 动态导入 asyncio 改为模块级导入
- SubtitleHandler 完成时补充 progress=100
文档:
- 更新 AGENTS.md 核心功能、运行时架构、异步调度描述
2026-05-05 20:53:18 +08:00
小鱼开发
6c1aef276b
refactor: 删除所有流式生成代码
...
项目已明确不做 SSE/流式输出,清理后端所有流式相关代码:
- 删除 Provider 层 generate_stream、generate_stream_with_progress
- 删除 ModelRouter 层 _try_generate_stream、generate_stream_with_progress
- 删除 LLMGateway chat_stream
- 删除 Adapter 层 CHAT_STREAM 常量/分支
- 删除 platform-config.yaml chat_stream 方法配置
- 同步清理 base.py 抽象接口和未使用的导入
2026-05-04 20:27:19 +08:00
小鱼开发
af9e8f5d9b
refactor: reasoning_effort 从 extra_body 改为直接传递
...
与官方 curl 示例对齐:reasoning_effort 作为顶层参数直接传递,
不再通过 extra_body 透传。统一三个方法(generate、generate_stream、
generate_stream_with_progress)的传参方式。
2026-05-04 20:14:20 +08:00
小鱼开发
0e5bef64b8
fix: 移除 response_format=json_object,改为依赖 prompt 约束
...
回退上一条推断式修复(模型名匹配没有官方依据)。
改为在 script_service 调用层直接移除该参数:
- system prompt 已明确要求'只输出纯 JSON'
- safe_parse_ai_json_response 已做容错解析和 markdown 清洗
- 不依赖特定模型对 response_format 的支持
2026-05-04 20:05:38 +08:00
小鱼开发
f10d78f63e
fix: 豆包模型不支持 response_format=json_object,添加兼容性判断
...
doubao-seed-2-0-pro 等豆包系列模型不支持 OpenAI 风格的
response_format.type=json_object 参数,会导致 400 错误。
改为仅对非豆包模型(如 DeepSeek、GPT)传递该参数。
2026-05-04 20:03:38 +08:00
小鱼开发
431c54c258
refactor: 前端脚本生成改为异步任务轮询,精简LLM模型,删除图片生成代码
...
- 前端:ScriptCreation SSE 流式改为 createTask + pollTask 轮询
- 后端:LLM 仅保留 doubao-seed-2-0-pro,删除降级链及相关模型
- 后端:删除所有图片生成代码(ImageParams/ImageTaskParams/generate_image)
- 更新 platform-config.yaml、model_router、volcengine_provider、tasks 等
2026-05-04 19:58:32 +08:00
小鱼开发
52ba99e11d
refactor: Scheduler 层统一命名 job → task
2026-05-04 19:18:22 +08:00
小鱼开发
7a858caa01
chore: 删除 MockProvider 及相关 mock 代码
2026-05-04 18:58:40 +08:00
小鱼开发
e58159fc42
refactor: 第三方平台架构改造(Adapter Protocol + Gateway)
...
Phase 1: 异常体系统一
- 新增 PlatformError / PlatformErrorType 标准定义
- 改造所有 Provider 异常抛出为 PlatformError
- 注册全局 PlatformError exception handler
Phase 2: Adapter Protocol
- 新增 app/ai/adapters/base.py(PlatformAdapter + SyncCapable + TaskCapable + CallbackCapable)
- 新增 app/ai/adapters/constants.py(Method 常量)
- 新增 PlatformConfigLoader(config/platform-config.yaml)
Phase 3: HTTP Client 统一
- ViduProvider 从 aiohttp 迁移到 httpx(注入方式)
- VolcengineCaptionService 改为注入 http_client
- lifespan 统一管理所有 Client 创建和关闭
Phase 4: Gateway 骨架 + Adapter 实现
- 新增 ViduAdapter / VolcengineArkAdapter / VolcengineCaptionAdapter
- 新增 PlatformGateway(call_sync / submit_task / query_task / handle_webhook)
- 新增 LLMGateway(带 Fallback 降级链)
- lifespan 注册所有 Adapter 和 Gateway
Phase 6: 清理与验证
- 从 Settings 移除 VIDU_BASE_URL / VOLCENGINE_BASE_URL
- Provider 改为从 PlatformConfigLoader 读取 base_url
- 清理 volcengine_caption_service 全局单例
- config_loader 默认路径改为 platform-config.yaml
- Scheduler 注入共享 HTTP client
- vidu.py 回调路由使用 Adapter 验签和解析
- ruff 全量通过,应用启动测试通过
2026-05-04 16:07:16 +08:00
小鱼开发
e262134148
refactor: 移除 KlingAI 和 MiniMax 相关代码
...
删除内容:
- KlingAI Provider、MiniMax Provider
- Kling 视频/图片/TTS/语音克隆/形象克隆 Service 和 Scheduler Handler
- 已废弃的 TTSService、VoiceCloneService
- config 中 KLINGAI_*/MINIMAX_* 配置项
- ai_models.yaml 中 klingai 平台和模型配置
- docker-compose 中相关环境变量
- .env.example 中相关配置示例
- deploy-test.sh 中相关检查
- Makefile 中 klingai 语义检查排除规则
- KlingTaskStatus 枚举
修改内容:
- model_router.py 移除 KlingAI 平台分支
- voice.py 重写,修复批量合成/文件保存中 service 未定义的 Bug
- vidu_service.py 移除 MiniMax 相关注释
- script_handler.py 更新注释
2026-05-02 23:16:14 +08:00