Batch Compiling
Compile multiple documents efficiently with progress tracking and error handling.
import asyncio
from vectorless import Engine
async def main():
engine = Engine(
api_key="sk-...",
model="gpt-4o",
)
# Compile a directory of documents
result = await engine.compile(directory="./documents/")
print(f"Compiled {len(result.items)} documents")
print(f"Failures: {len(result.failed)}")
for item in result.items:
print(f" ✓ {item.name} ({item.format}) → {item.doc_id}")
if item.metrics:
m = item.metrics
print(f" Nodes: {m.nodes_processed}, "
f"Summaries: {m.summaries_generated}, "
f"Time: {m.total_time_ms}ms")
for fail in result.failed:
print(f" ✗ {fail.source}: {fail.error}")
# List all compiled documents
docs = await engine.list_documents()
print(f"\nTotal compiled: {len(docs)} documents")
asyncio.run(main())
Error Handling
Each item in the result is either successful or failed. Failures don't prevent other documents from being compiled:
result = await engine.compile(paths=mixed_paths)
# Successful items
for item in result.items:
process(item)
# Failed items — handle gracefully
for fail in result.failed:
print(f"Failed: {fail.source} — {fail.error}")