Julee Framework Documentation¶
Welcome to the Julee documentation. Julee is a Python framework for building document processing applications using the Capture, Extract, Assemble, Publish (CEAP) pattern with Temporal workflows.
What is Julee?¶
A reusable framework and a business application are different beasts. One is a vocabulary for building things; the other is the thing being built.
Julee is a framework—a vocabulary. You install Julee as a dependency in your project and use its patterns, abstractions, and utilities to build your own document processing applications. Those applications (solutions) are organised around your business domain, using Julee’s vocabulary to express your specific needs.
The CEAP Pattern¶
The Capture, Extract, Assemble, Publish pattern provides a structured approach to document processing:
Capture: Ingest documents into the system
Extract: Use AI/knowledge services to extract structured data
Assemble: Combine extracted data according to specifications
Publish: Output the assembled content
Why Julee?¶
Framework, not a monolith: Build your application using Julee’s components
Temporal-native: Built-in workflow orchestration for long-running processes
Clean Architecture: Protocol-based design with clear separation of concerns
Type-safe: Full Pydantic and mypy support
Extensible: Plug in your own storage, AI services, and business logic
Quick Example¶
Install Julee in your project:
pip install julee
Define your domain model:
from pydantic import BaseModel
class Invoice(BaseModel):
number: str
amount: float
date: str
Create a workflow using Julee:
from temporalio import workflow
from julee.workflows import extract_assemble_pattern
@workflow.defn
class InvoiceWorkflow:
@workflow.run
async def run(self, invoice_id: str) -> dict:
# Use Julee's patterns and components
return await extract_assemble_pattern(...)
Framework Components¶
Julee provides these reusable components:
Domain Layer¶
Base Models: Pydantic models for common entities (Document, Assembly, etc.)
Repository Protocols: Abstract interfaces for data access
Use Case Patterns: Reusable business logic patterns
Infrastructure Layer¶
MinIO Repository: S3-compatible object storage implementation
Memory Repository: In-memory storage for testing
Temporal Integration: Activity decorators and workflow patterns
Service Layer¶
Knowledge Service Protocol: Abstraction for AI/LLM services
Service Implementations: Ready-to-use service integrations
Example Application¶
This repository includes a reference application that demonstrates how to build with Julee. The example implements a meeting minutes extraction system and shows:
How to structure a Julee application
Workflow implementation patterns
Knowledge service integration
Storage configuration
API layer (optional)
The example is deployable with Docker Compose and includes:
FastAPI REST API
React UI
Temporal worker
MinIO storage
Demo data
Documentation Contents¶
Architecture
API Reference
Contributing