System RAG oparty o .NET 9 + Semantic Kernel, PostgreSQL + pgvector oraz Neo4j.
graph TB
subgraph "🎯 Presentation Layer"
UI[Blazor Server UI<br/>Real-time Interface]
API[Web API<br/>REST Endpoints]
end
subgraph "🧠 Application Layer"
RAG[RAG Service<br/>Main Orchestrator]
CTRL[Controllers<br/>API Endpoints]
end
subgraph "💼 Business Layer"
DOC[Document Processor]
SEARCH[Semantic Search]
LLM[LLM Service]
VECTOR[Vector Store]
EMB[Embedding Service]
CHUNK[Text Chunking]
GRAPH[Graph Database Service (Neo4j)]
end
subgraph "💾 Data Layer"
EF[Entity Framework Core]
PG[(PostgreSQL + pgvector)]
NEO4J[(Neo4j)]
FILES[File System]
end
subgraph "🌐 External Services"
OPENAI[OpenAI]
GEMINI[Google Gemini]
AZURE[Azure OpenAI]
CLAUDE[Anthropic]
XAI[xAI]
COHERE[Cohere]
end
UI --> RAG
API --> CTRL
CTRL --> RAG
RAG --> DOC
RAG --> SEARCH
RAG --> LLM
RAG --> VECTOR
RAG --> GRAPH
DOC --> CHUNK
DOC --> EMB
SEARCH --> VECTOR
VECTOR --> EF
EF --> PG
GRAPH --> NEO4J
DOC --> FILES
LLM --> OPENAI
LLM --> AZURE
LLM --> GEMINI
ISemanticSearchService: semantic/hybrid search + reranking (Semantic,Popularity,Recency,Combined,LLM,Cohere), filtry dokumentów, HNSW tuningef_searchper zapytanieIEmbeddingService: Local, OpenAI (text-embedding-3-*), Google (gemini-embedding-001), Azure OpenAI, Ollama, Custom OpenAI‑compatible (OpenRouter/DeepSeek/Together via OpenAI API)IGraphDatabaseService: implementacja Neo4j (Neo4jGraphDatabaseService) – węzły dokumentów/chunków, relacje, zapytaniaCypherILLMService: generacja odpowiedzi (streaming), per‑żądanie Kernel z override (BaseUrl/API Key/Model) dlacustom-openai
Kompletny opis aktualnego pipeline’u znajduje się w dokumencie: RAG_PIPELINE.md
- PostgreSQL 17 + pgvector 0.7+; kolumna
embedding VECTOR(1536)dla spójnego storage - Elastyczne wymiary: kolumna
embedding_dimensionprzechowuje oryginalny wymiar (np. 384/768/1536), serwis normalizuje (pad/trim) - HNSW index dla szybkiego similarity search; strojenie:
m,ef_construction, runtimeef_search - Neo4j dla grafu wiedzy (połączenia dokument–chunk, relacje semantyczne)
- Blazor .NET 9 (Routes.razor globalny
InteractiveServer) - MudBlazor: snackbary, formularze, listy, selektory modeli
- Strony:
Index,Embeddings,Testing,Documents,Graph,Settings,Chat,Tenants,Bots Chat: streaming (SignalR/SK), markdown, wybór modelu/provider’a, ostrzeżenia o kluczach API, historia czatu w PostgreSQL (jsonb)Bots: CRUD + JSON config, presety (Accurate/Fast/Long), mini‑chat, per‑bot overrides (LLM i przygotowane embeddings)