w dniu
architecture
design-patterns
devops
quality
- Pobierz link
- X
- Inne aplikacje
Współczesne aplikacje AI coraz częściej wykorzystują koncepcję Retrieval-Augmented Generation (RAG) — połączenie mechanizmów wyszukiwania dokumentów z generatywnymi modelami językowymi (LLM).
Pozwala to tworzyć bardziej aktualne i wiarygodne odpowiedzi bez konieczności trenowania modeli na każdym nowym zbiorze danych.
W tym artykule przedstawię prostą referencyjną architekturę RAG, a także gotowy plik Structurizr DSL, dzięki któremu szybko wygenerujesz diagramy systemowe.
User Interface (UI) – aplikacja webowa lub mobilna dla użytkownika końcowego.
API Gateway – komponent obsługujący zapytania i zapewniająca bezpieczeństwo ruchu.
Orchestrator Service – moduł łączący zapytania do retrievera i LLM-a.
Retriever Service – odpowiedzialny za wyszukiwanie odpowiednich dokumentów.
LLM Service – model językowy generujący odpowiedzi w oparciu o dokumenty.
Document Database – baza danych dokumentów źródłowych.
Monitoring & Logging – infrastruktura monitoringu, alertowania i zbierania logów.
[User] → [UI] → [API Gateway] → [Orchestrator Service] ↙ ↘ [Retriever Service] [LLM Service] ↓ ↓ [Document Database] [Monitoring Stack]
Poniżej znajdziesz kompletny plik .dsl
, który możesz zaimportować np. do Structurizr Lite:
workspace { model { user = person "User" { description "Korzysta z aplikacji do wyszukiwania informacji i generowania odpowiedzi." } system = softwareSystem "Retrieval-Augmented Generation System" { description "System umożliwiający wyszukiwanie informacji i generowanie odpowiedzi na ich podstawie." ui = container "User Interface (UI)" { description "Interfejs webowy lub mobilny." technology "React / Angular / Flutter" } apiGateway = container "API Gateway" { description "Przyjmuje zapytania użytkownika, zarządza autoryzacją i ruchem." technology "NGINX / Kong" } orchestrator = container "Orchestrator Service" { description "Koordynuje przepływ danych między Retrieverem i LLM." technology "Spring Boot / Node.js" } retriever = container "Retriever Service" { description "Wyszukuje dokumenty w bazie danych." technology "Elasticsearch / Pinecone" } llmService = container "LLM Service" { description "Model językowy generujący odpowiedzi." technology "OpenAI API / Huggingface Model" } documentDB = container "Document Database" { description "Baza danych dokumentów." technology "PostgreSQL / MongoDB" } monitoring = container "Monitoring & Logging" { description "System do monitorowania i zbierania logów." technology "Prometheus + Grafana + ELK Stack" } user -> ui "Używa" "HTTPS" ui -> apiGateway "Wysyła zapytania" "HTTPS" apiGateway -> orchestrator "Przekazuje zapytanie" "HTTP/gRPC" orchestrator -> retriever "Pobiera dokumenty" "gRPC/REST" retriever -> documentDB "Zapytanie o dokumenty" "SQL/NoSQL" orchestrator -> llmService "Generuje odpowiedź" "HTTP/gRPC" orchestrator -> monitoring "Wysyła metryki" "Prometheus Exporter" llmService -> monitoring "Wysyła logi" "Logstash" } deploymentEnvironment "Production" { deploymentNode "Kubernetes Cluster" { deploymentNode "Namespace: rag-system" { containerInstance ui containerInstance apiGateway containerInstance orchestrator containerInstance retriever containerInstance llmService containerInstance documentDB containerInstance monitoring } } } } views { systemContext system { include user include system autolayout lr } container system { include * autolayout lr } deployment system "Production" { include * autolayout lr } theme default } }
Architektura referencyjna dla systemu RAG stanowi świetną bazę dla organizacji, które chcą budować aplikacje oparte o wyszukiwanie + generację treści.
Dzięki gotowym wzorcom i narzędziom takim jak Structurizr DSL, projektowanie systemów staje się szybkie, skalowalne i bardziej przejrzyste.
Komentarze
Prześlij komentarz