fleet-memory/hindsight/hindsight/__init__.py
Nicolò Boschi d3302c95b9
feat: HindsightEmbedded python SDK (#293)
* feat: HindsightEmbedded python SDK

* feat: HindsightEmbedded python SDK

* fixes

* improve

* ci

* improvemnts

* fix test

* fix test

* fix: update tests to use Pydantic model attributes instead of dict access

- Fixed test_server_integration.py to access Pydantic model attributes directly
- Changed dict-style access (response["field"]) to attribute access (response.field)
- Fixed .get() calls on Pydantic models
- Updated recall() calls to access .results attribute
- Updated reflect() calls to access .text attribute
- Fixed test_list_banks to use namespace API instead of deleted default_api
- Fixed attribute shadowing in HindsightClient wrapper (renamed _*_api to _*_namespace)

* fix: add list() method to BanksAPI namespace

* fix: remove leftover async cleanup code from test_list_banks

* docs: remove Advanced Configuration section from embed.md
2026-02-04 14:41:19 +01:00

69 lines
1.9 KiB
Python

"""
Hindsight - All-in-one semantic memory system for AI agents.
This package provides a simple way to run Hindsight locally with embedded PostgreSQL.
Easiest way - Embedded client (recommended):
```python
from hindsight import HindsightEmbedded
# Server starts automatically on first use
client = HindsightEmbedded(
profile="myapp",
llm_provider="groq",
llm_api_key="your-api-key",
)
# Use immediately - no manual server management needed
client.retain(bank_id="alice", content="Alice loves AI")
results = client.recall(bank_id="alice", query="What does Alice like?")
```
Manual server management:
```python
from hindsight import start_server, HindsightClient
# Start server with embedded PostgreSQL (pg0)
server = start_server(
llm_provider="groq",
llm_api_key="your-api-key",
llm_model="openai/gpt-oss-120b"
)
# Create client
client = HindsightClient(base_url=server.url)
# Store memories
client.retain(bank_id="assistant", content="User prefers Python for data analysis")
# Search memories
results = client.recall(bank_id="assistant", query="programming preferences")
# Generate contextual response
response = client.reflect(bank_id="assistant", query="What are my interests?")
# Stop server when done
server.stop()
```
Using context manager:
```python
from hindsight import HindsightServer, HindsightClient
with HindsightServer(llm_provider="groq", llm_api_key="...") as server:
client = HindsightClient(base_url=server.url)
# ... use client ...
# Server automatically stops
```
"""
from .client_wrapper import HindsightClient
from .embedded import HindsightEmbedded
from .server import Server as HindsightServer, start_server
__all__ = [
"HindsightServer",
"start_server",
"HindsightClient",
"HindsightEmbedded",
]