2026-03-29 工作项目记录
kitchen-ai-demo 项目升级 ⭐ 今日重点
项目背景
厨房改造 AI 方案助手,原为单轮问答系统,升级为多轮对话 + 图片分析 + 方案生成系统。
服务架构
kitchen-ai-demo (Python FastAPI, 8000)
↓ 调用 /api/generate-image
content-center (Node.js Express, 3001)
↓ 根据配置选择即梦
jimeng-free-api-all (Node.js, 8001)集成方案决策
| 方案 | 说明 | 优缺点 |
|---|---|---|
| 方案 A | HTTP API 直接调用 | ✅ 简单直接,改动最小 |
| 方案 B | 图片服务独立化 | 解耦彻底,但需额外维护 |
| 方案 C | Python 直接调用 GRS | 配置重复,能力分散 |
选择方案 A - 在 content-center 加专用 API,kitchen-ai-demo 直接调用。
图片生成服务选择
| 服务 | 优点 | 缺点 |
|---|---|---|
| GRS | 已集成 | 中文效果差,易被拦截 |
| 即梦 | 中文友好,免费 | 需要部署 jimeng-free-api-all |
选择即梦作为主要图片生成服务
Phase 1 完成 ✅
| 功能 | 说明 |
|---|---|
| 多轮对话系统 | 支持上下文记忆,会话管理 |
| 图片上传功能 | 用户可上传自家厨房照片 |
| 图片理解 | qwen-vl-plus 分析厨房布局、设施、问题 |
| 方案生成 | 基于用户户型和 RAG 知识库 |
| 状态机管理 | IDLE → COLLECTING_INFO → CONFIRMING_PLAN → GENERATE_IMAGE |
新增 API
| 接口 | 方法 | 说明 |
|---|---|---|
/api/chat | POST | 多轮对话主接口 |
/api/upload-image | POST | 上传厨房图片 |
/api/sessions/new | POST | 创建新会话 |
/api/sessions/{id} | GET | 获取会话状态 |
/api/sessions/{id} | DELETE | 删除会话 |
/api/generate-image | POST | 生成效果图 |
文件变更
kitchen-ai-demo:
demo_api.py- 重构,新增多轮对话、图片分析、会话管理demo.html- 重构,改为聊天式交互界面image_client.py- 新增,图片生成客户端docs/decisions/- 新增,设计决策记录目录
content-center:
backend/src/routes/image.ts- 新增,图片生成 API 路由backend/src/server.ts- 注册新路由
jimeng-free-api-all:
configs/dev/service.yml- 端口从 8000 改为 8001package.json- dev 脚本端口从 8000 改为 8001
Git 提交
- 分支:
feature/content-center-integration 5e4c406feat: 集成 content-center 图片生成能力c93535efeat: 升级为多轮对话 + 图片分析 + 局部重绘891af0fdocs: 添加设计决策记录
Phase 2 待做
- [ ] 局部重绘精度优化(目前是整图重绘)
- [ ] 考虑 Stable Diffusion Inpaint 方案
- [ ] 扩充 RAG 知识库数据
- [ ] 添加流式输出改善用户体验
晚间优化工作 (20:30-22:47)
前端交互优化
问题: 上传图片后直接触发对话,用户无法补充描述
解决方案:
- 图片上传后显示预览,不自动发送
- 用户可在输入框补充文字
- 点击发送按钮一起发送(图片 + 文字)
文件变更:
demo.html- 重构输入区域,添加图片预览行
响应速度优化
问题: 每次对话需 20-30 秒,用户体验差
优化措施:
| 优化项 | 方法 | 节省时间 |
|---|---|---|
| 意图识别 | 规则匹配代替 LLM | 2-3秒 |
| RAG 查询 | 跳过简单对话 + local 模式 | 5-10秒 |
| 简单问候 | 直接返回固定回复 | 8-10秒 |
| 上下文缩减 | 限制历史消息和 RAG 长度 | 1-2秒 |
优化结果:
- 简单问候:~20秒 → ~11秒
- 带 RAG 查询:~25秒 → ~15秒
代码变更:
demo_api.py- 新增quick_intent_detect()和extract_entities()函数- 简单问候直接返回固定回复,不调用 LLM
图片生成问题修复
问题 1: HTTP 413 请求体太大
- 用户图片 1.4MB,base64 编码后超过限制
解决方案:
- 新增
compress_image()函数,压缩图片到 400KB 以下 - 修改 content-center 请求限制到 50MB
问题 2: 即梦 sessionId 过期
- 服务运行超过 3 小时,sessionId 失效
解决方案:
- 更新 sessionId:
a5bfc31b97abfb8ef3b7031a8b8d3250 - 重启即梦服务
最终测试: ✅ 图片生成成功
- taskId:
jimeng-1774795633427 - imageUrl:
https://p26-dreamina-sign.byteimg.com/...
近期工作回顾
- AI客服项目:完成 Excel 绩效数据校验工具开发,输出不一致结果高亮标注
- AI营销项目:完成云服务选型对比(火山引擎、阿里云、腾讯云),域名服务商对比分析
- Dify 工作流:解决异步处理问题,提供三种架构方案供选择
记录时间:2026-03-29 22:47