# attenomy/cortex-intern-module-q4-2026 architecture

> Architecture diagram of the GitHub repository attenomy/cortex-intern-module-q4-2026, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-11). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/attenomy/cortex-intern-module-q4-2026
- Repository: https://github.com/attenomy/cortex-intern-module-q4-2026

## Overview

Attenomy Cortex is a modular FastAPI service for query intent routing, document ingestion and extraction, semantic caching, and telemetry. The primary request path is a client calling the API, which dispatches to a feature router; sampled routers invoke their corresponding service, which returns a feature-specific result. Ingestion sanitizes and chunks document text, while routing classifies queries. The README also describes multimodal extraction and Redis-backed caching; their implementation details are not fully shown, so those capabilities are represented without speculative internal flows.

Main entry points: [`api/main.py`](https://github.com/attenomy/cortex-intern-module-q4-2026/blob/main/api/main.py) (FastAPI application), [`api/modules/intent_router/router.py`](https://github.com/attenomy/cortex-intern-module-q4-2026/blob/main/api/modules/intent_router/router.py) (Intent router), [`api/modules/doc_ingestion/router.py`](https://github.com/attenomy/cortex-intern-module-q4-2026/blob/main/api/modules/doc_ingestion/router.py) (Ingestion router), [`api/modules/semantic_cache/router.py`](https://github.com/attenomy/cortex-intern-module-q4-2026/blob/main/api/modules/semantic_cache/router.py) (Cache router)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_api["API dispatch"]
  node_app["FastAPI application<br/>[main.py]"]
end

subgraph group_routing["Query routing"]
  node_intent_router["Intent router<br/>[router.py]"]
  node_intent_service["Intent classifier<br/>[service.py]"]
end

subgraph group_documents["Document processing"]
  node_ingest_router["Ingestion router<br/>[router.py]"]
  node_ingest_service["Sanitize and chunk<br/>[service.py]"]
  node_extractor_router["Extraction module<br/>[router.py]"]
  node_extractor_service["Document extraction<br/>[service.py]"]
end

subgraph group_cache["Semantic cache"]
  node_cache_router["Cache router<br/>[router.py]"]
  node_cache_service["Cache lookup and stats<br/>[service.py]"]
end

subgraph group_observability["Observability"]
  node_telemetry_router["Telemetry router<br/>[router.py]"]
  node_telemetry_service["Health and metrics<br/>[service.py]"]
end

node_client(("API client"))
node_redis[("Redis")]

node_client -->|"requests"| node_app
node_app -->|"mounts"| node_intent_router
node_app -->|"mounts"| node_ingest_router
node_app -->|"mounts"| node_extractor_router
node_app -->|"mounts"| node_cache_router
node_app -->|"mounts"| node_telemetry_router
node_intent_router -->|"calls"| node_intent_service
node_ingest_router -->|"calls"| node_ingest_service
node_cache_router -->|"calls"| node_cache_service
node_telemetry_router -->|"calls"| node_telemetry_service
node_cache_service -.->|"may use"| node_redis

click node_app "https://github.com/attenomy/cortex-intern-module-q4-2026/blob/main/api/main.py"
click node_intent_router "https://github.com/attenomy/cortex-intern-module-q4-2026/blob/main/api/modules/intent_router/router.py"
click node_intent_service "https://github.com/attenomy/cortex-intern-module-q4-2026/blob/main/api/modules/intent_router/service.py"
click node_ingest_router "https://github.com/attenomy/cortex-intern-module-q4-2026/blob/main/api/modules/doc_ingestion/router.py"
click node_ingest_service "https://github.com/attenomy/cortex-intern-module-q4-2026/blob/main/api/modules/doc_ingestion/service.py"
click node_extractor_router "https://github.com/attenomy/cortex-intern-module-q4-2026/blob/main/api/modules/doc_extractor/router.py"
click node_extractor_service "https://github.com/attenomy/cortex-intern-module-q4-2026/blob/main/api/modules/doc_extractor/service.py"
click node_cache_router "https://github.com/attenomy/cortex-intern-module-q4-2026/blob/main/api/modules/semantic_cache/router.py"
click node_cache_service "https://github.com/attenomy/cortex-intern-module-q4-2026/blob/main/api/modules/semantic_cache/service.py"
click node_telemetry_router "https://github.com/attenomy/cortex-intern-module-q4-2026/blob/main/api/modules/telemetry_obs/router.py"
click node_telemetry_service "https://github.com/attenomy/cortex-intern-module-q4-2026/blob/main/api/modules/telemetry_obs/service.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_app,node_client toneBlue
class node_intent_router,node_intent_service,node_redis toneAmber
class node_ingest_router,node_ingest_service,node_extractor_router,node_extractor_service toneMint
class node_cache_router,node_cache_service toneRose
class node_telemetry_router,node_telemetry_service toneIndigo
```

## Components

### API dispatch

- [FastAPI application](https://github.com/attenomy/cortex-intern-module-q4-2026/blob/main/api/main.py): `api/main.py`

### Query routing

- [Intent router](https://github.com/attenomy/cortex-intern-module-q4-2026/blob/main/api/modules/intent_router/router.py): `api/modules/intent_router/router.py`
- [Intent classifier](https://github.com/attenomy/cortex-intern-module-q4-2026/blob/main/api/modules/intent_router/service.py): `api/modules/intent_router/service.py`

### Document processing

- [Ingestion router](https://github.com/attenomy/cortex-intern-module-q4-2026/blob/main/api/modules/doc_ingestion/router.py): `api/modules/doc_ingestion/router.py`
- [Sanitize and chunk](https://github.com/attenomy/cortex-intern-module-q4-2026/blob/main/api/modules/doc_ingestion/service.py): `api/modules/doc_ingestion/service.py`
- [Extraction module](https://github.com/attenomy/cortex-intern-module-q4-2026/blob/main/api/modules/doc_extractor/router.py): `api/modules/doc_extractor/router.py`
- [Document extraction](https://github.com/attenomy/cortex-intern-module-q4-2026/blob/main/api/modules/doc_extractor/service.py): `api/modules/doc_extractor/service.py`

### Semantic cache

- [Cache router](https://github.com/attenomy/cortex-intern-module-q4-2026/blob/main/api/modules/semantic_cache/router.py): `api/modules/semantic_cache/router.py`
- [Cache lookup and stats](https://github.com/attenomy/cortex-intern-module-q4-2026/blob/main/api/modules/semantic_cache/service.py): `api/modules/semantic_cache/service.py`

### Observability

- [Telemetry router](https://github.com/attenomy/cortex-intern-module-q4-2026/blob/main/api/modules/telemetry_obs/router.py): `api/modules/telemetry_obs/router.py`
- [Health and metrics](https://github.com/attenomy/cortex-intern-module-q4-2026/blob/main/api/modules/telemetry_obs/service.py): `api/modules/telemetry_obs/service.py`

### Other components

- **API client**
- **Redis**

## Connections

- API client → FastAPI application: requests
- FastAPI application → Intent router: mounts (evidence: `api/main.py`)
- FastAPI application → Ingestion router: mounts (evidence: `api/main.py`)
- FastAPI application → Extraction module: mounts (evidence: `api/main.py`)
- FastAPI application → Cache router: mounts (evidence: `api/main.py`)
- FastAPI application → Telemetry router: mounts (evidence: `api/main.py`)
- Intent router → Intent classifier: calls (evidence: `api/modules/intent_router/router.py`)
- Ingestion router → Sanitize and chunk: calls (evidence: `api/modules/doc_ingestion/router.py`)
- Cache router → Cache lookup and stats: calls (evidence: `api/modules/semantic_cache/router.py`)
- Telemetry router → Health and metrics: calls (evidence: `api/modules/telemetry_obs/router.py`)
- Cache lookup and stats → Redis: may use
