fix: 修复记忆力差和跨群聊上下文泄漏
记忆嵌入修复: - 新增 memory.APIEmbedder 使用 text-embedding-3-small 替代 SimpleEmbedder - Extractor 保存记忆时自动生成向量嵌入 - Embedder 接口增加 IsAvailable() 方法 跨群聊上下文隔离: - Thinker 新增 thinkSessionID 字段,performThink 启动时绑定会话 - storeThought 优先使用绑定的 session 推送思考结果 - 防止思考过程中其他群消息改变 activeSessionID 导致串台 Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -119,12 +119,21 @@ func main() {
|
||||
memStore = memory.NewStore(cfg.DatabaseURL)
|
||||
defer memStore.Close()
|
||||
|
||||
memRetriever = memory.NewRetriever(memStore, nil)
|
||||
// 使用真实嵌入模型 (text-embedding-3-small),通过 OpenAI 兼容 API
|
||||
memEmbedder := memory.NewAPIEmbedder(cfg.LLMBaseURL, cfg.LLMAPIKey, "text-embedding-3-small")
|
||||
if memEmbedder.IsAvailable() {
|
||||
log.Println("记忆嵌入服务已就绪 (text-embedding-3-small)")
|
||||
} else {
|
||||
log.Println("⚠ 记忆嵌入服务未配置 API Key,降级为字符频率嵌入(检索质量较差)")
|
||||
}
|
||||
|
||||
memRetriever = memory.NewRetriever(memStore, memEmbedder)
|
||||
|
||||
// 记忆提取器使用 memory purpose 适配器
|
||||
memExtractor = memory.NewExtractor(memStore, func(ctx context.Context, messages []model.LLMMessage) (*model.LLMResponse, error) {
|
||||
return memoryAdapter.Chat(ctx, messages)
|
||||
})
|
||||
memExtractor.SetEmbedder(memEmbedder)
|
||||
log.Println("记忆提取器已就绪")
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user