%% Autogenerated ai-rag-llm
graph TD
classDef standard fill:#1e293b,stroke:#38bdf8,stroke-width:1px,color:#e5e7eb;
classDef c-actor fill:#1e293b,stroke:#e5e7eb,stroke-width:1px,stroke-dasharray: 5 5,color:#e5e7eb;
classDef c-compute fill:#422006,stroke:#fb923c,stroke-width:1px,color:#fed7aa;
classDef c-database fill:#064e3b,stroke:#34d399,stroke-width:1px,color:#d1fae5;
classDef c-network fill:#2e1065,stroke:#a855f7,stroke-width:1px,color:#f3e8ff;
classDef c-storage fill:#450a0a,stroke:#f87171,stroke-width:1px,color:#fee2e2;
classDef c-security fill:#450a0a,stroke:#f87171,stroke-width:1px,color:#fee2e2;
classDef c-gateway fill:#2e1065,stroke:#a855f7,stroke-width:1px,color:#f3e8ff;
classDef c-container fill:#422006,stroke:#facc15,stroke-width:1px,color:#fef9c3;
subgraph inference ["Inference Pipeline"]
direction TB
query_api(("<img src="/icons/inframap/edge.png" width="32" height="32" /><br/><b>Query API</b><br/><i>gateway</i><br/><span style='font-size:0.8em'>REST/GraphQL endpoint</span>"))
class query_api c-network
retriever("<img src="/icons/inframap/compute.png" width="32" height="32" /><br/><b>Retrieval Service</b><br/><i>service</i><br/><span style='font-size:0.8em'>Semantic search</span>")
class retriever c-compute
llm_service("<img src="/icons/inframap/compute.png" width="32" height="32" /><br/><b>LLM Service</b><br/><i>service</i><br/><span style='font-size:0.8em'>OpenAI / Anthropic API</span>")
class llm_service c-compute
end
subgraph data_pipeline ["Data Pipeline"]
direction TB
ingestion_pipeline("<img src="/icons/inframap/compute.png" width="32" height="32" /><br/><b>Document Ingestion</b><br/><i>service</i><br/><span style='font-size:0.8em'>Parse, chunk, embed</span>")
class ingestion_pipeline c-compute
embedding_service("<img src="/icons/inframap/compute.png" width="32" height="32" /><br/><b>Embedding Service</b><br/><i>service</i><br/><span style='font-size:0.8em'>Text → Vectors</span>")
class embedding_service c-compute
doc_storage[("<img src="/icons/inframap/database.png" width="32" height="32" /><br/><b>Document Storage</b><br/><i>database</i><br/><span style='font-size:0.8em'>S3 / Blob Storage</span>")]
class doc_storage c-database
vector_db[("<img src="/icons/inframap/database.png" width="32" height="32" /><br/><b>Vector Database</b><br/><i>database</i><br/><span style='font-size:0.8em'>Pinecone / Weaviate</span>")]
class vector_db c-database
end
%% Orphans
users(("<img src="/icons/inframap/user.png" width="32" height="32" /><br/><b>Users</b><br/><i>actor</i><br/><span style='font-size:0.8em'>End users querying AI</span>"))
class users c-actor
%% Edges
users -.-> query_api
query_api -.-> retriever
query_api -.-> llm_service
retriever -.-> vector_db
ingestion_pipeline -.-> embedding_service
ingestion_pipeline -.-> vector_db