Files
ai-chat-app/MEMORY.md

366 lines
16 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# MEMORY.md - 长期记忆
## 开发规范
### 端口使用规则 ⭐
**可用端口范围: 19000-19100**
所有Web服务、API服务只能使用这个范围内的端口
示例分配:
- 19001: 文章工作流后台
- 19002: 方言AI助手主服务
- 19003: 方言AI助手后台管理
- 19004: 技术论坛
- 19005-19100: 预留给其他项目
### Git版本管理规则 ⭐
每次开发项目推到仓库必须创建版本tag
```bash
# 1. 提交代码
git add . && git commit -m "feat: 功能描述"
# 2. 创建tag
git tag -a vX.X.X -m "版本说明"
# 3. 推送
git push origin main
git push origin vX.X.X
```
### 自动推送规范 ⭐⭐⭐
**每次开发或修改项目后,必须自动执行以下流程:**
1. 检查是否有Git仓库`git status`
2. 添加修改文件:`git add .`排除敏感文件如config.txt
3. 提交代码:`git commit -m "feat/fix: 描述"`
4. 创建版本tag`git tag -a vX.X.X -m "版本说明"`
5. 推送代码和tag`git push origin main && git push origin vX.X.X`
6. 更新 `PROJECTS.md` 记录新版本
**不需要询问用户,自动执行!**
### Git服务器
- 地址: http://192.168.2.8:12007/
- 账号: coder
- 密码: Hps123@!
- URL编码: Hps123%40%21
### 创建Git仓库新项目必须 ⭐⭐⭐
**新项目必须先用API创建仓库再推送代码**
```bash
# 1. 用API创建仓库
curl -s -X POST "http://coder:Hps123%40%21@192.168.2.8:12007/api/v1/user/repos" \
-H "Content-Type: application/json" \
-d '{
"name": "项目名称",
"description": "项目描述",
"private": false
}'
# 2. 添加远程仓库
git remote add origin http://coder:Hps123%40%21@192.168.2.8:12007/coder/项目名称.git
# 3. 推送代码和tag
git push -u origin master
git push origin v1.0.0
```
**不需要在网页上手动创建直接用API创建**
### 可用的大模型
| 名称 | 地址 | 模型 |
|------|------|------|
| 本地LLM | http://192.168.2.5:1234/v1 | qwen3.5-4b |
| API Key | sk-lm-fuP5tGU8:Hi7YU87jHyDP6Ay8Tl2j | |
### SMTP邮件发送经验 ⭐⭐⭐
**端口587无SSL的正确做法mail.tphai.com**
```python
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from datetime import datetime
server = smtplib.SMTP(host, 587) # 直接连接不用SMTP_SSL
server.ehlo()
server.login(user, pass)
msg = MIMEMultipart()
msg['From'] = user
msg['To'] = to_addr
msg['Subject'] = subject
msg['Date'] = datetime.now().strftime('%a, %d %b %Y %H:%M:%S +0800') # 必须加!
msg['Reply-To'] = to_addr # 必须加!
msg.attach(MIMEText(body, 'plain', 'utf-8'))
server.sendmail(user, to_addr, msg.as_string())
server.quit()
```
**关键点(不加会导致邮件丢失):**
- ✅ 必须加 `msg['Date']` 头 - 部分邮件服务器不接受无Date头的邮件
- ✅ 必须加 `msg['Reply-To']`
- ✅ 必须调用 `server.ehlo()`
**错误做法:**
- ❌ 使用 `server.starttls()` - 服务器不支持会导致邮件丢失
- ❌ 使用 `SMTP_SSL(host, 587)` - 587不是SSL端口
- ❌ 不加 Date 头 - 部分服务器会丢弃
**mail.tphai.com 配置:**
- 主机: mail.tphai.com
- 端口: 587无SSL明文
- 用户: favor@tphai.com
- 密码: favor@!
---
## 项目索引
详细项目信息请查看 `PROJECTS.md`,包含启动命令、检查方式、端口分配等。
| 项目 | 仓库 | 端口 | 状态 |
|------|------|------|------|
| PDF翻译助手 V2 | 本地 | 19000 | ✅ 运行中 |
| 碎片信息记录 | 本地 | 19009 | ✅ 运行中 |
| ParamHub Python | 本地 | 19010 | ✅ 运行中 |
| 项目服务管理面板 | 本地 | 19013 | ✅ 运行中 |
| 视觉记录系统 | /coder/vision-record | 19016 | 📦 已完成 |
| 网页助手插件 | /coder/web-context-extension | - | 📦 已完成 |
| 磁盘大文件扫描 | 本地 | - | 📦 已完成 |
---
## 更新日志
### 2026-04-16
- 碎片信息记录 v1.2.0:编辑锁机制防止并发编辑
- 点击记录时获取锁,阻止其他人同时编辑
- 锁超时30秒自动释放无心跳
- 心跳每10秒发送保持锁活跃
- 强制抢锁功能(打断对方编辑)
- 页面离开自动释放锁
- 锁丢失弹窗提醒
- 双重保护:编辑锁(主防线) + 版本号(备用防线)
- Git仓库: http://192.168.2.8:12007/coder/snippet-notes v1.2.0
### 2026-04-15
- 碎片信息记录 v1.1.0:并发编辑冲突解决(乐观锁+版本号机制)
- 每条记录增加version字段每次保存版本号递增
- 客户端保存时携带版本号,服务端检查版本一致性
- 版本冲突时返回HTTP 409前端显示冲突对话框
- 用户可选择"放弃我的修改"或"强制保存我的版本"
- 旧数据自动添加version=1
- Git仓库: http://192.168.2.8:12007/coder/snippet-notes v1.1.0
- AI对话系统 v3.0.6SiliconFlow平台Function Calling第二轮调用兼容
- **核心问题**SiliconFlow平台不支持标准 `tool` 消息类型
- 第一轮:正常返回 `tool_calls`
- 第二轮:传入 `tool` 消息类型 → API返回"参数无效"错误
- **修复方案**:将 `tool` 消息转换为 `user` 消息格式
- 收集所有 tool 消息的内容
- 合并为一个用户消息:"\n以下是搜索工具返回的结果...\n请根据以上搜索结果回答..."
- **测试验证**完整流程测试成功v3.0.5的过滤方案只是临时补救v3.0.6才是根本修复)
- Git仓库: http://192.168.2.8:12007/coder/ai-chat-system v3.0.6
- AI对话系统 v3.0.5临时过滤伪工具调用格式已废弃v3.0.6根本修复)
### 2026-04-14
- Xian Favor v1.9.2:邮件发送历史记录
- 详情页面显示邮件发送记录(发送邮箱、时间)
- 支持多次发送,显示多条记录
- 发送成功/失败状态标记(✅/❌)
- Git仓库: http://192.168.2.8:12007/coder/xian-favor v1.9.2
- Xian Favor v1.9.0:发送邮件功能 + 邮箱管理
- 每个收藏卡片添加"发送邮件"按钮(📧图标)
- 点击弹出模态框:选择已有邮箱或输入新邮箱
- 新邮箱自动保存到邮箱管理
- 邮箱管理页面:添加、编辑、删除邮箱
- SMTP配置支持环境变量SMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASS
- Git仓库: http://192.168.2.8:12007/coder/xian-favor v1.9.0
- AI对话系统 v2.4.3:多模态图片支持
- 图片 base64 数据传递给视觉模型OpenAI 多模态格式)
- 需选择支持视觉的 Agent如 vlm-agent才能识别图片
- 图片信息保存在 extra_data 中供历史记录显示
- Git仓库: http://192.168.2.8:12007/coder/ai-chat-system v2.4.3
### 2026-04-13
- AI对话系统 v2.4.0:文件上传功能
- 支持图片上传PNG、JPG、GIF等预览显示
- 支持文本文件上传txt、md、json、csv等内容自动添加
- 支持 PDF 和 Word 文档上传
- 文件内容自动添加到消息中供 AI 分析
- 多文件同时上传支持
- Git仓库: http://192.168.2.8:12007/coder/ai-chat-system v2.4.0
- AI对话系统 v2.3.9:修复历史搜索结果显示
- WebSocket history 消息添加 extra_data 字段
- 选择对话时正确传递搜索结果数据
- 前端 appendMessage 接收 extraData 参数并处理
- 刷新页面后历史对话中的搜索结果正确显示
- Git仓库: http://192.168.2.8:12007/coder/ai-chat-system v2.3.9
- AI对话系统 v2.3.7:历史搜索结果显示修复
- appendMessage 函数接收 extraData 参数
- 创建用户消息时直接处理搜索结果显示
- 简化 displayHistory 逻辑,统一处理方式
- Git仓库: http://192.168.2.8:12007/coder/ai-chat-system v2.3.7
- AI对话系统 v2.3.6:搜索结果持久化
- 用户消息 extra_data 存储搜索结果search_results, search_query
- API 返回消息时包含 extra_data
- 前端 displayHistory 处理历史搜索结果显示
- 刷新页面后历史对话中的搜索结果保持原状
- Git仓库: http://192.168.2.8:12007/coder/ai-chat-system v2.3.6
- AI对话系统 v2.3.5:修复搜索结果数量配置
- 搜索结果数量根据工具配置读取max_results
- LLM上下文和前端展示都使用配置的数量
- Git仓库: http://192.168.2.8:12007/coder/ai-chat-system v2.3.5
- AI对话系统 v2.3.4:对话流程优化
- 用户发送消息时前端立即显示(不用等后端广播)
- 后端处理顺序调整:广播用户消息 → 执行搜索 → 发送搜索结果 → 调用LLM
- 前端收到 user_message 时检查是否已显示(避免重复)
- 流程顺序:用户消息 → 搜索结果(折叠) → AI回复
- Git仓库: http://192.168.2.8:12007/coder/ai-chat-system v2.3.4
- AI对话系统 v2.3.3搜索结果UI优化
- 搜索结果放到用户消息下面(流程逻辑更清晰)
- 默认折叠,点击展开/收起
- 显示搜索关键词和结果数量摘要
- Git仓库: http://192.168.2.8:12007/coder/ai-chat-system v2.3.3
- AI对话系统 v2.3.2:修复 tools 字段读取
- get_agent_config 添加 tools 字段返回
- AI对话系统 v2.3.1:搜索功能修复
- 添加详细日志帮助调试搜索执行过程
- 搜索结果发送到前端展示search_results 类型消息)
- 前端增加搜索结果展示组件(标题、摘要、来源)
- 修复 datetime 导入错误
- Git仓库: http://192.168.2.8:12007/coder/ai-chat-system v2.3.1
- AI对话系统 v2.3.0:工具管理重构
- ToolConfig 模型:通用工具配置,支持多种类型(搜索、计算器、代码执行、图像生成等)
- ToolUsageLog 模型:工具调用日志记录
- 工具使用统计:调用次数、成功率、错误记录
- 后台管理界面:工具列表+统计展示(调用次数、成功率、最近错误)
- API 重构:/api/v2/tools替代 /api/v2/search-tools
- Git仓库: http://192.168.2.8:12007/coder/ai-chat-system v2.3.0
- AI对话系统 v2.2.2:优化搜索触发逻辑
- 搜索改为勾选即执行,不再依赖关键词检测
- 修复 Agent tools 字段默认为空的问题
- Git仓库: http://192.168.2.8:12007/coder/ai-chat-system v2.2.2
- AI对话系统 v2.2.1:修复搜索功能
- 修复数据库缺少 tools 字段问题SQLite ALTER TABLE
- 移动搜索复选框到输入框区域(快捷语句栏)
- Git仓库: http://192.168.2.8:12007/coder/ai-chat-system v2.2.1
- AI对话系统 v2.2.0搜索工具功能Tavily Search
- 新增 SearchToolConfig 模型:支持搜索工具配置管理
- Agent 增加 tools 字段:可配置可用工具列表
- 后台管理增加搜索工具配置页面(增删改查)
- Agent 管理增加工具启用开关(搜索工具)
- 网页端增加搜索工具禁用复选框(实时控制)
- WebSocket chat 处理增加关键词触发搜索逻辑
- 默认配置 Tavily Search API已填入 API Key
- Git仓库: http://192.168.2.8:12007/coder/ai-chat-system v2.2.0
- AI对话系统 v2.1.6:简化新建对话判断条件
- 只检查 `!currentConversationId && !hasMessages` 即可判断新建状态
- Git仓库: http://192.168.2.8:12007/coder/ai-chat-system v2.1.6
- AI对话系统 v2.1.5:优化新建对话逻辑
- 新建对话时检查是否已经是新建状态无对话ID、无消息、显示欢迎界面
- 避免重复点击新建按钮创建多个空对话
- Git仓库: http://192.168.2.8:12007/coder/ai-chat-system v2.1.5
- AI对话系统 v2.1.3:多版本历史消息功能完善
- 添加浏览器标签favicon🤖图标
- 复制按钮在消息内容下方,一直显示
- 重新生成功能:
- 点击重新生成时隐藏当前内容显示loading动画
- 生成完成后移除loading显示新内容
- 保留旧版本,支持版本切换
- 版本切换控件:简化布局,整合到操作按钮区域(复制|重新生成|< 1/3 >
- Git仓库: http://192.168.2.8:12007/coder/ai-chat-system v2.1.3
### 2026-04-13 (其他更新)
- LLM Proxy v2.0.0:合并后台管理到单端口
- 端口: 19007 (原 19007+19008)
- 前台API: http://localhost:19007/v1/chat/completions
- 后台管理: http://localhost:19007/admin
- Git仓库: http://192.168.2.8:12007/coder/llm-proxy v2.0.0
- 产品参数爬取系统 v2.0.0:合并后台管理到单端口
- 端口: 19011 (原 19011+19012)
- 前台API: http://localhost:19011
- 后台管理: http://localhost:19011/admin
- Git仓库: http://192.168.2.8:12007/coder/product-crawler v2.0.0
- 技术论坛 CLI 工具收藏到 Xian Favor
- 多智能体竞标调度系统添加到 project-panel
- 磁盘大文件扫描工具 v1.0.0:智能扫描找出大文件和大目录
- 自动跳过零碎目录node_modules, .git, venv等
- 文件数量阈值判断(超过阈值视为程序包)
- 大小阈值过滤(小目录不深入)
- 按大小排序,树形展示
- 跨平台Windows/Linux/macOS
- Git仓库: http://192.168.2.8:12007/coder/disk-scanner
- AI对话系统 v2.0.0:架构重构
- 端口: 19020
- 大模型池管理多LLM Provider配置
- Agent管理系统设定、思考功能开关
- 渠道独立:网页端/Matrix独立绑定Agent
- 思考功能:支持原生思考模型,兼容无思考功能模型
- Git仓库: http://192.168.2.8:12007/coder/ai-chat-system v2.0.0
- 多智能体竞标调度系统 v1.0.0:基于邮件方案实现
- 端口: 19015
- 核心组件Orchestrator(规划Agent)、Worker(执行Agent)、TaskBoard(任务公告板)
- 功能:竞标机制、动态调度、智能容错、质量保证
- 默认Agent代码专家、搜索专家、写作专家、分析专家
- Web界面首页、请求列表、任务列表、Agent管理
- Git仓库: http://192.168.2.8:12007/coder/multi-agent-bidding
- Xian Favor 收藏系统 v1.0.0支持命令行、API、Web三种操作模式
- 端口: 19014
- 功能:文本笔记、链接收藏、专栏订阅、待办事项管理
- 标签系统:灵活分类,支持多标签
- 状态管理:待办支持待处理/进行中/已完成
- 优先级:低/中/高/紧急
- 截止日期:待办支持设置截止日期
- 快速搜索:全文搜索标题、内容、备注
- Git仓库: http://192.168.2.8:12007/coder/xian-favor
### 2026-04-11
- PDF翻译助手 V2 v2.1.0:系统配置支持动态增删用户类型和会员套餐
- 新增 UserTypeConfig 模型:用户类型配置支持动态增删
- 新增 MembershipPlanConfig 模型:会员套餐配置支持动态增删
- 用户类型管理页面:添加、编辑、删除、启用/禁用用户类型
- 会员套餐管理页面:添加、编辑、删除、上架/下架、推荐套餐
- 功能权限配置:支持选择功能列表
- 项目服务管理面板 v1.0.0:统一管理所有项目和服务
- 端口: 19013
- 功能: 项目列表、状态检测、启动/停止/重启控制、日志查看
- 配置文件: projects.json 便于扩展新项目
- Git仓库: http://192.168.2.8:12007/coder/project-panel
### 2026-04-10
- 创建 Web服务监控系统每20分钟检查8个服务邮件通知
- 配置 Cron 定时任务
- 扩展邮件技能:新增 IMAP 接收邮件功能,支持查看未读邮件和文本附件
- 创建 A股板块监控系统东方财富API异动检测邮件通知
- 创建邮件收件箱管理系统 (`works/mailbox/`):同步、存储、状态追踪、归档
### 2026-04-09
- 创建 PROJECTS.md 项目记录文件
- 创建邮件发送技能 email-sender
- 配置每日对话总结心跳任务
- 确立项目记录机制
### 2026-04-08
- 确立端口规范: 19000-19100
- 创建参数百科网站
- 创建网页助手浏览器插件
- 创建文章撰写工作流系统(含后台管理)送技能 email-sender
- 配置每日对话总结心跳任务
- 确立项目记录机制
### 2026-04-08
- 确立端口规范: 19000-19100
- 创建参数百科网站
- 创建网页助手浏览器插件
- 创建文章撰写工作流系统(含后台管理)