gaoziman
|
00b8589e03
|
feat(API): 扩展聊天接口支持多模态消息
请求参数扩展:
- 新增 displayMessage 字段用于数据库存储原始用户输入
- 新增 images 字段支持用户上传的图片(Base64格式)
- 新增 uploadedImages 和 uploadedDocuments 用于持久化
多模态消息处理:
- Claude API 支持 image 类型内容块
- Codex API 支持 input_image 格式
- 用户消息保存时存储上传的图片和文档
系统提示词增强:
- 添加文档深度分析规范
- 定义七步文档分析框架
- 包含批判性评价和实践价值分析指导
|
2025-12-20 12:14:18 +08:00 |
|
gaoziman
|
acf17557c2
|
feat(Hooks): 添加文件上传Hook和扩展流式聊天支持
useFileUpload Hook:
- 实现文件添加、删除、清空功能
- 支持拖拽上传和粘贴上传
- 文件类型验证和大小限制
- 管理上传进度状态
useStreamChat Hook 扩展:
- 新增 UploadedFile 和 UploadedDocument 接口
- 支持图片文件转换为 Base64 格式
- 识别并读取文本类文件内容
- 扩展 sendMessage 参数支持文件数组
- 将文档内容附加到消息中发送给 AI
|
2025-12-20 12:13:56 +08:00 |
|
gaoziman
|
d98e540037
|
feat(组件): 添加文件预览列表组件
- 实现 FilePreviewItem 展示单个文件信息
- 根据文件类型显示对应图标和颜色
- 图片文件显示缩略图预览
- 显示文件名、大小和上传状态
- 支持上传进度条展示
- 提供悬浮删除按钮
|
2025-12-20 12:13:35 +08:00 |
|
gaoziman
|
cb01e2dffb
|
feat(UI): 添加模态框、图片灯箱和文档预览组件
Modal 组件:
- 支持 ESC 键关闭和点击遮罩关闭
- 可配置关闭按钮显示、最大宽度、全屏模式
- 添加淡入和缩放动画效果
ImageLightbox 组件:
- 支持多图片浏览和左右键导航
- 实现缩放、下载功能
- 支持触摸手势滑动切换
- 底部指示点和图片计数显示
DocumentPreview 组件:
- 支持代码文件语法高亮显示
- Markdown 文件渲染预览
- 提供复制和下载功能
|
2025-12-20 12:13:15 +08:00 |
|
gaoziman
|
e99c72f02a
|
feat(类型): 添加文件上传类型定义
- 定义 FileType 类型支持多种文件格式(图片、PDF、文档、代码等)
- 实现 UploadFile 接口包含完整的文件上传状态管理
- 添加 FileUploadConfig 配置接口和默认配置
- 提供 MIME 类型与文件类型映射
- 实现文件大小格式化和验证工具函数
|
2025-12-20 12:12:54 +08:00 |
|
gaoziman
|
799fb3ab58
|
feat(数据库): 扩展消息表支持用户上传的图片和文档
- 新增 uploadedImages 字段存储用户上传的图片(Base64编码数组)
- 新增 uploadedDocuments 字段存储用户上传的文档数据
- 定义 UploadedDocumentData 接口,包含文档名称、大小、类型和内容
|
2025-12-20 12:12:33 +08:00 |
|
gaoziman
|
e2679208aa
|
style(渲染): 优化Markdown渲染和数据格式
- 行内代码简化样式,仅使用等宽字体
- 列表项标记颜色调整为品牌色
- Mock数据更新适配新的模型格式
- 首页模型格式转换逻辑更新
|
2025-12-20 01:05:25 +08:00 |
|
gaoziman
|
2a4ede5726
|
feat(页面): 聊天页面标题增强功能
- 标题区域新增下拉菜单,支持重命名和删除对话
- 添加内联标题编辑模式
- 优化模型格式转换,区分 name 和 displayName
- 完善键盘快捷键支持(Enter 确认、Escape 取消)
|
2025-12-20 01:05:11 +08:00 |
|
gaoziman
|
3112bc1f42
|
feat(组件): 优化侧边栏和消息交互
- 侧边栏新增对话重命名功能
- 优化下拉菜单交互,添加点击外部关闭
- 用户消息气泡新增悬停复制按钮
- 调整菜单文案为英文保持统一
|
2025-12-20 01:04:56 +08:00 |
|
gaoziman
|
844df69b7c
|
feat(组件): 模型选择器支持多模型类型
- ModelSelector 组件支持可选的 selectedModel
- ModelCardSelector 新增 Claude 和 Codex 模型分组展示
- 添加模型类型切换提示,提醒用户不同模型的功能差异
- 优化模型选择交互体验
|
2025-12-20 01:04:42 +08:00 |
|
gaoziman
|
da19858c2d
|
refactor(API): 重构聊天接口支持多模型类型
- 拆分 Claude 和 Codex 模型的处理逻辑为独立函数
- 新增 handleClaudeChat 函数处理 Claude 系列模型
- 新增 handleCodexChat 函数处理 Codex 系列模型(OpenAI Response API 格式)
- 添加 isCodexModel 工具函数用于模型类型判断
- 优化代码结构,提高可维护性
|
2025-12-20 01:04:28 +08:00 |
|
gaoziman
|
55dcb618af
|
feat(类型): 更新模型类型定义
- Model 接口新增 displayName 字段
- 添加 modelType 类型(claude | codex)用于区分模型类型
|
2025-12-20 01:04:14 +08:00 |
|
gaoziman
|
c978504f4a
|
feat(数据库): 添加多模型类型支持
- 在 models 表中新增 modelType 字段,支持区分 claude 和 codex 类型
- 添加 Codex 系列模型数据(gpt-5.1-codex, gpt-5.1-codex-max, gpt-5.2-codex)
- 更新 Claude 模型的 displayName 命名
- 新增数据库迁移文件
|
2025-12-20 01:04:02 +08:00 |
|
gaoziman
|
54578ddd2d
|
chore: 更新Mock数据和工具服务
- 更新 mock 数据配置
- 优化 webFetch 工具服务
|
2025-12-19 22:37:42 +08:00 |
|
gaoziman
|
1ea5a8c916
|
chore(依赖): 添加用户认证相关依赖
- 添加 jose 用于 JWT Token 处理
- 添加 nodemailer 用于发送邮件
- 添加 bcryptjs 用于密码加密
|
2025-12-19 22:37:30 +08:00 |
|
gaoziman
|
ac5f555163
|
refactor(UI): 整合认证功能并优化界面
- 布局集成 AuthProvider 和 Toaster 组件
- 更新应用标题为 LionCode
- 侧边栏集成用户信息展示
- 设置页面支持已登录用户
- 用户菜单添加登出功能
- 优化全局样式
|
2025-12-19 22:37:19 +08:00 |
|
gaoziman
|
a7e846d733
|
feat(API): 对话接口添加用户数据隔离
- 获取对话列表时按用户过滤
- 创建对话时关联当前用户
- 删除对话时验证所有权
- 所有对话操作需要登录认证
|
2025-12-19 22:36:56 +08:00 |
|
gaoziman
|
bfbeef726d
|
feat(组件): 添加通用UI组件
- 添加 BrandIcon 品牌图标组件
- 添加 ThemeToggle 主题切换组件
- 添加 Toast 消息提示组件
|
2025-12-19 22:36:42 +08:00 |
|
gaoziman
|
abcea67980
|
feat(页面): 实现认证相关页面UI
- 实现登录页面,支持邮箱验证码登录
- 实现注册页面,支持邮箱验证注册
- 实现重置密码页面
- 统一认证页面布局和样式
|
2025-12-19 22:36:32 +08:00 |
|
gaoziman
|
b0b912274f
|
feat(认证): 添加认证状态管理和路由保护
- 实现 AuthProvider 管理全局认证状态
- 实现 middleware 路由保护中间件
- 支持受保护路由自动重定向到登录页
- 支持已登录用户自动跳转首页
|
2025-12-19 22:36:21 +08:00 |
|
gaoziman
|
733c93a91c
|
feat(认证): 实现用户认证API和工具库
- 实现 JWT Token 生成和验证
- 实现登录、注册、登出、重置密码 API
- 实现邮箱验证码发送功能(配置从环境变量读取)
- 实现密码加密和验证工具
- 支持获取当前用户信息
|
2025-12-19 22:36:08 +08:00 |
|
gaoziman
|
629ff540fc
|
feat(数据库): 添加用户认证相关数据表
- 新增 users 用户表,支持邮箱注册和登录
- 新增 verification_codes 验证码表,支持多种验证场景
- 为 user_settings 表添加 userId 关联字段
- 为 conversations 表添加 userId 关联字段
- 定义表关系实现用户数据隔离
- 更新数据库迁移文件
|
2025-12-19 22:35:54 +08:00 |
|
gaoziman
|
7d8a6a6939
|
feat(前端): 流式聊天支持 Pyodide 图形渲染
useStreamChat.ts:
- 处理 pyodide_execution_required 事件触发浏览器端执行
- 处理 tool_execution_result 事件接收服务端执行结果
- 添加 Pyodide 加载状态管理和进度显示
- 实现图片数据保存到数据库
- ChatMessage 类型增加 images 和 pyodideStatus 属性
page.tsx:
- 从数据库加载历史消息的图片数据
- 传递 images 和 pyodideStatus 到 MessageBubble 组件
|
2025-12-19 20:21:00 +08:00 |
|
gaoziman
|
e5c5593686
|
feat(组件): 消息气泡支持图形展示
MessageBubble.tsx:
- 集成 CodeExecutionResult 组件显示代码执行图片
- 添加 Pyodide 加载状态显示
- 支持 images 和 pyodideStatus 属性
- 新增 ToolResultDisplay 子组件处理工具结果
MarkdownRenderer.tsx:
- 修复图片组件属性传递问题
- 改用 spread 操作符传递所有 img 属性
|
2025-12-19 20:20:33 +08:00 |
|
gaoziman
|
58d288637a
|
feat(组件): 添加代码执行结果展示组件
- 新增 CodeExecutionResult 组件展示代码执行输出和图形
- 支持 Base64 图片渲染和点击放大查看
- 显示执行引擎(Pyodide/Piston)和执行时间
- 新增 PyodideLoading 组件显示 Python 环境加载进度
- 支持暗色主题
|
2025-12-19 20:20:11 +08:00 |
|
gaoziman
|
5fe0552338
|
feat(API): 聊天接口支持 Pyodide 图形代码执行
- 添加图表绘制规范到系统提示词
- 支持发送 pyodide_execution_required 事件通知前端
- 工具执行结果增加图片数据传递
- 优化图表绘制指导(单次绘图、子图展示、中文支持)
|
2025-12-19 20:19:51 +08:00 |
|
gaoziman
|
5cc4fbb7a0
|
feat(API): 添加消息更新接口
- 新增 PATCH /api/messages/[messageId] 用于更新消息
- 支持更新消息的图片数据(用于保存 Pyodide 执行结果)
- 支持追加模式更新图片数组
- 新增 GET /api/messages/[messageId] 获取单个消息
|
2025-12-19 20:19:26 +08:00 |
|
gaoziman
|
68ba9b3204
|
feat(工具): 实现混合代码执行架构
codeExecution.ts:
- 实现 Pyodide + Piston 混合执行架构
- Python 图形代码使用 Pyodide 在浏览器端执行
- 其他代码使用 Piston API 在服务端执行
- 响应增加 images、engine、executionTime 字段
executor.ts:
- 集成代码分析工具判断执行方式
- 支持返回 requiresPyodide 标记浏览器端执行需求
- 传递图片数据到执行结果
|
2025-12-19 20:18:58 +08:00 |
|
gaoziman
|
ef45e14534
|
feat(工具): 添加 Pyodide 浏览器端 Python 运行时
- 实现基于 WebAssembly 的 Python 运行环境
- 支持 matplotlib 图形渲染并输出为 Base64 图片
- 实现中文字体加载(Noto Sans SC)
- 预注册 seaborn-whitegrid 等多种图表样式
- 单例模式管理 Pyodide 实例,优化加载性能
|
2025-12-19 20:18:34 +08:00 |
|
gaoziman
|
ba4e00a341
|
feat(工具): 添加代码分析工具模块
- 新增 codeAnalyzer.ts 用于分析代码特征
- 实现 detectGraphicsCode 检测图形绘制代码
- 实现 shouldUsePyodide 判断是否使用浏览器端执行
- 支持 matplotlib、seaborn、plotly 等可视化库检测
|
2025-12-19 20:18:11 +08:00 |
|
gaoziman
|
bfcaf5a53a
|
feat(类型): 添加工具调用相关类型定义
- 添加 ToolCall 接口定义工具调用记录
- 添加 ToolResult 接口定义工具执行结果
- 支持图片数据、执行引擎和执行时间属性
|
2025-12-19 20:17:50 +08:00 |
|
gaoziman
|
c59dee8db9
|
feat(数据库): 为消息表添加 images 字段支持
- 在 messages 表添加 images jsonb 字段用于存储代码执行产生的图片
- 新增迁移文件 0003_melted_shockwave.sql
- 更新迁移元数据和快照
|
2025-12-19 20:17:28 +08:00 |
|
gaoziman
|
aa469438c2
|
refactor(components): 全局组件适配暗色主题
- 聊天页面 header 和输入区域背景色使用 CSS 变量
- ChatInput 输入框背景色适配
- ModelSelector/ToolsDropdown 下拉菜单背景色适配
- QuickActions 按钮背景色适配
- Sidebar 侧边栏及下拉菜单背景色适配
- UserMenu 悬停效果颜色适配
|
2025-12-19 15:58:15 +08:00 |
|
gaoziman
|
0b5b67174f
|
feat(settings): 实现数据导出和清除聊天功能
- 添加导出聊天数据功能,支持 JSON 格式下载
- 添加清除所有聊天功能,带确认对话框
- 显示待删除对话和消息数量统计
- 优化 SettingsSection 组件支持暗色主题
|
2025-12-19 15:57:50 +08:00 |
|
gaoziman
|
749247affa
|
feat(ui): 添加 ConfirmDialog 确认对话框组件
- 支持默认和危险两种样式变体
- 支持 ESC 键关闭和点击外部关闭
- 支持 loading 状态和自定义按钮文案
- 支持自定义内容区域
|
2025-12-19 15:57:31 +08:00 |
|
gaoziman
|
199772a95d
|
feat(api): 添加对话数据导出和清除 API
- 新增 GET /api/conversations/export 导出所有对话数据
- 新增 GET /api/conversations/all 获取对话统计信息
- 新增 DELETE /api/conversations/all 清除所有对话和消息
|
2025-12-19 15:57:12 +08:00 |
|
gaoziman
|
8aab630af6
|
feat(theme): 添加暗色主题支持
- 新增 [data-theme="dark"] CSS 变量定义
- 设置暗色模式主背景色为 #29252B
- 配置暗色模式下的品牌色、背景色、文字色、边框色
- 调整暗色模式阴影效果
- 侧边栏宽度调整为 280px
|
2025-12-19 15:56:52 +08:00 |
|
gaoziman
|
b400781b89
|
refactor(sidebar): 用户区域集成弹出菜单
- 移除原有的用户信息链接样式
- 集成 UserMenu 组件替代原有设计
- 支持主题切换、设置导航、登出等功能
|
2025-12-19 13:58:54 +08:00 |
|
gaoziman
|
f81a1f0f2d
|
refactor(settings): 重构设置页面布局和交互
- 优化页面布局,移除侧边栏采用独立页面设计
- 集成 ModelCardSelector 替代下拉选择
- 集成 FontSizePicker 支持字体大小调整
- 顶部导航栏添加主题切换按钮
- 移除冗余的偏好设置和危险区域板块
- 优化整体视觉效果和交互体验
|
2025-12-19 13:58:22 +08:00 |
|
gaoziman
|
6d1bf7275b
|
style(css): 添加字体大小 CSS 变量和弹出动画
- 新增 --font-size-base CSS 变量支持全局字体大小
- body 使用 CSS 变量控制字体大小
- 添加 popUp 动画效果用于弹出菜单
|
2025-12-19 13:57:52 +08:00 |
|
gaoziman
|
5444e7a579
|
feat(providers): 添加全局设置提供者
- 新增 SettingsProvider 组件用于管理全局设置状态
- 在 Layout 中集成 SettingsProvider
- 应用启动时自动加载字体大小和主题设置
|
2025-12-19 13:57:22 +08:00 |
|
gaoziman
|
29b2d99a82
|
feat(ui): 新增设置相关 UI 组件
- FontSizePicker: 字体大小选择器,支持实时预览
- ModelCardSelector: 模型卡片选择组件(Haiku/Sonnet/Opus)
- UserMenu: 用户菜单弹出组件,支持主题切换和设置导航
|
2025-12-19 13:56:22 +08:00 |
|
gaoziman
|
2de8cd64e3
|
feat(hooks): useSettings 添加 fontSize 支持
- Settings 接口新增 fontSize 属性
- 默认设置中添加 fontSize: 15
|
2025-12-19 13:55:52 +08:00 |
|
gaoziman
|
9a27a11385
|
feat(api): Settings API 支持字体大小设置
- GET 接口返回 fontSize 字段
- PUT 接口支持更新 fontSize 设置
- 添加字体大小范围限制 (12-20)
|
2025-12-19 13:55:24 +08:00 |
|
gaoziman
|
b869a443e2
|
feat(database): 添加全局字体大小设置字段
- 在 user_settings 表中新增 font_size 字段 (12-20)
- 添加数据库迁移文件支持字段升级
- 默认字体大小设置为 15px
|
2025-12-19 13:54:56 +08:00 |
|
gaoziman
|
f405f298aa
|
refactor(pages): 重构核心页面支持实时数据
首页 (page.tsx):
- 集成 useConversations 和 useSettings hooks
- 实现快捷操作创建新会话
- 添加加载状态处理
聊天页 (chat/[id]/page.tsx):
- 集成 useStreamChat 实现流式对话
- 支持 AI 思考内容展示
- 优化消息发送和模型切换
- 添加错误处理和重试机制
设置页 (settings/page.tsx):
- 重构为完整的设置管理界面
- 支持 API 配置(URL、密钥)
- 支持默认模型和工具选择
- 支持主题和语言设置
- 添加设置保存和同步功能
|
2025-12-18 11:43:59 +08:00 |
|
gaoziman
|
bb5996240a
|
feat(api): 添加后端 API 路由
- /api/chat: 流式聊天接口,支持 Claude API 调用
- /api/conversations: 会话列表和创建接口
- /api/conversations/[id]: 单个会话详情和删除
- /api/models: 可用模型列表接口
- /api/settings: 用户设置读写接口
- /api/tools: 可用工具列表接口
|
2025-12-18 11:43:32 +08:00 |
|
gaoziman
|
ab9dd5aff8
|
feat(services): 添加 AI 工具服务实现
- codeExecution: 代码执行工具定义
- webFetch: 网页抓取工具定义
- webSearch: 网络搜索工具定义
- executor: 工具执行器统一处理
|
2025-12-18 11:31:10 +08:00 |
|
gaoziman
|
e4cdcc5141
|
feat(hooks): 添加核心业务逻辑 hooks
- useConversations: 会话列表 CRUD 管理
- useSettings: 用户设置读取和更新
- useStreamChat: 流式聊天消息处理
- 支持 SSE 流式响应
- 支持思考内容显示
- 支持错误处理和重试
|
2025-12-18 11:30:42 +08:00 |
|
gaoziman
|
3a244eb989
|
refactor(layout): 重构侧边栏支持实时会话管理
- 集成 useConversations 和 useSettings hooks
- 实现新建会话功能并自动跳转
- 实现删除会话功能及确认交互
- 按时间分组显示会话列表(今天、昨天、更早)
- 添加加载状态和操作菜单
- 优化会话列表的交互体验
|
2025-12-18 11:30:21 +08:00 |
|