SDK 레퍼런스
공식 클라이언트 라이브러리. REST API와 동일한 표면 + 몇 가지 편의 헬퍼.
설치
pip install neoali-memgen초기화
from memgen import MemgenClient
client = MemgenClient(
api_key="mg-...",
base_url="https://memgen.neoali.com",
timeout=120.0,
)메모리 CRUD
add(messages, ...)
비동기 추출 + 저장. 가장 많이 쓰는 쓰기 호출.
result = client.add(
messages=[
{"role": "user", "content": "..."},
{"role": "assistant", "content": "..."},
],
user_id="alice",
agent_id="bot_v2",
run_id="session-001",
metadata={"channel": "chat"},
categories=["preferences"],
)
for mem in result.memories:
print(mem["id"], mem["memory"])extract(messages,(...) memgen-only
동기 추출. 구조화된 레이어드 결과를 즉시 반환. store=True면 저장도 함께.
r = client.extract(
messages=[{"role": "user", "content": "I adopted a puppy."}],
user_id="alice",
store=True,
extension="ai_tutor",
)
print(r.summary, r.entities, r.tags, r.key_facts, r.importance, r.memory_id)search(query, ...)
hits = client.search(
query="food preferences",
user_id="alice",
top_k=10,
threshold=0.3,
)
for h in hits.results:
print(h["score"], h["memory"])list / get / update / delete
page = client.list(user_id="alice", page=1, page_size=50)
mem = client.get(memory_id)
client.update(memory_id, memory="updated text")
client.delete(memory_id)
client.delete_all(user_id="alice") # GDPR
events = client.history(memory_id)프로젝트 정책
프로젝트당 한 번 추출 가이드라인 + 라벨 세트 설정. 이후 모든 add / extract 호출이 이 설정을 사용.
client.project.update(
project_id="<your-project-id>",
extraction_policy="""
Extract learning context for an AI tutor:
- skill_mastered, skill_struggling
- preference (visual, examples, pace)
- goal (with deadline)
Skip: grade numbers, personal identifiers.
""",
label_taxonomy=[
{"skill_mastered": "Skills student understands"},
{"skill_struggling": "Skills student finds hard"},
{"preference": "How they like to learn"},
{"goal": "Learning targets"},
],
)
cfg = client.project.get("<your-project-id>")Result 헬퍼
반환 객체는 JSON을 감싸는 편의 래퍼. .get(...) 노이즈를 줄이는 properties 제공.
| 클래스 | 속성 |
|---|---|
AddResult | .memories, .credits_used, .credits_remaining |
SearchResult | .results (iterable) |
ListResult | .results, .count |
ExtractResult | .summary, .entities, .tags, .key_facts, .importance, .memory_id, .usage, .core, .extensions |
에러 처리
from memgen import MemgenClient, MemgenError
try:
client.add(messages=[...], user_id="alice")
except MemgenError as e:
print(e.status_code, e.detail)Self-hosting
자체 배포 가리키기:
client = MemgenClient(
api_key="mg-...",
base_url="https://memgen.your-company.com",
)cURL 폴백
모든 SDK 호출은 REST endpoint와 1:1 매핑됩니다. HTTP로 직접 호출하려면 API Reference 참조.