# adieuj777/rag-framework-generator architecture

> Architecture diagram of the GitHub repository adieuj777/rag-framework-generator, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-30). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/adieuj777/rag-framework-generator
- Repository: https://github.com/adieuj777/rag-framework-generator

## Overview

Autou-build is a web-based Advanced RAG framework generator with an evaluation-and-selection workflow. Users configure RAG strategies and providers, preview or write a generated project, or select documents and compare configurations through a background evaluator. The evaluator loads documents, synthesizes test questions, runs each RAG configuration, scores answers, and returns a ranking. The source excerpts show the main orchestration paths; generated-project templates are present in the tree but were not sampled, so their internal behavior is not expanded here.

Main entry points: [`autou-build/rag_evaluator/evaluate.py`](https://github.com/adieuj777/rag-framework-generator/blob/main/autou-build/rag_evaluator/evaluate.py) (Evaluation orchestrator), [`autou-build/app/main.py`](https://github.com/adieuj777/rag-framework-generator/blob/main/autou-build/app/main.py) (FastAPI routes), [`autou-build/app/generator/engine.py`](https://github.com/adieuj777/rag-framework-generator/blob/main/autou-build/app/generator/engine.py) (Spec and generation engine), [`autou-build/app/eval_runner.py`](https://github.com/adieuj777/rag-framework-generator/blob/main/autou-build/app/eval_runner.py) (Evaluation job runner)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web interface"]
  node_browser["Browser UI<br/>[app.js]"]
  node_api["FastAPI routes<br/>[main.py]"]
  node_directory["Directory picker"]
end

subgraph group_generation["Framework generation"]
  node_options["Strategy options<br/>[config.py]"]
  node_generator["Spec and generation engine<br/>[engine.py]"]
  node_templates["Project templates"]
end

subgraph group_evaluation["RAG evaluation"]
  node_runner["Evaluation job runner<br/>[eval_runner.py]"]
  node_evaluate["Evaluation orchestrator<br/>[evaluate.py]"]
  node_documents["Document loading<br/>[evaluate.py]"]
  node_testset["Test-set synthesis<br/>[testset.py]"]
  node_pipeline["Configurable RAG pipeline<br/>[rag.py]"]
  node_metrics["Evaluation metrics<br/>[metrics.py]"]
  node_report["Ranked evaluation report<br/>[evaluate.py]"]
end

subgraph group_shared["Shared model setup"]
  node_providers["Provider factories<br/>[providers.py]"]
end

node_user(("User"))
node_filesystem[("Target project files")]
node_models{{"LLM and embedding providers"}}
node_vectorstores[("Vector stores")]

node_user -->|"configures or evaluates"| node_browser
node_browser -->|"calls API"| node_api
node_api -->|"reads options"| node_options
node_api -->|"validates and generates"| node_generator
node_generator -->|"validates against"| node_options
node_generator -->|"uses provider definitions"| node_providers
node_generator -->|"renders templates"| node_templates
node_api -->|"writes generated files"| node_filesystem
node_api -->|"requests directory"| node_directory
node_api -->|"starts and polls jobs"| node_runner
node_runner -->|"launches evaluator"| node_evaluate
node_evaluate -->|"loads selected files"| node_documents
node_evaluate -->|"builds models"| node_providers
node_providers -.->|"constructs clients"| node_models
node_evaluate -->|"generates test set"| node_testset
node_evaluate -->|"builds each configuration"| node_pipeline
node_pipeline -->|"creates index"| node_vectorstores
node_evaluate -->|"scores answers"| node_metrics
node_evaluate -->|"ranks results"| node_report
node_runner -->|"reads report file"| node_report

click node_browser "https://github.com/adieuj777/rag-framework-generator/blob/main/autou-build/app/static/app.js"
click node_api "https://github.com/adieuj777/rag-framework-generator/blob/main/autou-build/app/main.py"
click node_options "https://github.com/adieuj777/rag-framework-generator/blob/main/autou-build/app/config.py"
click node_directory "https://github.com/adieuj777/rag-framework-generator/blob/main/autou-build/app/directory_picker.py"
click node_generator "https://github.com/adieuj777/rag-framework-generator/blob/main/autou-build/app/generator/engine.py"
click node_templates "https://github.com/adieuj777/rag-framework-generator/tree/main/autou-build/app/generator/templates"
click node_runner "https://github.com/adieuj777/rag-framework-generator/blob/main/autou-build/app/eval_runner.py"
click node_evaluate "https://github.com/adieuj777/rag-framework-generator/blob/main/autou-build/rag_evaluator/evaluate.py"
click node_documents "https://github.com/adieuj777/rag-framework-generator/blob/main/autou-build/rag_evaluator/evaluate.py"
click node_testset "https://github.com/adieuj777/rag-framework-generator/blob/main/autou-build/rag_evaluator/testset.py"
click node_pipeline "https://github.com/adieuj777/rag-framework-generator/blob/main/autou-build/rag_evaluator/rag.py"
click node_metrics "https://github.com/adieuj777/rag-framework-generator/blob/main/autou-build/rag_evaluator/metrics.py"
click node_providers "https://github.com/adieuj777/rag-framework-generator/blob/main/autou-build/providers.py"
click node_report "https://github.com/adieuj777/rag-framework-generator/blob/main/autou-build/rag_evaluator/evaluate.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_browser,node_api,node_directory,node_user toneBlue
class node_options,node_generator,node_templates,node_filesystem,node_vectorstores toneAmber
class node_runner,node_evaluate,node_documents,node_testset,node_pipeline,node_metrics,node_report toneMint
class node_providers toneRose
class node_models toneIndigo
```

## Components

### Web interface

- [Browser UI](https://github.com/adieuj777/rag-framework-generator/blob/main/autou-build/app/static/app.js): `autou-build/app/static/app.js`
- [FastAPI routes](https://github.com/adieuj777/rag-framework-generator/blob/main/autou-build/app/main.py): `autou-build/app/main.py`
- [Directory picker](https://github.com/adieuj777/rag-framework-generator/blob/main/autou-build/app/directory_picker.py): `autou-build/app/directory_picker.py`

### Framework generation

- [Strategy options](https://github.com/adieuj777/rag-framework-generator/blob/main/autou-build/app/config.py): `autou-build/app/config.py`
- [Spec and generation engine](https://github.com/adieuj777/rag-framework-generator/blob/main/autou-build/app/generator/engine.py): `autou-build/app/generator/engine.py`
- [Project templates](https://github.com/adieuj777/rag-framework-generator/tree/main/autou-build/app/generator/templates): `autou-build/app/generator/templates`

### RAG evaluation

- [Evaluation job runner](https://github.com/adieuj777/rag-framework-generator/blob/main/autou-build/app/eval_runner.py): `autou-build/app/eval_runner.py`
- [Evaluation orchestrator](https://github.com/adieuj777/rag-framework-generator/blob/main/autou-build/rag_evaluator/evaluate.py): `autou-build/rag_evaluator/evaluate.py`
- [Document loading](https://github.com/adieuj777/rag-framework-generator/blob/main/autou-build/rag_evaluator/evaluate.py): `autou-build/rag_evaluator/evaluate.py`
- [Test-set synthesis](https://github.com/adieuj777/rag-framework-generator/blob/main/autou-build/rag_evaluator/testset.py): `autou-build/rag_evaluator/testset.py`
- [Configurable RAG pipeline](https://github.com/adieuj777/rag-framework-generator/blob/main/autou-build/rag_evaluator/rag.py): `autou-build/rag_evaluator/rag.py`
- [Evaluation metrics](https://github.com/adieuj777/rag-framework-generator/blob/main/autou-build/rag_evaluator/metrics.py): `autou-build/rag_evaluator/metrics.py`
- [Ranked evaluation report](https://github.com/adieuj777/rag-framework-generator/blob/main/autou-build/rag_evaluator/evaluate.py): `autou-build/rag_evaluator/evaluate.py`

### Shared model setup

- [Provider factories](https://github.com/adieuj777/rag-framework-generator/blob/main/autou-build/providers.py): `autou-build/providers.py`

### Other components

- **User**
- **Target project files**
- **LLM and embedding providers**
- **Vector stores**

## Connections

- User → Browser UI: configures or evaluates (evidence: `autou-build/app/static/app.js`)
- Browser UI → FastAPI routes: calls API (evidence: `autou-build/app/static/app.js`)
- FastAPI routes → Strategy options: reads options (evidence: `autou-build/app/main.py`)
- FastAPI routes → Spec and generation engine: validates and generates (evidence: `autou-build/app/main.py`)
- Spec and generation engine → Strategy options: validates against (evidence: `autou-build/app/generator/engine.py`)
- Spec and generation engine → Provider factories: uses provider definitions (evidence: `autou-build/app/generator/engine.py`)
- Spec and generation engine → Project templates: renders templates (evidence: `autou-build/app/generator/engine.py`)
- FastAPI routes → Target project files: writes generated files (evidence: `autou-build/app/main.py`)
- FastAPI routes → Directory picker: requests directory (evidence: `autou-build/app/main.py`)
- FastAPI routes → Evaluation job runner: starts and polls jobs (evidence: `autou-build/app/main.py`)
- Evaluation job runner → Evaluation orchestrator: launches evaluator (evidence: `autou-build/app/eval_runner.py`)
- Evaluation orchestrator → Document loading: loads selected files (evidence: `autou-build/rag_evaluator/evaluate.py`)
- Evaluation orchestrator → Provider factories: builds models (evidence: `autou-build/rag_evaluator/evaluate.py`)
- Provider factories → LLM and embedding providers: constructs clients (evidence: `autou-build/providers.py`)
- Evaluation orchestrator → Test-set synthesis: generates test set (evidence: `autou-build/rag_evaluator/evaluate.py`)
- Evaluation orchestrator → Configurable RAG pipeline: builds each configuration (evidence: `autou-build/rag_evaluator/evaluate.py`)
- Configurable RAG pipeline → Vector stores: creates index (evidence: `autou-build/rag_evaluator/rag.py`)
- Evaluation orchestrator → Evaluation metrics: scores answers (evidence: `autou-build/rag_evaluator/evaluate.py`)
- Evaluation orchestrator → Ranked evaluation report: ranks results (evidence: `autou-build/rag_evaluator/evaluate.py`)
- Evaluation job runner → Ranked evaluation report: reads report file (evidence: `autou-build/app/eval_runner.py`)
