FastAPI server for Z3rno: REST API, authentication, rate limiting, and Celery workers.
Project description
z3rno-server
FastAPI REST API server for Z3rno -- wraps z3rno-core engine functions as HTTP endpoints.
Quickstart
Run with Docker Compose
cp .env.example .env # configure DATABASE_URL, API keys, etc.
docker compose -f docker-compose.dev.yml up
This starts PostgreSQL 17 (with pgvector, Apache AGE), Valkey, the API server on localhost:8000, and a Celery worker.
Store a memory
curl -X POST http://localhost:8000/v1/memories \
-H "Authorization: Bearer z3rno_sk_test_localdev" \
-H "Content-Type: application/json" \
-d '{"agent_id": "agent-1", "content": "User prefers dark mode", "memory_type": "semantic"}'
Recall memories
curl -X POST http://localhost:8000/v1/memories/recall \
-H "Authorization: Bearer z3rno_sk_test_localdev" \
-H "Content-Type: application/json" \
-d '{"agent_id": "agent-1", "query": "What does the user prefer?", "top_k": 5}'
Forget a memory
curl -X POST http://localhost:8000/v1/memories/forget \
-H "Authorization: Bearer z3rno_sk_test_localdev" \
-H "Content-Type: application/json" \
-d '{"memory_id": "<memory-uuid>"}'
For a detailed step-by-step setup, see QUICKSTART.md.
Full documentation: astron-bb4261fd.mintlify.app
API Endpoints
| Method | Path | Description |
|---|---|---|
| POST | /v1/memories |
Store a new memory |
| POST | /v1/memories/recall |
Recall memories by semantic query |
| POST | /v1/memories/forget |
Soft-delete a memory |
| GET | /v1/audit |
Query the audit log |
| POST | /v1/sessions |
Start a new session |
| POST | /v1/sessions/{id}/end |
End a session |
| GET | /v1/sessions/{id} |
Get session state |
| GET | /v1/health |
Health check |
| GET | /v1/ready |
Readiness check |
Configuration
All configuration is via environment variables:
| Variable | Description | Default |
|---|---|---|
DATABASE_URL |
PostgreSQL connection string (asyncpg) | required |
REDIS_URL |
Valkey/Redis URL | redis://localhost:6379/0 |
Z3RNO_API_KEY |
API key for authentication | required |
EMBEDDING_MODEL |
LiteLLM embedding model name | text-embedding-3-small |
OPENAI_API_KEY |
OpenAI API key (for embeddings) | -- |
LOG_LEVEL |
Logging level | INFO |
CORS_ORIGINS |
Allowed CORS origins (comma-separated) | -- |
OpenAPI Documentation
When running locally, interactive API docs are available at:
- Swagger UI:
http://localhost:8000/docs - ReDoc:
http://localhost:8000/redoc
Development
uv sync --dev
uv run ruff check .
uv run mypy .
uv run pytest
See CONTRIBUTING.md for the full workflow.
License
Apache 2.0 -- see LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file z3rno_server-0.2.0.tar.gz.
File metadata
- Download URL: z3rno_server-0.2.0.tar.gz
- Upload date:
- Size: 318.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a5b159b333b51cba5b21dd0afae12e9dc0959bea56e665e780f23796087c9d4b
|
|
| MD5 |
5e3a1ae7ac060a85d3fc956057d7ff16
|
|
| BLAKE2b-256 |
841615cae050f8c26ee2eba95c816bfd859a77969ba0f8a9c798e894856bdf91
|
File details
Details for the file z3rno_server-0.2.0-py3-none-any.whl.
File metadata
- Download URL: z3rno_server-0.2.0-py3-none-any.whl
- Upload date:
- Size: 37.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2f41af57752bc40ca1f9cdb898f73b02dd985fa125a041386aa3882250000a4a
|
|
| MD5 |
31d9850c5a03129ad17b8adaa08f5482
|
|
| BLAKE2b-256 |
5a5dd9dfa68af92339abc329b82de136e51187f81a24a7cf26fcc98cc7bf2f02
|