OL-LearnPlatform-Frontend/docs/ai-model-api-debug.md
小张 5455490811 feat: 集成AI知识库管理系统
- 新增AI知识库管理功能模块
- 实现知识库的增删改查功能
- 实现文档管理(文本/文件/链接)
- 实现向量化功能和测试
- 支持卡片式布局展示
- 完整的响应式设计
- 修复所有TypeScript类型错误
- 添加依赖:marked@^16.4.0, less@^4.2.2
- 打包测试通过

主要文件:
- src/views/teacher/ai-knowledge-naive-ui/ - AI知识库管理模块
- docs/ - 相关API文档
- package.json - 新增依赖配置
2025-10-14 17:33:25 +08:00

3.6 KiB
Raw Blame History

AI模型字典API调试指南

问题描述

在调用AI模型字典API时遇到错误

Sign签名校验失败时间戳为空

已实施的修复措施

1. 添加时间戳参数到URL

// 修改前
return request.get('/sys/dict/getDictItems/airag_model%20where%20model_type%20=%20\'LLM\',name,id')

// 修改后
const timestamp = Date.now()
return request.get(`/sys/dict/getDictItems/airag_model%20where%20model_type%20=%20'LLM',name,id?_t=${timestamp}`)

2. 增强请求头时间戳

// 添加多种时间戳格式
const timestamp = Date.now().toString()
config.headers['X-Request-Time'] = timestamp
config.headers['timestamp'] = timestamp
config.headers['X-Timestamp'] = timestamp

3. 增强错误调试

  • 在AiAppSetting.vue中添加详细的调试日志
  • 在AiModelTest.vue中添加直接请求测试功能
  • 显示完整的错误信息和响应数据

测试步骤

1. 访问测试页面

http://localhost:5173/ai-model-test

2. 检查登录状态

  • 确保用户已登录并有有效的token
  • 在测试页面中查看"用户Token"状态

3. 测试API调用

  1. 点击"加载AI模型列表"按钮使用封装的API
  2. 点击"直接请求测试"按钮使用原生axios
  3. 查看控制台日志和响应数据

4. 检查AI应用设置

  1. 访问 /ai/app 页面
  2. 点击任意AI应用卡片
  3. 切换到"模型配置"选项卡
  4. 查看控制台日志

调试信息

请求信息

  • URL: /sys/dict/getDictItems/airag_model%20where%20model_type%20=%20'LLM',name,id?_t={timestamp}
  • 方法: GET
  • Base URL: /jeecgboot (或环境变量配置)

请求头

{
  'Content-Type': 'application/json',
  'X-Access-Token': '{user_token}',
  'X-Request-Time': '{timestamp}',
  'timestamp': '{timestamp}',
  'X-Timestamp': '{timestamp}'
}

预期响应格式

{
  "success": true,
  "message": "",
  "code": 0,
  "result": [
    {
      "value": "1890232564262739969",
      "text": "OpenAI",
      "color": null,
      "jsonObject": null,
      "label": "OpenAI",
      "title": "OpenAI"
    }
  ],
  "timestamp": 1759136645858
}

可能的解决方案

1. 检查后端签名算法

如果问题仍然存在,可能需要:

  • 检查后端期望的签名算法
  • 添加必要的签名参数
  • 确认时间戳格式要求

2. 检查接口权限

  • 确认该接口是否需要特定的用户权限
  • 检查token是否有效
  • 验证用户角色权限

3. 检查接口路径

  • 确认接口路径是否正确
  • 检查URL编码是否正确
  • 验证查询参数格式

备用方案

如果API调用仍然失败系统会自动使用备用数据

modelOptions.value = [
  { label: 'GPT-3.5 Turbo', value: 'gpt-3.5-turbo' },
  { label: 'GPT-4', value: 'gpt-4' },
  { label: 'Claude-3', value: 'claude-3' }
]

下一步调试

  1. 查看网络请求

    • 打开浏览器开发者工具
    • 查看Network选项卡
    • 检查实际发送的请求和响应
  2. 检查后端日志

    • 查看后端服务器日志
    • 确认请求是否到达后端
    • 检查签名验证逻辑
  3. 联系后端开发

    • 确认接口的正确调用方式
    • 获取签名算法详细信息
    • 确认必需的请求参数

文件修改记录

  • src/api/modules/system.ts: 添加字典API和时间戳参数
  • src/api/request.ts: 增强时间戳请求头
  • src/views/Ai/component/AiAppSetting.vue: 添加详细调试日志
  • src/views/AiModelTest.vue: 创建专门的测试页面
  • src/router/index.ts: 添加测试页面路由