Commit Graph

78 Commits

Author SHA1 Message Date
MerCry 0f1fa7de5c chore: 修改前端端口映射为8183 [AC-AISVC-50] 2026-02-26 20:05:39 +08:00
MerCry 87de47a5df fix: 添加ai-service配置目录volume持久化 [AC-AISVC-50]
- 添加 ai_service_config volume 挂载到 /app/config
- 解决重建容器时配置文件丢失的问题
2026-02-26 20:04:22 +08:00
MerCry a9d1079294 fix: 修复编排器使用错误的LLM配置问题 [AC-AISVC-50]
- 移除编排器中硬编码的LLMConfig创建
- 让LLM客户端使用自己的默认配置(从LLMConfigManager获取)
- 修复流式生成方法同样的问题
2026-02-26 19:58:55 +08:00
MerCry f81d18a517 feat: 添加LLM配置持久化功能 [AC-AISVC-50]
- LLM配置保存到 config/llm_config.json 文件
- 服务重启后自动加载已保存的配置
- 与嵌入模型配置保持一致的持久化机制
2026-02-26 19:30:26 +08:00
MerCry 15016d3448 fix: 适配qdrant-client 1.17.0 API变更,search方法改为query_points [AC-AISVC-50]
- qdrant-client 1.10+ 版本移除了 search() 方法,改用 query_points()
- 使用 collection_exists() 替代 get_collections() 检查集合存在
- 更新返回结果处理:results.points 替代 results
- 更新 pyproject.toml 版本约束为 >=1.9.0,<2.0.0
- 修正 README.md 中的 docker 命令示例
2026-02-26 19:07:04 +08:00
MerCry d660c19ab9 feat: 添加嵌入配置持久化及模型切换警告 [AC-AISVC-50]
- 添加嵌入配置持久化到config/embedding_config.json
- 服务启动时自动加载保存的配置
- 切换模型时前端显示警告提示需要重新上传文档
- 修复OptimizedRetriever缓存问题,每次检索获取最新配置
- 清理调试用的Python临时文件
- 更新.gitignore忽略config目录
2026-02-26 18:01:03 +08:00
MerCry fd04ed2cef fix: 修复RAG检索多个问题并更新嵌入模型配置 [AC-AISVC-50]
主要修复:
1. 修复ConfigForm和EmbeddingConfigForm组件watch死循环导致内存溢出
2. 修复向量存储格式与检索格式不匹配问题
3. 修复两阶段检索和混合检索互斥问题
4. 修复RRF融合时vector字段丢失问题
5. 修复embedding_full未归一化导致相似度计算错误
6. 修复嵌入模型配置表单不显示参数问题

功能增强:
- 添加with_vectors参数支持返回向量用于重排序
- 新增两阶段+混合检索组合策略
- 更新README嵌入模型配置说明,推荐nomic-embed-text-v2-moe
- 添加cleanup_qdrant.py脚本用于清理向量数据
2026-02-26 14:45:21 +08:00
MerCry 6150fc0dd2 fix: 修复RAG检索无结果问题-向量存储格式与检索格式不匹配 [AC-AISVC-50] 2026-02-26 12:39:42 +08:00
MerCry 3f1f4cd98d fix: 修复ConfigForm和EmbeddingConfigForm组件watch死循环导致内存溢出 [AC-AISVC-50] 2026-02-26 12:30:04 +08:00
MerCry 6c16132557 fix: 修复EmbeddingConfigForm组件watch无限循环 [AC-AISVC-50] 2026-02-26 12:20:49 +08:00
MerCry a4af74751f fix: 修复ConfigForm组件watch无限循环导致内存溢出 [AC-AISVC-50]
- 添加 JSON.stringify 比较避免 watch 循环触发
- 修复前端页面崩溃问题
2026-02-26 12:17:52 +08:00
MerCry b11b5a027f fix: 更新数据库脚本添加chat_messages缺失字段 [AC-AISVC-50]
- init_db.sql 添加 prompt_tokens, completion_tokens, total_tokens 等字段
- 新增 migrate_add_columns.sql 用于现有数据库迁移
2026-02-26 12:10:14 +08:00
MerCry 72700038c6 fix: 简化Nginx代理配置,移除upstream变量 [AC-AISVC-50] 2026-02-26 11:50:03 +08:00
MerCry 97e7fd0992 feat: 添加API Key认证系统和修复Qdrant搜索问题 [AC-AISVC-50]
- 新增 API Key 数据库模型和服务
- 新增 ApiKeyMiddleware 认证中间件
- 新增 /admin/api-keys 管理接口
- 前端支持 VITE_APP_API_KEY 环境变量
- 修复 optimized_retriever.py 中 Qdrant 搜索调用方式
- 更新 Dockerfile 支持构建时传入 API Key
- 更新 docker-compose.yaml 支持前端 API Key 配置
2026-02-26 03:11:36 +08:00
MerCry ee2c7c0d0c feat: 添加API Key认证功能 [AC-AISVC-50]
- 新增 ApiKey 模型和数据库表
- 新增 ApiKeyService 服务,支持内存缓存验证
- 新增 ApiKeyMiddleware 中间件,验证所有请求
- 应用启动时自动创建默认 API Key
- 新增 /admin/api-keys 管理接口
2026-02-26 02:52:50 +08:00
MerCry 77033efd34 fix: 移除docker-compose过时的version字段 [AC-AISVC-01] 2026-02-26 02:45:00 +08:00
MerCry 1000158550 fix: 修复Docker部署健康检查路径和API Key配置 [AC-AISVC-01]
- 修正docker-compose.yaml中健康检查路径从/health改为/ai/health
- 在middleware中添加/ai/health到API Key和租户检查的跳过列表
- 添加前端.env.example配置文件说明API Key配置方法
- 更新README添加API Key配置步骤说明
2026-02-26 02:41:33 +08:00
MerCry c7a71d6e03 fix: 添加python-multipart依赖解决表单解析错误 [AC-AISVC-01] 2026-02-26 02:29:56 +08:00
MerCry 40ff48498f fix: nginx使用变量延迟解析upstream避免启动报错 [AC-AISVC-01] 2026-02-26 02:28:44 +08:00
MerCry a60a760951 fix: 显式安装rollup原生模块解决Alpine构建问题 [AC-AISVC-01] 2026-02-26 02:23:02 +08:00
MerCry bd38e7816a fix: 修复npm可选依赖安装问题 [AC-AISVC-01] 2026-02-26 02:21:30 +08:00
MerCry b91b57cfa4 fix: 修复TypeScript类型错误以兼容vue-tsc v2 [AC-AISVC-01] 2026-02-26 02:19:51 +08:00
MerCry 5b3f5063a6 fix: 升级vue-tsc到v2解决TypeScript兼容性问题 [AC-AISVC-01] 2026-02-26 02:15:13 +08:00
MerCry a3b7f2cc51 fix: Docker构建时复制README.md文件 [AC-AISVC-01] 2026-02-26 02:13:26 +08:00
MerCry 366f38e17f fix: 使用国内镜像加速Docker构建 [AC-AISVC-01] 2026-02-26 02:12:04 +08:00
MerCry 7c8e4b6dc7 feat: 调整端口映射,后端8182供Java渠道侧调用 [AC-AISVC-01]
- 后端端口从8080改为8182(宿主机映射)
- 前端端口8181保持不变
- 更新宿主机Nginx配置示例,支持前后端分离代理
- 容器间通信使用内部网络,无需修改
2026-02-26 01:46:24 +08:00
MerCry b6218dec1a feat: 调整前端端口为8181并添加宿主机Nginx配置示例 [AC-AISVC-01]
- 前端端口从3000改为8181(避免与常用端口冲突)
- 添加 deploy/nginx.conf.example 宿主机Nginx配置示例
- 更新README添加Nginx配置说明
2026-02-26 01:42:43 +08:00
MerCry d8f440077a fix: 修正DeepSeek配置示例并更新Docker Compose语法 [AC-AISVC-01]
- DeepSeek使用deepseek作为provider而非openai
- 更新所有docker-compose命令为docker compose (V2语法)
2026-02-26 01:39:46 +08:00
MerCry f2d29dc2c4 feat: 添加Ollama服务支持嵌入模型部署 [AC-AISVC-01]
- docker-compose.yaml 添加 Ollama 容器
- 更新 .env.example 添加 Ollama 配置
- README 添加模型拉取步骤和架构图更新
2026-02-26 01:28:08 +08:00
MerCry 0b435a4b57 docs: 更新README,添加Docker部署指南 2026-02-26 01:24:40 +08:00
MerCry adc78a6b9b feat: 添加Docker容器部署配置 [AC-AISVC-01]
- 添加 ai-service 后端 Dockerfile (Python 3.11 + uv)
- 添加 ai-service-admin 前端 Dockerfile (Node 20 + nginx)
- 添加 docker-compose.yaml 编排文件 (含postgres/qdrant)
- 添加 nginx.conf 前端反向代理配置
- 添加 .dockerignore 文件
- 添加 .env.example 环境变量示例
2026-02-26 01:22:30 +08:00
MerCry f631f1dea0 feat: 统一提示词模板并添加全量提示词日志 [AC-AISVC-02, AC-ASA-19, AC-ASA-20]
PR Check (SDD Full Gate) / sdd-full-gate (pull_request) Successful in 2s Details
- 新增 prompts.py 集中管理系统提示词和证据格式化
- orchestrator.py 添加全量提示词日志打印
- openai_client.py 添加全量提示词日志打印(支持普通和流式)
- rag.py 重构使用统一的提示词模板
2026-02-26 01:12:01 +08:00
MerCry dd74ae2585 feat: 切换到优化检索器并增强编排日志 [AC-AISVC-02, AC-AISVC-16] 2026-02-25 23:45:34 +08:00
MerCry 717d5328cf docs: 更新 progress 文档,记录 Phase 9 完成状态 [AC-AISVC-10] 2026-02-25 23:44:28 +08:00
MerCry 02f03a3a12 feat: RAG 配置优化与检索日志增强 [AC-AISVC-16, AC-AISVC-17] 2026-02-25 23:42:31 +08:00
MerCry cee884d9a0 feat: RAG 检索优化,实现多维度向量存储和 Nomic 嵌入提供者 [AC-AISVC-16, AC-AISVC-29] 2026-02-25 23:10:12 +08:00
MerCry 774744d534 feat: 文档索引优化,支持多编码解码和按行分块 [AC-AISVC-21, AC-AISVC-22] 2026-02-25 23:09:24 +08:00
MerCry ac8c33cf94 feat: 实现租户管理功能,支持租户ID格式校验与自动创建 [AC-AISVC-10, AC-AISVC-12, AC-ASA-01] 2026-02-25 23:08:36 +08:00
MerCry a23f1a2089 docs: 更新任务清单,添加 Phase 9 租户管理与 RAG 优化任务 [AC-AISVC-10, AC-ASA-01] 2026-02-25 23:07:34 +08:00
MerCry eb45629b67 fix: LLM选择器当前配置标签显示逻辑 [AC-ASA-14, AC-ASA-15]
- 修复placeholder动态显示当前配置提供者名称
- 添加computedPlaceholder计算属性
- 优化标签显示逻辑,区分'当前配置'和'已选择'
2026-02-25 14:46:24 +08:00
MerCry 10591ea8fd feat: 优化RAG客服回复prompt模板 [AC-ASA-05, AC-ASA-19]
- 重构客服角色设定,增加系统指令部分
- 添加口语化、亲切语气等7项客服准则
- 优化知识库内容引用格式
- 移除暴露AI身份的提示词
2026-02-25 14:45:38 +08:00
MerCry 08e84d194f feat: RAG实验室参数持久化与LLM选择器优化 [AC-ASA-05, AC-ASA-14, AC-ASA-15]
- 新增ragLab store,使用localStorage持久化RAG实验参数
- 修复LLM选择器placeholder显示逻辑,正确显示当前配置
- 添加'已选择'标签区分用户选择与系统默认配置
- 优化下拉框样式防止标签被遮挡
2026-02-25 14:45:17 +08:00
MerCry 4579159c0a feat(ui): 前端浅色调风格优化与下拉框显示修复
- 建立全局浅色调样式系统,统一配色风格
- 优化导航栏设计,添加品牌标识
- 修复下拉框被遮挡问题,添加 teleported 和 popper 配置
- 优化 LLM 选择器中当前配置标签的显示
- 重构控制台页面,采用白色卡片风格
- 统一所有页面的视觉风格,提升用户体验
2026-02-25 14:06:37 +08:00
MerCry 935dcd1611 feat(ASA-P5,P6): 实现嵌入管理与LLM配置API服务层 [AC-ASA-08~AC-ASA-15] 2026-02-25 01:34:20 +08:00
MerCry fc53fdc6ac feat(AISVC-T8): LLM配置管理与RAG调试输出支持 [AC-AISVC-42, AC-AISVC-43, AC-AISVC-44, AC-AISVC-45, AC-AISVC-46, AC-AISVC-47, AC-AISVC-48, AC-AISVC-49, AC-AISVC-50]
- 新增 LLMProviderFactory 工厂类支持 OpenAI/Ollama/Azure [AC-AISVC-42]
- 新增 LLMConfigManager 支持配置热更新 [AC-AISVC-43, AC-AISVC-44]
- 新增 LLM 管理 API 端点 [AC-AISVC-42~AC-AISVC-46]
- 更新 RAG 实验接口支持 AI 回复生成 [AC-AISVC-47, AC-AISVC-49]
- 新增 RAG 实验流式输出 SSE [AC-AISVC-48]
- 支持指定 LLM 提供者 [AC-AISVC-50]
- 更新 OpenAPI 契约添加 LLM 管理接口
- 更新前后端规范文档 v0.4.0 迭代
2026-02-25 01:25:53 +08:00
MerCry 559d8c0c53 feat(ASA-P5): PDF智能分块处理,使用tiktoken按token分块并保留页码元数据 [AC-ASA-01] 2026-02-25 01:16:59 +08:00
MerCry e9fee2f80e feat(AISVC): Excel/CSV parser converts to JSON format for better RAG retrieval [AC-AISVC-35]
- ExcelParser: convert spreadsheet data to JSON records with header as keys
- CSVParser: convert CSV data to JSON records preserving structure
- Add _sheet field to identify worksheet source in Excel output
- Preserve numeric types (int/float/bool) in JSON output
- Support UTF-8 and GBK encoding fallback for CSV files
2026-02-25 01:12:07 +08:00
MerCry f2116b95f2 feat(ASA-P5): 实现动态配置表单与测试连接组件 [AC-ASA-09, AC-ASA-10, AC-ASA-11, AC-ASA-12] 2026-02-24 23:31:36 +08:00
MerCry c1d76093aa feat(AISVC-T7): 嵌入模型可插拔设计与文档解析支持 [AC-AISVC-29, AC-AISVC-30, AC-AISVC-31, AC-AISVC-32, AC-AISVC-33, AC-AISVC-34, AC-AISVC-35, AC-AISVC-36, AC-AISVC-37, AC-AISVC-38, AC-AISVC-39, AC-AISVC-40, AC-AISVC-41]
- 新增 EmbeddingProvider 抽象基类和工厂模式 [AC-AISVC-29, AC-AISVC-30]
- 实现 OllamaEmbeddingProvider 和 OpenAIEmbeddingProvider [AC-AISVC-29, AC-AISVC-30]
- 新增 EmbeddingConfigManager 支持配置热更新 [AC-AISVC-31, AC-AISVC-32]
- 新增 DocumentParser 抽象接口和工厂类 [AC-AISVC-33]
- 实现 PDF/Word/Excel/Text 文档解析器 [AC-AISVC-33, AC-AISVC-34, AC-AISVC-35]
- 新增嵌入管理 API 端点 [AC-AISVC-38, AC-AISVC-39, AC-AISVC-40, AC-AISVC-41]
- 更新文档上传流程支持多格式文档解析 [AC-AISVC-36, AC-AISVC-37]
- 更新 OpenAPI 契约添加嵌入管理接口
- 添加数据库初始化脚本
- 更新规范文档标记 Phase 7 完成
2026-02-24 23:08:08 +08:00
MerCry 4b64a4dbf4 feat(AISVC-T6.9): 集成Ollama嵌入模型修复RAG检索问题
## 问题修复
- 替换假嵌入(SHA256 hash)为真实Ollama nomic-embed-text嵌入
- 修复Qdrant客户端版本不兼容导致score_threshold参数失效
- 降低默认分数阈值从0.7到0.3

## 新增文件
- ai-service/app/services/embedding/ollama_embedding.py

## 修改文件
- ai-service/app/api/admin/kb.py: 索引任务使用真实嵌入
- ai-service/app/core/config.py: 新增Ollama配置,向量维度改为768
- ai-service/app/core/qdrant_client.py: 移除score_threshold参数
- ai-service/app/services/retrieval/vector_retriever.py: 使用Ollama嵌入
2026-02-24 22:15:53 +08:00