Skip to main content

Overview

The rag built-in member provides retrieval-augmented generation using Cloudflare Vectorize for semantic search and document retrieval.
- member: rag-search
  type: Function
  config:
    builtin: rag
    operation: search
    query: ${input.question}
    namespace: knowledge-base
    topK: 5

Operations

Index

Index documents for search:
- member: index-docs
  type: Function
  config:
    builtin: rag
    operation: index
    documents: ${input.docs}
    namespace: kb
    chunkSize: 512
    chunkStrategy: semantic
Semantic search:
- member: search
  type: Function
  config:
    builtin: rag
    operation: search
    query: ${input.question}
    namespace: kb
    topK: 5
    threshold: 0.7

Hybrid

Combine keyword and semantic search:
- member: hybrid-search
  type: Function
  config:
    builtin: rag
    operation: hybrid
    query: ${input.question}
    namespace: kb
    topK: 10
    rerank: true

Chunking Strategies

  • semantic - Split on sentence boundaries
  • sliding_window - Overlapping chunks
  • fixed - Fixed-size chunks

Output

interface RAGOutput {
  results: Array<{
    content: string;
    score: number;
    metadata?: Record<string, any>;
  }>;
  took: number;
}

Example Pipeline

flow:
  - member: search-kb
    type: Function
    config:
      builtin: rag
      operation: search
      query: ${input.question}
      namespace: kb

  - member: generate-answer
    type: Think
    config:
      model: '@cf/meta/llama-3.1-8b-instruct'
      prompt: |
        Context: ${search-kb.output.results}
        Question: ${input.question}
        Answer: