bug(vector_stores/Azure-ai-search): 遥测辅助程序操作内存索引 — 用户的内存会默默地重新定义为遥测 ID
构成部分
击倒
说明
页:1
‘AzureAISearch.getUserId ()'和'setUserId ( ()'是‘VectorStore'接口'的"移民收集".
帮助者, 但两者都使用 “ this. SearchClient ” , 它“ 初始化( ) ” 绑定到 Q this. indexName —— 内存
指数** (mem0-ts/src/oss/src/vector stores/azure ai search.ts:122-126')。 " 记忆-移民 " 指数 GetUserId()'在`:638'创建,从未读取或写入数据。
setUserId ()' (:676-701') 搜索内存索引,取出** 第一张内存文件'的id'和问题 University OrUpload Documents ([{ id: <the memory' s id],用户 id: <遥测 id > )' at ::691'. “用户”是
" 可过滤性:真实性 " 在内存指数(:188-195')上,每个读取路径过滤器(:357-362',:396', :416'、:427'、:570-575')。 所以,记忆:
- 停止与其所有者的“用户-id”过滤器相匹配,从而从他们的“搜索()”/“getAll()”中消失;
- 不能再用`deleteAll()'删除;
- 并开始匹配 遥测识别范围代替。
GetUserId ()' (:613-670') 是镜像: 它在:642' 搜索相同的内存索引并返回 ** 第一个记忆文件的用户-id-'作为这个实例的遥测id——另一个租户的身份识别符——或,如果
没有文档, 上传一个幽灵QQ id: , 用户 id: QQ行入记忆索引 。
[:658] (中文(简体) ).
自动运行 。 建造者起火 " 自动启动 " (memory/index.ts:257',:268'),结束
(a) 将“远地测量法”(:587')-“远地测量法”(:600')-“频率Store.setUserId(.')(:611')。 captureEvent' (:621')在每次add'/earch'/update'/delete'/deleteAll'/`reset'/时,都给同样的帮助者打电话。
获得一切。 没有选择进入,“MEM0 TELEMTRY=false”不能阻止它(见下文)。
- 重现步骤
在“ mem0-ts/src/oss/tests/” 中丢弃此文件并运行 :
pnpm exec jest -- config jest.config.js --testPathPattern azure 遥测
它只嘲弄Azure SDK;“记忆”和“AzureAISearch”是Repo的真正代码。
/// < 参考类型="差" / > 进程.env.MEM0 TELEMTRY ="虚假";//证明选择退出无济于事. process.env.MEM0 DIR = “/tmp/mem0-Azure-repro"; //可写出,因此使用缓存遥测id process.env.OPENAI API KEY = process.env.OPENAI API KEY ||"sk";
jest.mock (""@Azure/ search-documents"), () {{ 电话:任何[] = [; (Global This as any.). azureCalls = 电话; c. 调用.push(c);
类搜索客户 { 索引:字符串; 构造器( 端点:字符串,索引:字符串, cred: any){ b. 该指数=指数; rec ({ op: "New SearchClient", 索引 }); {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? aync 搜索( q: 字符串, 选择? : 任何) { rec ({ op: "search", 索引: this.index, options }; 连结结果=(同步函数* (){ / 属于用户"ALICE"的现有内存. 产量 {文档 : { id: "memory-doc-1",用户 id:"ALice",数据:"ALice喜欢茶"}; · ()) 返回{结果}; {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? 自动同步 . . . . . . .
内容来源: mem0ai/mem0