Mem0MemoryStore
Mem0MemoryStore
Mem0MemoryStore는 Mem0 클라우드 API를 백엔드로 사용하는 메모리 저장소예요. Mem0MemoryRetriever, Mem0MemoryWriter, Mem0 Memory Tools가 공유하는 데이터 계층이에요.
출처: Mem0MemoryStore
본문
개요
Mem0MemoryStore는 Mem0 클라우드 API를 감싸고 두 가지 핵심 메서드를 제공해요.
add_memories—ChatMessage객체 목록을 Mem0의 기억으로 저장해요.search_memories— 쿼리와 관련된 기억을 Mem0에서 검색해요.
기억 범위는 Mem0 엔티티 ID 중 적어도 하나로 지정해요: user_id, run_id, agent_id, app_id. 이들은 런타임 파라미터라서, 저장소 인스턴스 하나로 여러 사용자·세션을 서빙할 수 있어요.
add_memories의 infer 파라미터는 Mem0이 들어오는 메시지를 처리하는 방식을 제어해요.
infer=True이면 Mem0이 메시지에서 기억을 자동으로 추출해요. 전체 Agent 턴을 저장할 때 유용해요.infer=False이면 주어진 메시지 텍스트를 그대로 저장해요. 정확한 기억 텍스트가 이미 상류에서 선택됐을 때 유용해요.
설치
Mem0 통합을 설치해요.
pip install mem0-haystack
Mem0 API 키를 설정해요.
export MEM0_API_KEY="your-mem0-api-key"
사용법
단독 사용:
from haystack.dataclasses import ChatMessage
from haystack_integrations.memory_stores.mem0 import Mem0MemoryStore
store = Mem0MemoryStore()
store.add_memories(
messages=[ChatMessage.from_user("Alice prefers concise Python examples.")],
user_id="alice",
infer=False,
)
memories = store.search_memories(
query="What does Alice prefer?",
user_id="alice",
top_k=3,
)
print([msg.text for msg in memories])
여러 엔티티 ID로 범위 지정:
Mem0은 읽기·쓰기 범위를 user_id, run_id, agent_id, app_id로 좁힐 수 있어요. 호출 시점에 어떤 조합이든 전달하면 돼요.
store.add_memories(
messages=[
ChatMessage.from_user("Alice is working on a documentation search system.")
],
user_id="alice",
run_id="docs-assistant-session-1",
infer=True,
)
memories = store.search_memories(
query="What project is Alice working on?",
user_id="alice",
run_id="docs-assistant-session-1",
)
print([msg.text for msg in memories])
범위 안의 모든 기억 검색:
관련성 검색 없이 제공된 범위와 일치하는 모든 기억을 반환하려면 query=None을 전달해요.
all_memories = store.search_memories(query=None, user_id="alice")
print([msg.text for msg in all_memories])