n1mem · N1Mem 记忆 API Python SDK
powered by T1Mem engine · BYOK(自带 Key)· 同步零依赖
安装
pip install n1mem # 同步版,零硬依赖
pip install n1mem[async] # 需要异步客户端时(依赖 httpx)
10 行代码跑通
from n1mem import N1Mem
m = N1Mem(api_key="tk_xxx") # 或设环境变量 N1MEM_API_KEY 后不传参
print(m.health()) # 服务健康 + provider 可用性
m.ingest("我今天换了新工位,在 3 楼靠窗")
print(m.recall("我坐哪儿"))
API
| 方法 | 对应端点 | 说明 |
|---|---|---|
| 方法 | 对应端点 | 说明 |
| --- | --- | --- |
health() |
GET /health |
健康与 provider 状态,无需鉴权 |
metrics() |
GET /metrics |
Prometheus 文本指标 |
ingest(text, purpose="recall") |
POST /v1/ingest |
写入一段记忆(持久化 + 建向量,写入即可召回) |
recall(prompt, purpose="recall") |
POST /v1/recall |
按提示召回;返回 answer(已基于命中记忆接地)与 retrieved(命中明文) |
forget(memory_id) |
DELETE /v1/memories/{memory_id} |
删除指定记忆(仅本租户可见,删除后无法召回) |
ask / update / list |
— | 尚未提供,调用会明确抛 NotImplementedError |
异步版 AsyncN1Mem 接口完全一致:
async with AsyncN1Mem(api_key="tk_xxx") as m:
await m.ingest("…")
错误处理
上游 4xx/5xx 统一抛 N1MemError,带 status / message / endpoint:
from n1mem import N1MemError
try:
m.ingest("x")
except N1MemError as e:
print(e.status, e.endpoint, e.message) # 401 /v1/ingest {"detail":"invalid api key"}
当前能力边界
ingest()会把内容持久化到 N1Mem 存储层并生成向量,返回{stored, embedded, memory_id};写入后即可被召回。recall()走关键词 + 向量混合检索(hybrid),返回{answer, retrieved, recall_mode, ...}。其中answer已基于命中的记忆做接地生成;若未命中任何记忆,会诚实返回未命中。forget(memory_id)删除本租户内指定记忆及关联向量,删除后不可再召回。ask / update / list尚未提供,SDK 会明确抛NotImplementedError,而不是静默返回空。
历史勘误:v0.1.2 及更早 README 写「Phase 0 不持久化、recall 取不回」,该描述已随 C-2 存储层和召回接地修复而过时,请勿再引用。
与 t1mem_sdk 的区别
本目录有两个包,不要混用:
| 包 | 对接对象 | 用途 |
|---|---|---|
n1mem |
线上 C-2 API(https://api.n1mem.com) |
对外发布,本 README 描述的对象 |
t1mem_sdk |
本地 t1mem-core API(http://127.0.0.1:8080) |
内部使用,接口为 /memories、/sessions、/stats |
相关:MCP Server
想让 Claude / Cursor 直连,见 src/t1mem-core/mcp_server/(C-3)。
Metadata
Release files for n1mem 0.1.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| n1mem-0.1.4.tar.gz | 14.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| n1mem-0.1.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 21.7 kB
Release files / n1mem-0.1.4.tar.gz
| Download URL | n1mem-0.1.4.tar.gz |
|---|---|
| Size | 14.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
52d92551e16058b3b7b86c04b5a314f15de52ee959bdb489ab17068ae79fb21a
|
|
BLAKE2b-256 checksum How to use checksums |
2babf39017fe4212e476255144ddd0ca4550cba8f6683bb2f8121bc46059c463
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.12
|
Release files / n1mem-0.1.4-py3-none-any.whl
| Download URL | n1mem-0.1.4-py3-none-any.whl |
|---|---|
| Size | 7.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
da0f6d9ae20932b682fd55244cfa2f4b4297ddd19f3c80a6e75bd83b60fe7e6a
|
|
BLAKE2b-256 checksum How to use checksums |
e7dcf89363bbcd78253f8981f61ebf0f8f2b0f0f050d083e2503de516406804c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.12
|