Commit Graph

9 Commits

Author SHA1 Message Date
minecraft1024a
64e3d6d56b fix(cache): 兼容元组形式的 embedding_result
get_embedding 方法的返回值可能是一个包含向量和模型名称的元组
2025-11-19 22:44:52 +08:00
雅诺狐
383f704b53 Remove unused imports across multiple modules
Cleaned up various files by removing unused or redundant import statements to improve code readability and reduce potential confusion. No functional changes were made.
2025-11-19 22:44:32 +08:00
minecraft1024a
b3d02ff1c3 feat(cache): 用文件修改时间替换源码哈希生成缓存键
BREAKING CHANGE: CacheManager 的 _generate_key/get/set 方法签名变更,现在需要传入 tool_file_path 而非 tool_class 实例,所有调用方需跟进适配。
2025-11-19 22:44:01 +08:00
minecraft1024a
04b6b20189 修复缓存管理器中的异常处理逻辑
- 将捕获的异常类型从 `TypeError` 和 `OSError` 修改为 `Exception`,以涵盖更多潜在错误。
- 增强日志记录,提供更清晰的类名和简化的错误信息,便于调试和问题追踪。
2025-11-19 22:44:00 +08:00
minecraft1024a
6568ea49da feat(cache): 增强嵌入向量处理的健壮性和验证
- 新增 `_validate_embedding` 方法,用于在存入缓存前对嵌入向量进行严格的格式检查、维度验证和数值有效性校验。
- 在缓存查询 (`get`) 和写入 (`set`) 流程中,集成此验证逻辑,确保只有合规的向量才能被处理和存储。
- 增加了在L1和L2向量索引操作中的异常捕获,防止因向量处理失败导致缓存功能中断,提升了系统的整体稳定性。
2025-11-19 22:43:59 +08:00
雅诺狐
48ed62deae Refactor cache L2 storage to use SQLAlchemy DB
Replaces the L2 cache layer's SQLite implementation with an async SQLAlchemy-based database model (CacheEntries). Updates cache_manager.py to use db_query and db_save for cache operations, adds semantic cache handling with ChromaDB, and introduces async cache clearing and expiration cleaning methods. Adds the CacheEntries model and integrates it into the database API.
2025-11-19 22:43:59 +08:00
minecraft1024a
438be4fe38 chore(deps): 移除未使用的 ModelTaskConfig 导入
从 cache_manager.py 文件中删除了对 `src.config.api_ada_configs` 中 `ModelTaskConfig` 的导入,因为它在该文件中并未被使用。

添加了记忆系统的大饼

Co-authored-by: 雅诺狐 <foxcyber907@users.noreply.github.com>
2025-11-19 22:43:46 +08:00
minecraft1024a
da73c5593e refactor(cache): 重构缓存系统为分层语义缓存
将原有的基于文件的 `ToolCache` 替换为全新的 `CacheManager`,引入了更复杂和高效的分层语义缓存机制。

新系统特性:
- **分层缓存**:
  - L1 缓存: 内存字典 (KV) + FAISS (向量),用于极速访问。
  - L2 缓存: SQLite (KV) + ChromaDB (向量),用于持久化存储。
- **语义缓存**: 利用嵌入模型 (Embedding) 对查询进行向量化,实现基于语义相似度的缓存命中,显著提高了缓存命中率。
- **自动失效**: 缓存键包含工具源代码的哈希值,当工具代码更新时,相关缓存会自动失效,避免了脏数据问题。
- **异步支持**: 缓存的 `get` 和 `set` 方法现在是异步的,以适应项目中异步化的工具调用流程。

`web_search_tool` 已更新以使用新的 `CacheManager`,在调用缓存时传递 `tool_class` 和 `semantic_query` 以充分利用新功能。

Co-Authored-By: tt-P607 <68868379+tt-P607@users.noreply.github.com>
2025-11-19 22:43:46 +08:00
雅诺狐
f318801942 Add ToolCache class for tool result caching
Introduces a ToolCache class to manage caching of tool invocation results with support for both exact and approximate (similarity-based) query matching. Includes methods for cache retrieval, storage, expiration, cleanup, and statistics. This helps improve efficiency by reusing previous results and reducing redundant tool executions.

Co-Authored-By: tt-P607 <68868379+tt-P607@users.noreply.github.com>
2025-11-19 22:43:45 +08:00