Files
ai-chat-app/MEMORY.md

322 lines
13 KiB
Markdown
Raw Normal View History

# 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/web-context-extension | - | 📦 已完成 |
| 磁盘大文件扫描 | 本地 | - | 📦 已完成 |
---
## 更新日志
### 2026-04-14
- 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
- 创建参数百科网站
- 创建网页助手浏览器插件
- 创建文章撰写工作流系统(含后台管理)