Convert between common LLM chat schemas
Project description
chatmux
Convert to and from common LLM chat schemas.
All implementations are built on pydantic base models to be network ready.
Installation
pip install chatmux
Usage
Fully OpenAI compatible pydantic models
from chatmux.openai import UserMessage, TextContentPart, ImageContentPart, ImageUrl
# Example using Pydantic models (more robust):
user_message = UserMessage(
role="user",
content=[
TextContentPart(type="text", text="Describe this image:"),
ImageContentPart(
type="image_url",
image_url=ImageUrl(url="https://example.com/image.jpg")
)
]
)
openai_messages = [user_message.model_dump(exclude_none=True)] # Convert model to dict
Conversion methods to and from other schemas
from chatmux.convert import oai_to_qwen
qwen_messages = oai_to_qwen(openai_messages)
print(qwen_messages)
# Expected Output (structure based on oai_to_qwen):
# [
# {
# 'role': 'user',
# 'content': [
# {'type': 'text', 'text': 'Describe this image:'},
# {'type': 'image', 'image': 'https://example.com/image.jpg'}
# ]
# }
# ]
Supported Conversions (as implemented in src/chatmux/convert.py):
- OpenAI-like -> Unsloth: Converts messages (potentially from JSONL), handling image URLs/base64, embedding PIL Images. (
oai_to_unsloth) - OpenAI-like -> Qwen: Converts multimodal messages, keeping image URLs as strings but adjusting the content structure. (
oai_to_qwen)
Contributing
Please open an issue before submitting a PR.
License
MIT
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
chatmux-0.1.4.tar.gz
(16.0 kB
view details)
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
chatmux-0.1.4-py3-none-any.whl
(15.9 kB
view details)
File details
Details for the file chatmux-0.1.4.tar.gz.
File metadata
- Download URL: chatmux-0.1.4.tar.gz
- Upload date:
- Size: 16.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.5.29
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
635fe1de80561fcf7e3cf64877e664bcd480d46c04cb8fa5a34af606b6f28903
|
|
| MD5 |
31f92ed88376cfef95816db090cadc06
|
|
| BLAKE2b-256 |
37542ab2d9b9f02956a1fc8275c706fd719fb45915b3d06884ed5a19175040ea
|
File details
Details for the file chatmux-0.1.4-py3-none-any.whl.
File metadata
- Download URL: chatmux-0.1.4-py3-none-any.whl
- Upload date:
- Size: 15.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.5.29
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
edded604014c65163dfeeaddf8433302939a8442873414c141b568cee9e4ce75
|
|
| MD5 |
73e77d563f5878ae73f2fb10b54cf691
|
|
| BLAKE2b-256 |
1681aec8e8473de81f77c77cb8d9bddc49c8165f76e9294e2a6f896915bbc52f
|