A simple library to add memory to AI chatbots
Project description
StateCall
A simple Python library that adds memory to AI chatbots. StateCall remembers your conversations so AI can reference previous messages.
What it does
Most AI chatbots forget everything when you start a new conversation. StateCall saves your chat history so the AI can remember what you talked about before.
Features
- Works with any AI service (OpenAI, Groq, Claude, etc.)
- Built-in Groq support
- Saves conversations locally on your computer
- No database or internet connection needed
- Simple to use
- Export/import conversations (JSON/CSV)
- Conversation statistics and analytics
Installation
pip install statecall
Quick start
Basic usage
from statecall.memory import append_to_history, load_context
import openai
openai.api_key = "your-openai-api-key"
session_id = "my-chat"
# Save a message
append_to_history(session_id, "user", "Tell me a joke.")
history = load_context(session_id)
# Get AI response
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=history
)
assistant_msg = response["choices"][0]["message"]["content"]
append_to_history(session_id, "assistant", assistant_msg)
print("AI:", assistant_msg)
Using Groq
from statecall.groq_client import GroqClient
from statecall.memory import append_to_history, get_session_history
session_id = "groq-chat"
client = GroqClient(api_key="your-groq-api-key")
append_to_history(session_id, "user", "Who won the World Cup in 2022?")
history = get_session_history(session_id)
response = client.chat(history)
append_to_history(session_id, "assistant", response)
print("AI:", response)
Export and Import
Export a conversation to JSON or CSV:
from statecall.memory import export_conversation, import_conversation
# Export to JSON
export_conversation("my-chat", "conversation.json", "json")
# Export to CSV
export_conversation("my-chat", "conversation.csv", "csv")
# Import a conversation
imported_session = import_conversation("conversation.json")
Get conversation statistics:
from statecall.memory import get_conversation_stats
stats = get_conversation_stats()
print(f"Total sessions: {stats['total_sessions']}")
print(f"Total messages: {stats['total_messages']}")
How it works
StateCall saves your conversations in two files on your computer:
.statecall_history.json- stores all your messages.statecall_sessions.json- tracks your chat sessions
This way your conversations are saved between app restarts without needing a database.
Examples
Check the examples/ folder:
custom_llm_openai_example.py- using OpenAIgroq_chat_example.py- using Groqexport_import_example.py- export/import features
To run an example:
python examples/groq_chat_example.py
License
MIT 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 statecall-0.2.0.tar.gz.
File metadata
- Download URL: statecall-0.2.0.tar.gz
- Upload date:
- Size: 10.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6c41637c7e96aaee690925fa05cee1107f1a1abca0e0d82b2e8f15d33b539c69
|
|
| MD5 |
0e91f467342d4176b0fce5bf04d5dfa1
|
|
| BLAKE2b-256 |
ae5671f05221bd6f9ec2414cb0a84641f9c9788880253a545b76e29d1641a9f6
|
File details
Details for the file statecall-0.2.0-py3-none-any.whl.
File metadata
- Download URL: statecall-0.2.0-py3-none-any.whl
- Upload date:
- Size: 11.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d405ca405267ae0dd203a0b813985e3f0dae7d631fb2f09884f8205cb334026b
|
|
| MD5 |
f3625a82030af572b6592bcf376cb750
|
|
| BLAKE2b-256 |
ffb62d65cddc585cb68223e7baf4b870950c4ecdff48a934d99d511a3a90b473
|