Store and retrieve messages from multiple LLM providers
Acontext provides a flexible message storage system that supports multiple LLM providers (OpenAI, Anthropic). You can store messages then retrieve them later for analysis, debugging, or continuing conversations.
from acontext import AcontextClientclient = AcontextClient( api_key="sk-ac-your-root-api-bearer-token", base_url="http://localhost:8029/api/v1")session = client.sessions.create()# Send a message in OpenAI formatmessage = client.sessions.send_message( session_id=session.id, blob={ "role": "user", "content": "What is the capital of France?" }, format="openai")print(f"Message sent: {message.id}")
You can send multiple messages sequentially to build a conversation:
Copy
from acontext import AcontextClientclient = AcontextClient( api_key="sk-ac-your-root-api-bearer-token", base_url="http://localhost:8029/api/v1")session = client.sessions.create()# Send multiple messages to build a conversationmessages_to_send = [ {"role": "user", "content": "Hello! Can you help me with Python?"}, {"role": "assistant", "content": "Of course! I'd be happy to help with Python. What would you like to know?"}, {"role": "user", "content": "How do I read a JSON file?"}, {"role": "assistant", "content": "You can use the json module: import json; with open('file.json') as f: data = json.load(f)"}]for msg in messages_to_send: message = client.sessions.send_message( session_id=session.id, blob=msg, format="openai" ) print(f"Sent message: {message.id}")print(f"Total messages sent: {len(messages_to_send)}")
Each message receives a unique ID upon creation. You can use these IDs to reference specific messages later.
Retrieve messages from a session with pagination support:
Copy
from acontext import AcontextClientclient = AcontextClient( api_key="sk-ac-your-root-api-bearer-token", base_url="http://localhost:8029/api/v1")# Get messages from a sessionresult = client.sessions.get_messages( session_id="session_uuid", limit=50, format="openai", time_desc=True # Most recent first)print(f"Retrieved {len(result.items)} messages")for msg in result.items: print(f"- {msg.role}: {msg.content[:50]}...")# Handle pagination if there are more messagesif result.next_cursor: next_page = client.sessions.get_messages( session_id="session_uuid", cursor=result.next_cursor, limit=50 )
You can list sessions and delete the ones you no longer need:
Copy
from acontext import AcontextClientclient = AcontextClient( api_key="sk-ac-your-root-api-bearer-token", base_url="http://localhost:8029/api/v1")# List all sessionssessions = client.sessions.list(limit=100, time_desc=True)print(f"Found {len(sessions.items)} sessions")# Delete old sessions (example: delete all except the most recent 10)for session in sessions.items[10:]: client.sessions.delete(session.id) print(f"Deleted session {session.id}")