Skip to content

Conversation

@dontpanic1step
Copy link

  1. 新增 ai 模块,包含 ai.service.ts(封装 LLM 调用、重试和降级逻辑)和 ai.controller.ts(提供生成问卷的 HTTP 接口)。
  2. 把text-to-schema.js重构为textToSchema.ts,后端统一使用TypeScript,完成 AI 原始文本的清洗、换行和 HTML 标签处理,并解析成统一的问卷 JSON Schema。
  3. 重构 moduleList.ts 为 ES Module 导出格式,确保题型 key 能正确映射到后端专用的 server-widgets 目录下各题型 meta 配置。
  4. 分离前端 widgets 与后端 server-widgets,避免编译时路径冲突;在 Nest.js 配置里指定只加载 server-widgets。
  5. 重构 componentLoader.ts 和 questionLoader.ts,分别负责动态加载题型渲染元信息与根据 Schema 组装题型配置和选项。
  6. 在 ai.service.ts 中补充对空内容或格式异常的预检查,抛出可重试异常并在最后降级为静态模板问卷。
  7. 修改 TextToSchema 清洗逻辑:统一处理所有换行符类型、去重空行、支持常见 HTML 换行标签。
  8. 添加单元测试:ai.controller.spec.ts 覆盖参数校验、正常返回与服务异常;ai.service.spec.ts 模拟正常响应和网络抛错,验证解析和重试行为。

@dontpanic1step
Copy link
Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants