Skip to main content

Sinapsis templates for chat history management.

Project description



Sinapsis Chat History

Sinapsis templates for persistent chat history in chatbot workflows.

🐍 Installation🚀 Features📚 Usage example📙 Documentation🔍 License

The sinapsis-chat-history package provides templates for fetching, trimming, saving, deleting, and resetting persistent chat history associated with LLMConversationPacket conversations. It supports SQLite by default, plus optional PostgreSQL-compatible backends such as PostgreSQL and Supabase through the postgres extra.

🐍 Installation

Install using your preferred package manager. We strongly recommend using uv.

Install the base package:

uv pip install sinapsis-chat-history --extra-index-url https://pypi.sinapsis.tech

Or with raw pip:

pip install sinapsis-chat-history --extra-index-url https://pypi.sinapsis.tech

[!IMPORTANT] The base installation includes the sqlite provider. PostgreSQL and Supabase require the optional postgres extra:

uv pip install sinapsis-chat-history[postgres] --extra-index-url https://pypi.sinapsis.tech

all installs every optional dependency exposed by the package:

uv pip install sinapsis-chat-history[all] --extra-index-url https://pypi.sinapsis.tech

ChatHistoryTrim requires the optional trim extra:

uv pip install sinapsis-chat-history[trim] --extra-index-url https://pypi.sinapsis.tech

🚀 Features

Templates Supported

  • ChatHistoryFetch: Loads stored messages into LLMConversationPacket.messages.
  • ChatHistoryTrim: Trims fetched history to fit a tokenizer-based prompt budget before the LLM call.
  • ChatHistorySave: Persists packet messages to the configured history backend.
  • ChatHistoryDelete: Deletes stored messages using explicit user/session scopes.
  • ChatHistoryReset: Clears the configured history table or storage scope.

Providers Supported

  • sqlite: Default provider for local development and lightweight deployments.
  • postgres: Shared relational backend for multi-user or concurrent workloads.
  • supabase: PostgreSQL-compatible backend reachable through the Supabase database connection.
🧩 Common Attributes
  • provider ("sqlite" | "postgres" | "supabase", optional): Storage backend to use. Defaults to sqlite.
  • db_config (dict, optional): Provider-specific configuration.
    • sqlite: use db_path and optionally table.
    • postgres / supabase: use user, password, host, port, db_name, sslmode, and optionally table.
  • fetch_args.limit (int, optional): Use -1 to fetch all matching messages.

[!TIP] Use CLI command sinapsis info --all-template-names to show a list with all the available Template names installed with Sinapsis Chat History.

📚 Usage example

The following agent fetches stored chat history for the given user_id and session_id into LLMConversationPacket.messages, then trims older turns so the next LLM call stays within a target token budget.

Config
agent:
  name: chat_history_fetch_messages
  description: Fetches stored chat history into the conversation packet messages.

templates:
  - template_name: InputTemplate
    class_name: InputTemplate
    attributes: {}

  - template_name: LLMConversationInput
    class_name: LLMConversationInput
    template_input: InputTemplate
    attributes:
      prompt: I'm thinking about taking Barnaby for a run, do you think I'm ready given my training?
      user_id: Sarah
      session_id: conv_1234

  - template_name: ChatHistoryFetch
    class_name: ChatHistoryFetch
    template_input: LLMConversationInput
    attributes:
      provider: sqlite
      db_config:
        db_path: "chat_history.sqlite3"
        table: "chat"
      fetch_args:
        limit: -1
        offset: 0
        order: asc
        order_by: created_at

  - template_name: ChatHistoryTrim
    class_name: ChatHistoryTrim
    template_input: ChatHistoryFetch
    attributes:
      tokenizer_model_name: "Qwen/Qwen3.5-9B"
      model_max_context: 16384
      reserved_output_tokens: 2048
      safety_margin_tokens: 256
      preserve_system_messages: true

📙 Documentation

Documentation for this and other sinapsis packages is available on the sinapsis website

Tutorials for different projects within sinapsis are available at sinapsis tutorials page

🔍 License

This project is licensed under the AGPLv3 license, which encourages open collaboration and sharing. For more details, please refer to the LICENSE file.

For commercial use, please refer to our official Sinapsis website for information on obtaining a commercial 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

sinapsis_chat_history-0.2.2.tar.gz (31.6 kB view details)

Uploaded Source

Built Distribution

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

sinapsis_chat_history-0.2.2-py3-none-any.whl (37.9 kB view details)

Uploaded Python 3

File details

Details for the file sinapsis_chat_history-0.2.2.tar.gz.

File metadata

File hashes

Hashes for sinapsis_chat_history-0.2.2.tar.gz
Algorithm Hash digest
SHA256 55e76425845d63c4b05f7f5afb4d4e2d12ecb6f3f763c2852da3346fb9e375a6
MD5 0c55ed429f2f1385d66fa41d13ac2cf1
BLAKE2b-256 6d04b4b2d217a53bc0e6d64770e956c54f5df42debbe94dca9a5f754e30b7b84

See more details on using hashes here.

File details

Details for the file sinapsis_chat_history-0.2.2-py3-none-any.whl.

File metadata

File hashes

Hashes for sinapsis_chat_history-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 bc9e0d394c40bdf3916359edc5e1bf09d96e11d6c962d3d6d70fd07138d1ad1e
MD5 2fc2bad39ca3699cd14cb882812204ce
BLAKE2b-256 aa9d14792c12917971ad66359cc47e721570c4d69e968f033ba286a78a893b07

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