Files
cherry-studio/docs
LiuVaayne 29af30b8d2 Feat/memory (#6454)
* feat(Memory): add memory management functionality with settings modal and integration into sidebar

* Add user memory search to chat completion flow

Enable assistants to use memory search results for more personalized
responses when enableMemory is true. Add enableMemory flag to Assistant
type.

* Add MemoryService and memory types interfaces

* Add memory settings tab to AssistantSettings

* feat(memory): implement Phase 1 core backend infrastructure

- Add Memory IPC channels for full CRUD operations
- Create main process MemoryService with LibSQL storage
- Implement memory database schema with history tracking
- Add IPC handlers for all memory operations
- Update preload API to expose memory functionality
- Update renderer MemoryService to use IPC instead of mock data
- Add comprehensive error handling and logging
- Support memory deduplication using SHA256 hashes
- Implement audit trail for all memory changes

Core features:
- Memory add/search/list/delete/update operations
- Full history tracking for changes
- User/agent/run filtering support
- Prepared for vector embeddings (Phase 2)

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

*  feat: Implement memory vector search and hybrid search with LibSQL native vector support

- Implemented native vector support using `F32_BLOB` for storing embeddings directly in LibSQL.
- Created vector index using `libsql_vector_idx()` for efficient similarity search.
- Implemented `vectorSearch()` using `vector_top_k()` for fast nearest neighbor search based on cosine similarity.
- Implemented `hybridSearch()` combining text search and vector similarity search.
- Added `addBatchMemories()` to efficiently add multiple memories with embeddings.
- Added embedding model configuration via `setEmbeddingModel()`.
- Integrated embedding generation using `EmbeddingService`.
- Updated database schema with vector column and index.
- Added methods for embedding conversion and similarity calculations.
- Updated documentation with vector search details and schema changes.
- Improved memory management with embedding caching and clearing.
- Added `findSimilarMemories` to avoid duplicates
- Added embedding stats and cache methods

* feat(memory): add EmbeddingService and VectorSearch for memory embedding and search functionality

* fix(memory): update vector operations to match libsql documentation

- Fix vector32() function usage by removing quotes from embedding parameters
- Replace vector_top_k with standard queries to avoid index dependency
- Make embedding dimensions flexible by removing fixed 1536 dimension
- Add NULL checks for embeddings in all vector operations
- Update memory update method to regenerate embeddings
- Use parameterized queries to prevent SQL injection

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* update implement plan

* feat(memory): implement Phase 3 - UI and integration components

- Create Memory Page UI with full CRUD operations
  - Add, delete, search, and filter memories
  - User and date range filtering
  - Bulk operations support

- Implement Memory Processing Pipeline
  - Automatic fact extraction from conversations
  - Intelligent memory updates (add/update/delete)
  - Background processing for non-blocking UI

- Integrate memory search into ApiService
  - Inject relevant memories into conversation context
  - Post-conversation memory processing
  - Assistant-specific memory isolation

- Add Assistant Memory Settings
  - Toggle memory per assistant
  - View memory statistics
  - Configure from assistant settings panel

- Complete memory feature integration
  - Redux store already implemented
  - Memory service backend ready
  - Full end-to-end functionality

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* docs: update memory feature implementation plan to reflect Phase 3 completion

- Mark Phase 3 (UI and Integration) as completed
- Update implementation progress to 90%
- Document all completed components and features
- Add usage instructions for the memory feature
- List key implementation files for reference

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Revert "feat(memory): implement Phase 3 - UI and integration components"

This reverts commit 422463d0f7.

*  feat: Implement memory management for assistants

- Introduced `MemoryProcessor` to handle fact extraction, memory updates, and searches.
- Added `AssistantMemorySettings` component to allow enabling/disabling memory and viewing memory statistics.
- Integrated memory functionality with assistant settings.
- Implemented memory-related prompts and schema validation.
- Added memory service calls for adding, updating, deleting, and searching memories.

* fix: Update memory settings form handling in AssistantMemorySettings component

* feat(memory): implement Phase 3 - UI and integration components

- Create Memory Page UI with full CRUD operations
  - Add, delete, search, and filter memories
  - User and date range filtering
  - Bulk operations support

- Implement Memory Processing Pipeline
  - Automatic fact extraction from conversations
  - Intelligent memory updates (add/update/delete)
  - Background processing for non-blocking UI

- Integrate memory search into ApiService
  - Inject relevant memories into conversation context
  - Post-conversation memory processing
  - Assistant-specific memory isolation

- Add Assistant Memory Settings
  - Toggle memory per assistant
  - View memory statistics
  - Configure from assistant settings panel

- Complete memory feature integration
  - Redux store already implemented
  - Memory service backend ready
  - Full end-to-end functionality

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: update memory search method and integrate form handling in AssistantMemorySettings

* feat(memory): enhance memory service with new IPC channels and configuration updates

* refactor: remove VectorSearch service and update memory configuration methods

- Deleted the VectorSearch service implementation from the memory services.
- Updated the memory configuration method in the preload index from `updateConfig` to `setConfig`.
- Adjusted the corresponding call in the MemoryService to reflect the new method name.

* refactor(memory): remove embedding cache and related methods from MemoryService

* feat(memory): update MemoryService initialization to handle configuration updates and errors

* feat(memory): centralize SQL queries for MemoryService to improve maintainability

* feat: Enhance memory management with user context and CRUD operations

- Updated memory feature analysis with current implementation status and new functionalities.
- Added user context management, allowing automatic filtering based on selected user.
- Implemented full CRUD operations for memories, including add, edit, and delete functionalities.
- Introduced user management system with validation rules for user IDs.
- Enhanced internationalization support for memory features across multiple languages.
- Improved UI components for memory management, including user switching and memory editing modals.
- Updated MemoryService and MemoryProcessor to handle user-specific memory operations.
- Added comprehensive testing and documentation for new features.

* feat(memory): enhance UI components and user interactions in MemoriesPage

* feat(memory): integrate user context into memory operations and enhance user management

* feat(memory): add user deletion and reset functionality for specific users

* feat(memory): enhance localization for user management and memory operations in multiple languages

* feat(memory): remove reset functionality and add user listing feature in memory service

* feat(memory): enhance memory processing by adding fallback models and improving configuration handling

* feat(memory): refactor fact extraction and memory update logic to use fetchGenerate for LLM calls

* feat(memory): iinject memory to chat

* feat(memory): enhance memory handling by ensuring fallback to empty array and improving logging in memory search

* feat(memory): implement pagination for memory list operations

- Add offset parameter to MemoryListOptions interface for pagination support
- Update MemoryService.list() method to properly handle offset parameter
- Implement client-side pagination with 50 items per page default
- Add pagination controls with page size options (20, 50, 100, 200)
- Include pagination state management (currentPage, pageSize)
- Load all memories at once and paginate on client side for better search performance
- Reset pagination when switching users or performing searches
- Update memory CRUD operations to maintain current pagination state
- Add styled pagination component with consistent design

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix(memory): correct state variable name in user switch handler

* feat(memory): add comprehensive memory feature guide in Chinese

* feat: Enhance memory management and citation handling

- Updated BaseApiClient to retrieve memory references from cache and format them for use.
- Modified CitationBlock to include memory references in rendering logic.
- Enhanced CitationsList to display memory citations with appropriate formatting.
- Improved MemoriesPage layout and functionality, including debounced search and user management.
- Refactored MemoryProcessor to handle memory updates and search queries more effectively.
- Updated API service to include memory in external tool results.
- Adjusted memory-related types and schemas for better integration.
- Enhanced createCitationBlock utility to accommodate memory data.

* feat(memory): update memory localization keys and descriptions for improved clarity

* feat(memory): add descriptions to memory localization files and improve error handling in MemoryService

*  style: Remove blank lines and fix typo in settings

- Removed blank lines in README files.
- Fixed a typo in the assistant settings label for the memory tab.

revert: revert format changes

revert: revert format changes

* feat(memory): enhance memory update logic and improve prompt clarity

* feat(memory): implement global memory toggle and enhance memory settings UI

* feat(memory): refine hybrid search to focus on vector similarity and update localization files

* feat(i18n): add memory configuration prompts in multiple languages

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-06-23 21:32:04 +08:00
..
2025-06-23 21:32:04 +08:00
2025-04-24 18:14:21 +08:00
2024-09-27 00:13:24 +08:00

banner

English | 中文 | 日本語 | 官方网站 | 文档 | 开发 | 反馈

Featured|HelloGitHub kangfenmao%2Fcherry-studio | Trendshift Cherry Studio - AI Chatbots, AI Desktop Client | Product Hunt

🍒 Cherry Studio

Cherry Studio 是一款支持多个大语言模型(LLM)服务商的桌面客户端,兼容 Windows、Mac 和 Linux 系统。

👏 欢迎加入 Telegram 群组Discord | QQ群(575014769)

❤️ 喜欢 Cherry Studio? 点亮小星星 🌟赞助开发者! ❤️

GitCode✖️Cherry Studio【新源力】贡献挑战赛

banner

📖 使用教程

https://docs.cherry-ai.com

🌠 界面

🌟 主要特性

  1. 多样化 LLM 服务支持
  • ☁️ 支持主流 LLM 云服务:OpenAI、Gemini、Anthropic、硅基流动等
  • 🔗 集成流行 AI Web 服务:Claude、Peplexity、Poe、腾讯元宝、知乎直答等
  • 💻 支持 Ollama、LM Studio 本地模型部署
  1. 智能助手与对话
  • 📚 内置 300+ 预配置 AI 助手
  • 🤖 支持自定义创建专属助手
  • 💬 多模型同时对话,获得多样化观点
  1. 文档与数据处理
  • 📄 支持文本、图片、Office、PDF 等多种格式
  • ☁️ WebDAV 文件管理与数据备份
  • 📊 Mermaid 图表可视化
  • 💻 代码高亮显示
  1. 实用工具集成
  • 🔍 全局搜索功能
  • 📝 话题管理系统
  • 🔤 AI 驱动的翻译功能
  • 🎯 拖拽排序
  • 🔌 小程序支持
  • ⚙️ MCP(模型上下文协议) 服务
  1. 优质使用体验
  • 🖥️ Windows、Mac、Linux 跨平台支持
  • 📦 开箱即用,无需配置环境
  • 🎨 支持明暗主题与透明窗口
  • 📝 完整的 Markdown 渲染
  • 🤲 便捷的内容分享功能

📝 开发计划

我们正在积极开发以下功能和改进:

  1. 🎯 核心功能
  • 选择助手 - 智能内容选择增强
  • 深度研究 - 高级研究能力
  • 全局记忆 - 全局上下文感知
  • 文档预处理 - 改进文档处理能力
  • MCP 市场 - 模型上下文协议生态系统
  1. 🗂 知识管理
  • 笔记与收藏功能
  • 动态画布可视化
  • OCR 光学字符识别
  • TTS 文本转语音支持
  1. 📱 平台支持
  • 鸿蒙版本 (PC)
  • Android 应用(第一期)
  • iOS 应用(第一期)
  • 多窗口支持
  • 窗口置顶功能
  1. 🔌 高级特性
  • 插件系统
  • ASR 语音识别
  • 助手与话题交互重构

在我们的项目面板上跟踪进展并参与贡献。

想要影响开发计划?欢迎加入我们的 GitHub 讨论区 分享您的想法和反馈!

🌈 主题

欢迎 PR 更多主题

🤝 贡献

我们欢迎对 Cherry Studio 的贡献!您可以通过以下方式贡献:

  1. 贡献代码:开发新功能或优化现有代码
  2. 修复错误:提交您发现的错误修复
  3. 维护问题:帮助管理 GitHub 问题
  4. 产品设计:参与设计讨论
  5. 撰写文档:改进用户手册和指南
  6. 社区参与:加入讨论并帮助用户
  7. 推广使用:宣传 Cherry Studio

参考分支策略了解贡献指南

入门

  1. Fork 仓库Fork 并克隆到您的本地机器
  2. 创建分支:为您的更改创建分支
  3. 提交更改:提交并推送您的更改
  4. 打开 Pull Request:描述您的更改和原因

有关更详细的指南,请参阅我们的 贡献指南

感谢您的支持和贡献!

🔗 相关项目

  • one-api:LLM API 管理及分发系统,支持 OpenAI、Azure、Anthropic 等主流模型,统一 API 接口,可用于密钥管理与二次分发。

  • ublacklist:屏蔽特定网站在 Google 搜索结果中显示

🚀 贡献者



Star 记录

Star History Chart