Utility functions for LLM applications
Project description
LLM Utils
A Python library providing utility functions for working with Large Language Models (LLMs).
Overview
LLM Utils is a collection of utility functions and classes designed to simplify working with language models, particularly for chat applications, message formatting, and model interactions. It provides tools for transforming message formats, managing chat sessions, grouping messages by length, and interacting with various LLM providers.
Features
- Message Formatting: Transform between different chat message formats (ChatML, ShareGPT)
- Chat Sessions: Manage conversation history and interactions with LLMs
- Message Grouping: Efficiently batch messages based on length for optimal processing
- Model Integration: Interface with various LLM backends including OpenAI models
- Visualization: Display chat messages and conversations as HTML in Jupyter notebooks
- Command Line Tools: VLLM serving and load balancing utilities
Installation
# Install from PyPI
pip install speedy_llm_utils
# Install from source
pip install -e .
# Or using Poetry
poetry install
Note: While the package is named speedy_llm_utils on PyPI, you still import it as llm_utils in your code:
import llm_utils
Dependencies
- Python ≥ 3.9
- numpy
- pandas
- google-generativeai
- transformers
- dspy
- langchain
- langchain-core
- langchain-openai
- json-repair
Usage Examples
Transforming Message Formats
from llm_utils import transform_messages, transform_messages_to_chatml
# Transform messages between formats
chatml_messages = transform_messages_to_chatml(messages)
Working with Chat Sessions
from llm_utils import OAI_LM
# Initialize LLM instance
lm = OAI_LM(model_name="gpt-3.5-turbo")
# Create a chat session
session = lm.create_chat_session(
system_prompt="You are a helpful assistant."
)
# Generate a response
response = session.send_message("Hello, how can you help me today?")
print(response)
Message Grouping
from llm_utils import split_indices_by_length, group_messages_by_len
# Group messages by length for efficient processing
batches = split_indices_by_length(
lengths=[len(msg) for msg in messages],
batch_size_by_mean_length=1000,
random_seed=42,
verbose=True,
shuffle=True
)
Visualizing Conversations
from llm_utils import display_chat_messages_as_html, display_conversations
# Display conversations in a Jupyter notebook
display_conversations(conversations)
Command Line Tools
LLM Utils provides command-line utilities:
svllm: Start a VLLM serversvllm-lb: Run a VLLM load balancer
# Start a VLLM server
svllm --model <model_name> --port <port>
# Run a load balancer
svllm-lb --servers <server1,server2> --port <port>
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
[Insert your license information here]
Author
- Anh Vo
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
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 speedy_llm_utils-1.1.6.tar.gz.
File metadata
- Download URL: speedy_llm_utils-1.1.6.tar.gz
- Upload date:
- Size: 21.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f09e9d28b769c8e40fb0c997df963ebbc06d6e0fe22c78c56da273b50a2c80c5
|
|
| MD5 |
a88aaede7a30fe802faf196d4e5471fb
|
|
| BLAKE2b-256 |
421e00b98bc5a621fd5ab1e04214b32b67ad6d7f630fa15a2fbd262e6d6f6a0e
|
File details
Details for the file speedy_llm_utils-1.1.6-py3-none-any.whl.
File metadata
- Download URL: speedy_llm_utils-1.1.6-py3-none-any.whl
- Upload date:
- Size: 23.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a1b6bcfdf1b0fccdb7a6d7c457c179a7f403cbc590c28d95ad3b92208deb5423
|
|
| MD5 |
709dc928627833184ae94bb07bc3877f
|
|
| BLAKE2b-256 |
cf0b3009549c917d266eb1fa918f7e47b5677a740171e78269d96352635633b9
|