Skip to main content

Official Python SDK for MemoryIntelligence. Structured, verifiable memory for AI.

Project description

MemoryIntelligence API

Memory without meaning is just storage.

This API turns raw content (text, conversations, images) into structured meaning. Searchable, explainable, provenance-tracked. No black box. No hallucinations.

For Python backends: FastAPI, Django, Flask, Lambda, Cloud Functions.


What's new in 0.1.2

  • ask() and list() are fixed. They previously returned empty results (hit.summary/hit.id as None, list() as []) because the client read the wrong response shape. Upgrade with pip install -U memoryintelligence.
  • Now Apache-2.0 licensed (was a custom MIT-with-restrictions).

Full history in CHANGELOG.md.


Installation

pip install memoryintelligence

Get your API key: memoryintelligence.io/beta


Quick Start

from memoryintelligence import MemoryIntelligence

mi = MemoryIntelligence.from_env()          # reads MI_API_KEY

# Turn content into a structured, verifiable memory
note = mi.capture(
    "Discussed pricing with ACME. They prefer quarterly billing.",
    source="sales_call",
)

# Ask by meaning, not keywords
for hit in mi.ask("what did ACME say about billing?"):
    print(f"{hit.score:.2f}  {hit.summary}")

# Every memory has a receipt
if mi.verify(note.id):
    print("intact")

Upgrading from MemoryClient? The flat MemoryIntelligence client above is the recommended surface. The older MemoryClient (the mi.umo.* namespace, with multi-tenant user_ulid) still works for advanced use, and EdgeClient still serves regulated on-premise deployments, but MemoryClient is deprecated and will be removed in a future major. See Core Operations for the full eight-verb surface.


What It Does

  • Processes → Extracts entities, topics, relationships, sentiment
  • Searches → Returns ranked results with explainability
  • Matches → Compares memories for relevance/similarity
  • Explains → Shows why results matched (semantic, temporal, graph)
  • Deletes → GDPR-compliant data removal with audit trail

No vector database setup. No chunking strategies. No embedding models to manage.


Security: API Keys Are Server-Only

Your API key grants full account access. Keep it server-side.

✅ Backend (environment variable):

mi = MemoryIntelligence.from_env()   # reads MI_API_KEY

❌ Never hardcoded:

# Don't - visible in logs/code
mi = MemoryIntelligence(api_key='mi_sk_beta_...')

For web apps: Use your API key in the backend, build your own endpoints with your auth, let your frontend call those.


What Makes This Different

Others MemoryIntelligence
Store text, embed, hope Extract meaning first
"Here are similar chunks" "Here's why this matched"
No audit trail Cryptographic provenance
Your data = their model training We never train on your data

Setting the standard for memory.


Core Operations

Eight verbs, mapped one-to-one onto the public API:

note    = mi.capture(content, source="notes")   # POST   /v1/process
hits    = mi.ask(query, limit=5)                 # POST   /v1/memories/query
note    = mi.get(umo_id)                          # GET    /v1/memories/{id}
notes   = mi.list(limit=20)                       # GET    /v1/memories
proof   = mi.verify(umo_id)                        # GET    /v1/memories/{id}/proof
why     = mi.explain(umo_id)                        # GET    /v1/memories/{id}/explain
receipt = mi.forget(umo_id)                        # DELETE /v1/memories/{id}
notes   = mi.batch(["note one", "note two"])       # POST   /v1/batch
note    = mi.upload("meeting.mp3")                 # POST   /v1/upload

Results come back as small typed objects (Memory, Match, Proof, Receipt), each with a .raw escape hatch and item access, so note.id when it is clean and note["quality_score"] when you need a field we did not surface.


Async Support

An async twin of the flat client (AsyncMemoryIntelligence) is on the roadmap. Until then, the async surface is the older AsyncMemoryClient (the mi.umo.* namespace, deprecated alongside MemoryClient):

from memoryintelligence import AsyncMemoryClient

async with AsyncMemoryClient.from_env() as mi:
    results = await mi.umo.search(query, user_ulid="01ABC...")

Error Handling

from memoryintelligence import (
    MIError, AuthenticationError, NotFoundError, RateLimitError, ValidationError,
)

try:
    hits = mi.ask(query)
except AuthenticationError:
    ...                       # API key invalid or expired
except NotFoundError:
    ...                       # no memory with that id
except RateLimitError:
    ...                       # the client already retried with backoff
except ValidationError as e:
    ...                       # request shape was wrong
except MIError as e:
    print(e.status, e)        # any API error carries its status

Typed Everywhere

Full Pydantic models. Type hints on every method. No dict soup.

from memoryintelligence import Memory, Match, Proof

Examples & Docs


Support


MemoryIntelligence™ — Setting the standard for memory.

Built by somewhere

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

memoryintelligence-0.1.2.tar.gz (22.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

memoryintelligence-0.1.2-py3-none-any.whl (21.2 kB view details)

Uploaded Python 3

File details

Details for the file memoryintelligence-0.1.2.tar.gz.

File metadata

  • Download URL: memoryintelligence-0.1.2.tar.gz
  • Upload date:
  • Size: 22.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for memoryintelligence-0.1.2.tar.gz
Algorithm Hash digest
SHA256 dfbf475a46205c7d6fda832a88d0809a3e448324b024338c012452a8da12b895
MD5 d981a24c2b5b78eecbea0b8c824c204a
BLAKE2b-256 78f790dc85d8b3ca89e922bf4419fc0b493ea926808443be291765767ca9e435

See more details on using hashes here.

File details

Details for the file memoryintelligence-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for memoryintelligence-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 081af339f00e6a75b6bf2ac55c167b1e6c6be57de60aef2ef85fd37d6390cc10
MD5 679135033491bedac30909e91337e065
BLAKE2b-256 812ca3d79f730856c7494cb74c203a799ddbfd91c045c8a0113bc661709451b2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page