Skip to main content

A collection of tools for LLM interactions like prompt refinement and idea generation. It also provides a console chat client with speech to text feature.

Project description

sokrates

License: MIT Version: 0.4.1

A collection of tools for LLM interactions and system monitoring, designed to facilitate working with Large Language Models (LLMs) through modular components, well-documented APIs, and production-ready utilities.

Table of Contents

Description

sokrates is a comprehensive framework for working with Large Language Models (LLMs). It provides:

  • Advanced prompt refinement tools
  • System monitoring for resource tracking during LLM operations
  • An extensive CLI interface for rapid experimentation
  • Modular components and well-documented APIs
  • A task queue system for managing LLM processing tasks

The project includes utilities for:

  • Managing configuration settings
  • Interacting with OpenAI-compatible LLM APIs
  • Processing and cleaning LLM-generated text
  • Monitoring system resources in real-time
  • Executing complex workflows for idea generation and prompt refinement
  • Queuing and processing tasks reliably with persistence and error handling

Installation via pip

pip install sokrates

# or via uv
uv pip install sokrates

# test the installation
list-models --api-endpoint http://localhost:1234/v1

# or via uv
uv run list-models --api-endpoint http://localhost:1234/v1

Installation for development purposes

Prerequisites: Python 3.9 or higher

git clone https://github.com/Kubementat/sokrates.git
cd sokrates
uv sync

Configuration

You can configure the library via a configuration file in $HOME/.sokrates/.env

# Copy
cp .env.example $HOME/.sokrates/.env

# adjust to your needs
vim $HOME/.sokrates/.env

Whisper dependencies

brew install ffmpeg
brew install whisper-cpp

Usage

Basic Command Structure

Most commands follow this structure:

command --option1 value1 --option2 value2

You can always display the help via:

command --help

e.g.

uv run list-models --help

Available Commands

  • sokrates-benchmark-model: Benchmark LLM models
  • sokrates-benchmark-results-merger: Merge benchmark results
  • sokrates-benchmark-results-to-markdown: Convert benchmark results to markdown
  • sokrates-execute-tasks: Executes a list of tasks sequentially from a given task list in JSON format (generated by breakdown_task)
  • sokrates-fetch-to-md: Fetch content and convert to markdown
  • sokrates-generate-mantra: Generate mantras or affirmations
  • sokrates-list-models: List available LLM models
  • sokrates-idea-generator: Generate ideas using a multi-stage workflow
  • sokrates-refine-and-send-prompt: Refine and send prompts to an LLM
  • sokrates-refine-prompt: Refine prompts for better LLM performance
  • sokrates-breakdown-task: Break down complex tasks into manageable steps
  • sokrates-send-prompt: Send a prompt to an LLM API
  • sokrates-chat: Chat with LLMs via the command line

Task Queuing System

The task queue system allows you to queue LLM processing tasks in JSON format for reliable execution:

# Add a new task to the queue
sokrates-task-add tasks/new_task.json --priority high

# List all queued tasks
sokrates-task-list --status pending --priority high

# Get detailed status of specific task
sokrates-task-status task-123 --verbose

# Remove a task from the queue
sokrates-task-remove task-789 --force

# Start the daemon to process queued tasks
sokrates-daemon start

# Restart the daemon
sokrates-daemon restart

# Stop the daemon
sokrates-daemon stop

Example Usage

# Getting help for a command and usage instructions
uv run sokrates-refine-prompt --help

# List available models
uv run sokrates-list-models --api-endpoint http://localhost:1234/v1

# Generate ideas
uv run sokrates-idea-generator --output-directory tmp/ideas --verbose

# Benchmark a model
uv run sokrates-benchmark-model --model qwen/qwen3-8b --iterations 5

# Start the task queue daemon
sokrates-daemon start

Features

  • Prompt Refinement: Optimize LLM input/output with advanced refinement tools
  • System Monitoring: Real-time tracking of resource usage during LLM operations
  • CLI Interface: Extensive command-line tools for rapid experimentation
  • Modular Architecture: Easily extendable and customizable components
  • Task Queue System: Reliable task management with persistence, error handling, and retry mechanisms
  • Testing Infrastructure: Built-in test framework with pytest integration

Contributing

  1. Fork the repository and create a new branch
  2. Make your changes and add tests if necessary
  3. Submit a pull request with a clear description of your changes

Please read CONTRIBUTING.md for more details.

License

This project is licensed under the MIT License. See LICENSE for details.

Contact

Changelog

View our CHANGELOG.md for a detailed changelog.

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

sokrates-0.4.1.tar.gz (292.7 kB view details)

Uploaded Source

Built Distribution

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

sokrates-0.4.1-py3-none-any.whl (110.7 kB view details)

Uploaded Python 3

File details

Details for the file sokrates-0.4.1.tar.gz.

File metadata

  • Download URL: sokrates-0.4.1.tar.gz
  • Upload date:
  • Size: 292.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.13

File hashes

Hashes for sokrates-0.4.1.tar.gz
Algorithm Hash digest
SHA256 91a9a0322a9ddb2ec142dc3f2e45b814560a415c224c385851dd8617e49d5fd8
MD5 02d93a3123a2529c986bb7d3306f0c06
BLAKE2b-256 668df615776b19893fac2e80d50e73953b2204d614e4f33545f05904dbfc7fdb

See more details on using hashes here.

File details

Details for the file sokrates-0.4.1-py3-none-any.whl.

File metadata

  • Download URL: sokrates-0.4.1-py3-none-any.whl
  • Upload date:
  • Size: 110.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.13

File hashes

Hashes for sokrates-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 bc43c6f98a6e2218212062a9b59dee9bbfcc6fa09623748b3e4db1a71e9c7f4a
MD5 3fa7471aa052c9aa875dc2f68b5b4682
BLAKE2b-256 44cb1b35b4f79fb26d491e5fe34d3b915fd3c077928af0d352d59a30ab25acf7

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