diff --git a/MEMORY.md b/MEMORY.md index e8197af..571c549 100644 --- a/MEMORY.md +++ b/MEMORY.md @@ -82,6 +82,32 @@ git push origin v1.0.0 | 本地LLM | http://192.168.2.5:1234/v1 | qwen3.5-4b | | API Key | sk-lm-fuP5tGU8:Hi7YU87jHyDP6Ay8Tl2j | | +### SMTP邮件发送经验 ⭐ + +**端口587无SSL的正确做法:** +```python +import smtplib +server = smtplib.SMTP(host, 587) # 直接连接,不用SMTP_SSL +server.ehlo() +server.login(user, pass) +server.sendmail(from, to, msg) +server.quit() +``` + +**错误做法(会导致邮件丢失):** +- ❌ 使用 `server.starttls()` - 服务器不支持STARTTLS时会报错,即使跳过也可能导致邮件格式问题 +- ❌ 使用 `SMTP_SSL(host, 587)` - 587端口不是SSL端口 + +**服务器返回解读:** +- `{}` 空字典 = 服务器已接收,等待投递 +- 有内容 = 投递失败的收件人列表 + +**mail.tphai.com 配置:** +- 主机: mail.tphai.com +- 端口: 587(无SSL,明文) +- 用户: favor@tphai.com +- 密码: favor@! + --- ## 项目索引 @@ -101,18 +127,110 @@ git push origin v1.0.0 ## 更新日志 -### 2026-04-13 -- AI对话系统 v2.1.1:多版本历史消息功能 - - 添加浏览器标签favicon(🤖图标) - - 复制按钮在消息内容下方,一直显示 - - 重新生成功能升级: - - 点击重新生成时隐藏当前内容,显示loading动画 - - 生成完成后添加新版本,保留旧版本 - - 版本切换控件(左右箭头 + 版本指示器) - - 可切换查看历史版本 - - Git仓库: http://192.168.2.8:12007/coder/ai-chat-system v2.1.1 +### 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