Skip to main content

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}")