LangChain Integration
Optimize LangChain documents and messages for RAG systems with 30-60% token savings.
Installation
pip install toonverter[langchain]
Document Conversion
from langchain.schema import Document
from toonverter.integrations import langchain_to_toon, toon_to_langchain
# Create documents
docs = [
Document(page_content="Info about AI", metadata={"id": 1}),
Document(page_content="Info about ML", metadata={"id": 2})
]
# Convert single document
toon_doc = langchain_to_toon(docs[0])
# Convert list of documents (more efficient)
toon_docs_str = langchain_to_toon(docs)
# Output (approximate):
# - page_content: Info about AI
# metadata: {id: 1}
# - page_content: Info about ML
# metadata: {id: 2}
# Convert back
# Returns a single Document if input was a single item's TOON string
restored_doc = toon_to_langchain(toon_doc)
# Returns a list of Documents if input was a list's TOON string
# Note: toon_to_langchain currently returns a single Document or list based on structure,
# but explicitly checking the type is recommended.
Message Conversion
from langchain.schema import HumanMessage, AIMessage
from toonverter.integrations import messages_to_toon, toon_to_messages
messages = [
HumanMessage(content="What is TOON?"),
AIMessage(content="TOON is a token-optimized format")
]
# Convert list of messages
# This wraps them in a structure like {"messages": [...]} for safe parsing
toon_str = messages_to_toon(messages)
# Convert back to list of Message objects
restored_msgs = toon_to_messages(toon_str)
Use Cases
Vector Database Storage
from langchain.vectorstores import Chroma
from toonverter.integrations import langchain_to_toon
# Convert documents before storing
docs = load_documents()
toon_docs = [langchain_to_toon(doc) for doc in docs]
# Store with 30-60% less space
RAG Pipeline
from langchain.chains import RetrievalQA
from toonverter.integrations import langchain_to_toon, toon_to_langchain
# Convert documents for efficient retrieval
docs_toon = [langchain_to_toon(doc) for doc in docs]
# Store and retrieve efficiently
Configuration
from toonverter.integrations import langchain_to_toon
toon_str = langchain_to_toon(
doc,
include_metadata=True, # Include metadata
compact_content=False # Compact page_content
)
See Also
Quick Start - Basic usage
LangChain Integration - API reference