mem0
mem0 copied to clipboard
m.search(query="我喜欢什么工作", user_id="alice"),search方法中的query参数变化,不会影响score的值
🐛 Describe the bug
import os
import json
import time
from mem0 import Memory
os.environ["DEEPSEEK_API_KEY"] = "sk-cc99"
os.environ["OPENAI_API_KEY"] = "sk-cc99"
# ✅ 修正:embedding_model_dims 改为 768,与 mxbai-embed-large 一致
config = {
"llm": {
"provider": "deepseek",
"model": "deepseek-chat",
"temperature": 0.6,
"max_tokens": 2000,
# "top_p": 1.0
},
"embedder": {
"provider": "ollama",
"config":{
"model": "mxbai-embed-large",
"embedding_dims":1024
}
},
"vector_store": {
"provider": "qdrant",
"config": {
"collection_name": "mem2_0044",
"host": "192.168.100.137",
"port": 6333,
"embedding_model_dims": 1024
}
},
"reset_vector_store": True # ✅ 强制重建索引,清除旧的 1536 维数据
}
m = Memory.from_config(config)
messages = [
{"role": "user", "content": "我喜欢武侠电影,尤其是十面埋伏。"},
{"role": "user", "content": "我喜欢的书籍是十万个为什么"},
{"role": "user", "content": "我喜欢的工作是写代码"},
{"role": "user", "content": "我喜欢的颜色是红色"},
{"role": "user", "content": "我喜欢的明星是张凌赫"}
]
# # # 添加记忆
m.add(messages, user_id="alice", metadata={"category": "movies"})
# time.sleep(2) # 等待向量入库(Elasticsearch 可能有延迟)
# 再检索
memories = m.search(query="我喜欢什么工作", user_id="alice")
# memories1 = m._search_vector_store(query="我喜欢什么电影")
print(json.dumps(memories, indent=2, ensure_ascii=False))
# print(json.dumps(memories1, indent=2, ensure_ascii=False))
#打印当前时间戳
print(time.strftime("%Y-%m-%d %H:%M:%S.%SSS", time.localtime(time.time())))
# all_memories = m.get_all(user_id="alice")
# print(json.dumps(all_memories, indent=2, ensure_ascii=False))
上面这段代码中,如果我传入memories = m.search(query="我喜欢什么工作", user_id="alice")
{
"results": [
{
"id": "ea59232f-ec4e-4d0f-9c0c-b1b815f1a444",
"memory": "喜欢的明星是张凌赫",
"hash": "23b4edc5d03900597cd10f808386d4bc",
"metadata": {
"category": "movies"
},
"score": 0.69316304,
"created_at": "2025-10-26T20:03:28.125814-07:00",
"updated_at": null,
"user_id": "alice"
},
{
"id": "a01b74fe-22e7-465d-8eff-2aa1946e886e",
"memory": "喜欢武侠电影,尤其是十面埋伏",
"hash": "8af06143756459df8aa5f09c9d5846e0",
"metadata": {
"category": "movies"
},
"score": 0.67794466,
"created_at": "2025-10-26T20:03:27.663636-07:00",
"updated_at": null,
"user_id": "alice"
},
{
"id": "d3339161-6fbc-4f65-8ed8-7a4221d13147",
"memory": "喜欢的工作是写代码",
"hash": "fed887a6565d3c3efb48f67d39c3655a",
"metadata": {
"category": "movies"
},
"score": 0.60878694,
"created_at": "2025-10-26T20:03:27.918595-07:00",
"updated_at": null,
"user_id": "alice"
}
]
}
如果我传入memories = m.search(query="我喜欢什么电影", user_id="alice"),依然返回
{
"results": [
{
"id": "ea59232f-ec4e-4d0f-9c0c-b1b815f1a444",
"memory": "喜欢的明星是张凌赫",
"hash": "23b4edc5d03900597cd10f808386d4bc",
"metadata": {
"category": "movies"
},
"score": 0.69316304,
"created_at": "2025-10-26T20:03:28.125814-07:00",
"updated_at": null,
"user_id": "alice"
},
{
"id": "a01b74fe-22e7-465d-8eff-2aa1946e886e",
"memory": "喜欢武侠电影,尤其是十面埋伏",
"hash": "8af06143756459df8aa5f09c9d5846e0",
"metadata": {
"category": "movies"
},
"score": 0.67794466,
"created_at": "2025-10-26T20:03:27.663636-07:00",
"updated_at": null,
"user_id": "alice"
},
{
"id": "d3339161-6fbc-4f65-8ed8-7a4221d13147",
"memory": "喜欢的工作是写代码",
"hash": "fed887a6565d3c3efb48f67d39c3655a",
"metadata": {
"category": "movies"
},
"score": 0.60878694,
"created_at": "2025-10-26T20:03:27.918595-07:00",
"updated_at": null,
"user_id": "alice"
}
]
}
"score"值没有任何变化,请问是什么原因