Minimalist Library for programming with LLMs
Project description
MiniLLMLib
Installation
pip install minillmlib
# For HuggingFace/local models: (Beta - not well tested)
pip install minillmlib[huggingface]
A Python library for interacting with various LLM providers (OpenAI, Anthropic, Mistral, HuggingFace, through URL).
Author: Quentin Feuillade--Montixi
Installation
From Source
git clone https://github.com/qfeuilla/MiniLLMLib.git
cd MiniLLMLib
pip install -e . # Install in editable mode
Usage
import minillmlib as mll
# Create a GeneratorInfo for your model/provider
import os
gi = mll.GeneratorInfo(
model="gpt-4",
_format="openai",
api_key=os.getenv("OPENAI_API_KEY") # Recommended: use env var for secrets
)
# Create a chat node (conversation root)
chat = mll.ChatNode(content="Hello!", role="user")
# Synchronous completion
response = chat.complete_one(gi)
print(response.content)
# Or asynchronous version
# response = await chat.complete_one_async(gi)
Features
- Unified interface for major LLM providers:
- OpenAI, Anthropic, Mistral, HuggingFace (local), custom URL (e.g. OpenRouter)
- Thread (linear) and loom (tree/branching) conversation modes
- Synchronous & asynchronous API
- Multimodal support:
- Audio input (WAV/MP3) compatible with OpenRouter
- Image input (URLs, local paths, base64)
- Audio output (OpenAI audio models, beta)
- Flexible parameter/config management via
GeneratorInfoandGeneratorCompletionParameters - Save/load conversation trees
- Extensible: add new models/providers easily
Documentation
- See the Usage Guide for advanced usage, parameter tables, and branching/loom semantics.
- See the Provider Matrix for supported models and configuration tips.
- See Troubleshooting for common issues and debugging.
Configuration
- Set API keys as environment variables for security (see the Configuration Guide).
Development & Contribution
- Run tests with:
pytest tests/ - See Contributing for contribution guidelines.
For more, see the full documentation at minillmlib.readthedocs.io or open an issue on GitHub if you need help.
Release Tagging Reminder
(for maintainers use)
To push a new release tag:
git add <files you changed>
git commit -m "<your message>"
git tag v<NEW_VERSION> -m "Release v<NEW_VERSION>: <short description>"
git push origin main --tags
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 minillmlib-0.4.4.tar.gz.
File metadata
- Download URL: minillmlib-0.4.4.tar.gz
- Upload date:
- Size: 101.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d90391398f21868bbc2992ed134d37103685d4eaa7fe71e3332bef712bfe4aca
|
|
| MD5 |
0e6f6cb5c30f40248b2127e1c409354a
|
|
| BLAKE2b-256 |
377a3cf8f2ba13ff4bb39a5bc89c0d4a62a3d61f37c8a2be22834fe7b36b1348
|
File details
Details for the file minillmlib-0.4.4-py3-none-any.whl.
File metadata
- Download URL: minillmlib-0.4.4-py3-none-any.whl
- Upload date:
- Size: 30.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
de0bec10d7c596b96db4e6d04ac1ad655110a1f9d68c43c49dedccf29432667a
|
|
| MD5 |
a9fc26db974913f145178ab019ba191c
|
|
| BLAKE2b-256 |
8ddf71cf9fe600096c9f6dbcf85e51c25dfc31a68f3947cafecd9065f72e81f0
|