.anchored-summary.md 3.0 KB

CFC 膳食管理模块部署 — Session Summary

Goal

  • 部署 LangGraph meal 路由到 ai.etotem.com.cn,修复 404 错误
  • 验证食材识别和菜单生成 API 正常工作

Progress

Done

  • ✅ 修复 LangGraph 服务缺少 meal 路由的问题
  • ✅ 将 meal.py 和 models/meal.py 复制到服务器容器
  • ✅ 修改 main.py 添加 app.include_router(meal.router)
  • ✅ 重启容器并验证端点正常
  • ✅ 测试食材识别 API:成功识别番茄、鸡蛋、洋葱等食材
  • ✅ 测试菜单生成 API:成功生成一日三餐菜单

Key Files Updated

  • /app/cfc/cfc-langgraph/app/api/meal.py - 食材识别和菜单生成端点
  • /app/cfc/cfc-langgraph/app/models/meal.py - Pydantic 模型定义
  • /app/cfc/cfc-langgraph/app/main.py - 添加 meal 路由注册

API Endpoints

Method Path 说明
POST /api/v1/food/recognize 食材识别 - 上传图片 URL,返回识别食材列表
POST /api/v1/menu/generate 菜单生成 - 根据食材生成一日三餐菜单

Test Results

食材识别 - 成功识别图片中的食材:

{
  "foods": [
    {"name": "西红柿", "confidence": 0.96, "category": "蔬菜"},
    {"name": "鸡蛋", "confidence": 0.93, "category": "蛋奶"},
    {"name": "洋葱", "confidence": 0.88, "category": "蔬菜"},
    {"name": "青椒", "confidence": 0.85, "category": "蔬菜"},
    {"name": "大蒜", "confidence": 0.79, "category": "调味"},
    {"name": "食用油", "confidence": 0.65, "category": "调味"}
  ]
}

菜单生成 - 成功生成一日三餐菜单(含营养信息)

Deployment Commands

# 复制文件到容器
scp meal.py root@111.228.6.214:/tmp/
scp models_meal.py root@111.228.6.214:/tmp/
sudo docker cp /tmp/meal.py cfc-langgraph-langgraph-svc-1:/app/app/api/meal.py
sudo docker cp /tmp/models_meal.py cfc-langgraph-langgraph-svc-1:/app/app/models/meal.py

# 修改 main.py 添加路由
sudo docker exec cfc-langgraph-langgraph-svc-1 sed -i 's/from app.api import health, recommend, chat, analyze, tongue, adapter/from app.api import health, recommend, chat, analyze, tongue, adapter, meal/' /app/app/main.py
sudo docker exec cfc-langgraph-langgraph-svc-1 sed -i '/app.include_router(report_parse.router)/a app.include_router(meal.router)' /app/app/main.py

# 重启服务
sudo docker restart cfc-langgraph-langgraph-svc-1

Current Status

  • ✅ LangGraph 服务运行正常 (端口 9000)
  • ✅ 后端服务运行正常 (端口 9082)
  • ✅ 前端代码已包含膳食管理模块 (7 个新页面)
  • ✅ API 端点可正常访问

Next Steps

  • 前端测试膳食管理模块完整流程
  • 验证后端 AiGateway 正确调用 LangGraph 服务

Key Decisions

  • 直接在服务器上修改容器内的文件(因为 Docker 镜像重建需要修改 Dockerfile)
  • meal.py 使用 /api/v1 前缀与其他路由保持一致

Critical Context

  • 后端配置 python.base-url: https://ai.etotem.com.cn
  • LangGraph 服务通过 Docker 容器运行
  • 前端通过 config.js 自动适配环境(develop/trial/release)