cat-shark 2b0bd87d79 feat(lpt-ai):新增 /ai/compare-recall — AI 语义化回忆对比
- prompts.ts:新增 compareRecallPrompt(),输出结构化 JSON
  (matchedTree/MISSED|标注 + extraNodes + recallRatio + evaluation)
- routes/ai.ts:新增 POST /ai/compare-recall,temperature 0.2
  自动清理 LLM 可能包裹的 ```json ``` 标记
- 日志记录完整请求/响应,管理员面板可回溯
2026-07-04 15:47:03 +08:00

lpt-ai

LPT 学习进度跟踪系统的独立 AI 服务。将 LLM 相关能力从 Java 主服务中剥离,便于独立迭代、增加安全层与沙箱。

能力

端点 方法 说明
/health GET 健康检查,返回 LLM 可用状态
/ai/aggregate-report POST 将学习残片聚合为学习报告
/ai/generate-mind-map POST 从报告/残片生成思维导图大纲

快速开始

cp .env.example .env
# 编辑 .env,填入 LLM_API_KEY
npm install
npm run dev

未配置 LLM_API_KEY 时服务可启动,但 AI 端点返回 503,由调用方(Java 后端)降级到内置规则。

请求示例

curl -X POST http://localhost:5199/ai/aggregate-report \
  -H "Content-Type: application/json" \
  -d '{
    "taskName": "Java 并发编程",
    "expectation": "理解线程池核心参数",
    "fragments": [
      {"content": "corePoolSize 是核心线程数,即使空闲也不回收"},
      {"content": "workQueue 满了之后才会创建超过 core 的线程"}
    ]
  }'

架构位置

LPT 前端 (Vue) ──► LPT 后端 (Java/Spring Boot) ──► lpt-ai (TS/Fastify) ──► SiliconFlow API

Java 后端是唯一调用方;本服务不直接暴露给前端,不做鉴权(部署在内网)。

后续规划

  • 输入内容安全过滤(Prompt 注入防护)
  • 输出审核
  • 多模型路由(按任务复杂度选择模型)
  • 用量与成本监控
  • SSE 流式输出
S
Description
No description provided
Readme 192 KiB
Languages
TypeScript 98.7%
Dockerfile 1.3%