Skip to main content

Async Python client for the MyPalace memory service

Project description

mypalace-client

Async Python client for the MyPalace Memory Service.

Install

pip install mypalace-client
# Optional gRPC transport:
pip install "mypalace-client[grpc]"

Quick start

import asyncio
from palace_client import PalaceClient

async def main():
    async with PalaceClient(
        base_url="http://localhost:8000",
        api_key="pk_live_...",
    ) as client:
        # Add a memory
        mem = await client.create(
            user_id="u1",
            content="Joshua likes oat milk",
            memory_type="preference",
        )
        # Search
        results = await client.search(query="milk", user_id="u1", limit=5)
        for r in results:
            print(r.score, r.content)

asyncio.run(main())

Features

Mirrors the full Palace HTTP API:

  • Memory CRUD + semantic search + smart-ingestion (infer=True)
  • Sessions + messages
  • Episode reflection + narrative arc synthesis
  • FSRS dynamics (promote/demote/score)
  • Intentions (set/check/format)
  • Layered context assembly
  • Manual supersede + supersession history

Auth

Pass api_key to the constructor; the client sends it as X-Palace-Key on every request. Without an API key, the client works against a server with PALACE_AUTH_DISABLED=true.

gRPC (optional)

Phase 3 ships a focused gRPC mirror covering MemoryService (Create/Get/Delete/Search/List). Use PalaceGrpcClient when you want lower-overhead binary transport for memory ops:

from palace_client.grpc import PalaceGrpcClient

async with PalaceGrpcClient("localhost:50051", api_key="pk_live_...") as c:
    mem = await c.create(user_id="u1", content="hello via gRPC")

Other surfaces (sessions, episodes, etc.) ride HTTP via PalaceClient.

License

PolyForm Noncommercial 1.0.0 — see LICENSE.md.

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

mypalace_client-0.8.1.tar.gz (19.7 kB view details)

Uploaded Source

Built Distribution

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

mypalace_client-0.8.1-py3-none-any.whl (15.4 kB view details)

Uploaded Python 3

File details

Details for the file mypalace_client-0.8.1.tar.gz.

File metadata

  • Download URL: mypalace_client-0.8.1.tar.gz
  • Upload date:
  • Size: 19.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for mypalace_client-0.8.1.tar.gz
Algorithm Hash digest
SHA256 a416d6d85c2778fa71ee6ea4c7c8480a3aadd061484fe34ff1cb43600d924c48
MD5 7e7f06d484c2da51a23b147c6dbc1976
BLAKE2b-256 94667829b64386dc3ef4783e038d8f1aba067aefaa4895507e73ab4072001db8

See more details on using hashes here.

Provenance

The following attestation bundles were made for mypalace_client-0.8.1.tar.gz:

Publisher: release.yml on BangRocket/MyPalace

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mypalace_client-0.8.1-py3-none-any.whl.

File metadata

File hashes

Hashes for mypalace_client-0.8.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b05186de22ad023b0a1c22a4dffe005c25e72b4e1d0647142fafc295cc162d7d
MD5 b2a45fb40c87cb698500afdbe678084f
BLAKE2b-256 beb5c2e1c85f69f79eeaf0c45173fa7bfc43dc7a9a197ae5784c3a0eb14049ca

See more details on using hashes here.

Provenance

The following attestation bundles were made for mypalace_client-0.8.1-py3-none-any.whl:

Publisher: release.yml on BangRocket/MyPalace

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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