Skip to Content
We are live but in Staging 🎉
PipelinesRecipesOverview

Recipes

Self-contained, runnable scenarios using K3’s production Scriptum catalog. Every recipe is grounded in a real template (no inventions) and uses the same dodil data flow you saw in the Quickstart.

What’s here

RecipeTemplate usedDestinationWhen you need it
PDF → Vectortext_embedding_indexVector collectionAuto-index PDFs / docx / HTML for semantic search (the canonical RAG ingest)
Pipeline Collectiontext_embedding_indexVector collectionThe full auto-embed collection flow — create, bind a rule, ingest, search
External Collection— (BYO embeddings)Vector collection (a plain table)Compute embeddings yourself and write vectors over the Qdrant / Pinecone adapters or SQL
Documents → Warehouseentity_pii_extractionWarehouse tableExtract structured entities + PII into rows you can query with SQL
Replay & RetryRecover from FAILED / PARTIAL ingest jobs, replay after pipeline changes

The one-command shortcut

Before wiring anything by hand, check whether a built-in recipe already covers it. dodil data recipe install provisions the pipeline and binds the ingest rule in a single command — the only path that does both:

RecipeStands upHand-wired equivalent
document-ragtext_embedding_index + doc-glob rulePDF → Vector
code-ragcode_embedding_index + source-extension rulesame shape
image-ragvisual_embedding_index + image-glob rulesame shape
invoice-intakeinvoice_parsing → table + ruleDocuments → Warehouse
transcriptionaudio_transcription → table, then text_embedding_index → vector
summarize-to-markdownsummarization → object destination summaries/
summarize-then-ragthe above, then indexes summaries/ for search
genericvector index + classification/summarization tables

Those eight ids are the complete list. See dodil data recipe. The pages below build the same chains step by step, so you can see — and vary — each piece.

Other templates worth knowing

The recipes here pick one template each as the worked example. The same flow works with any of the 34 catalog templates — swap the --template argument and use the creator matching the destination facet:

GoalTemplateDestinationCreate with
Code search across a repocode_embedding_indexVectorvector collection add
Multimodal asset libraryvisual_embedding_indexVectorvector collection add
Face recognitionface_embedding_indexVectorvector collection add
Open-vocabulary object indexingobject_embedding_indexVectorvector collection add
Object detection → rowsobject_detectionWarehousetable pipeline create
Audio transcriptionaudio_transcriptionWarehousetable pipeline create
Document classificationclassificationWarehousetable pipeline create
Document triage / routingdocument_triageWarehousetable pipeline create
Sentiment dashboardssentiment_intent_analysis or review_analysisWarehousetable pipeline create
Image understanding (OCR + detection + reasoning)image_understandingWarehousetable pipeline create
TranslationtranslationWarehousetable pipeline create
Code intelligence (symbols, deps)code_intelligenceWarehousetable pipeline create
Product catalog enrichmentproduct_catalog_enrichmentWarehousetable pipeline create
Financial KPI extractionfinancial_statement_extractionWarehousetable pipeline create
Verbatim XLSX row ingesttabular_data_ingestWarehousetable pipeline create
Video surveillancevideo_surveillanceWarehousetable pipeline create
Summaries written back as filessummarizationObjectobject destination create

dodil data table templates prints the authoritative warehouse-compatible subset (17 templates, filtered server-side by facet=TABLE). Full descriptions, modalities and labels: API Reference → Templates → The catalog.

Conventions used in these recipes

  • CLI-first — every step has a dodil data ... command. Anything not in the CLI today drops to curl against the API; where a recipe ends by querying what it built, it shows the native client (SQL over the Postgres wire, dodil data search) rather than curl.
  • Endpoint examples use the production control plane https://api.data.dodil.io. Table and vector data operations do not live there — they go to the tables-gateway.
  • Buckets use the placeholder kb-prod; replace with your real bucket name.
  • Internal source is automatic — every bucket has one from CreateBucket, named internal with provider SOURCE_PROVIDER_INTERNAL_S3. You only look up its source_id to wire rules. Its status reads SOURCE_STATUS_PENDING until it first syncs; that’s fine.
  • A pipeline without a rule never runs. No facet creator derives an ingest rule for you — binding one is a separate, mandatory step in every recipe here. Only recipe install does both.
  • Destinations are created by facet creators, not by pipeline create. CreatePipeline binds to a destination that already exists, or makes a free pipeline; it never creates one.
  • External sources are Preview — these recipes use the internal source exclusively; the same pipeline + rule + job model works once external sources go GA.

See also

  • Pipelines — the pipelines engine overview
  • Quickstart — first pipeline + first ingest in 5 minutes
  • Core Concepts — Source, Credential, Pipeline, Template, Rule, IngestJob
  • API Reference — Source / Pipeline / Ingest contracts
  • CLI Guide — every dodil data command in this domain