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
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 modelssokrates-benchmark-results-merger: Merge benchmark resultssokrates-benchmark-results-to-markdown: Convert benchmark results to markdownsokrates-execute-tasks: Executes a list of tasks sequentially from a given task list in JSON format (generated bybreakdown_task)sokrates-fetch-to-md: Fetch content and convert to markdownsokrates-generate-mantra: Generate mantras or affirmationssokrates-list-models: List available LLM modelssokrates-idea-generator: Generate ideas using a multi-stage workflowsokrates-refine-and-send-prompt: Refine and send prompts to an LLMsokrates-refine-prompt: Refine prompts for better LLM performancesokrates-breakdown-task: Break down complex tasks into manageable stepssokrates-send-prompt: Send a prompt to an LLM APIsokrates-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
- Fork the repository and create a new branch
- Make your changes and add tests if necessary
- 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
- julianweberdev@gmail.com
- GitHub: @julweber
- Linked.in : Julian Weber
Changelog
View our CHANGELOG.md for a detailed changelog.
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 sokrates-0.4.0.tar.gz.
File metadata
- Download URL: sokrates-0.4.0.tar.gz
- Upload date:
- Size: 292.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b880a52bddb2e81709283ed60b72fc599f77ef94d71d018d1e20a8d2a293e567
|
|
| MD5 |
9569e1d136d9da6ea21efd24118115e6
|
|
| BLAKE2b-256 |
04244239d59a9b18876215416da8b60b751b21ad1826e6feceebbf5b2b3a7e90
|
File details
Details for the file sokrates-0.4.0-py3-none-any.whl.
File metadata
- Download URL: sokrates-0.4.0-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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b2f47ab3de0c7675ede3554dab59037d1644ca2bc3208694fc90f57620a81e20
|
|
| MD5 |
233d6609537c79e9beee5575128a6759
|
|
| BLAKE2b-256 |
3d37f3d544fb3892fa868e1fba9ce3c1c57cc78c5fb32228ebe16d5608cc2348
|