Skip to main content

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 OpenAI
  • groq_chat_example.py - using Groq
  • export_import_example.py - export/import features

To run an example:

python examples/groq_chat_example.py

License

MIT License

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

statecall-0.2.0.tar.gz (10.2 kB view details)

Uploaded Source

Built Distribution

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

statecall-0.2.0-py3-none-any.whl (11.6 kB view details)

Uploaded Python 3

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

Hashes for statecall-0.2.0.tar.gz
Algorithm Hash digest
SHA256 6c41637c7e96aaee690925fa05cee1107f1a1abca0e0d82b2e8f15d33b539c69
MD5 0e91f467342d4176b0fce5bf04d5dfa1
BLAKE2b-256 ae5671f05221bd6f9ec2414cb0a84641f9c9788880253a545b76e29d1641a9f6

See more details on using hashes here.

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

Hashes for statecall-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d405ca405267ae0dd203a0b813985e3f0dae7d631fb2f09884f8205cb334026b
MD5 f3625a82030af572b6592bcf376cb750
BLAKE2b-256 ffb62d65cddc585cb68223e7baf4b870950c4ecdff48a934d99d511a3a90b473

See more details on using hashes here.

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