Skip to content

Latest commit

 

History

History
89 lines (74 loc) · 3.1 KB

File metadata and controls

89 lines (74 loc) · 3.1 KB

🏗️ System Architecture

Overview

System RAG oparty o .NET 9 + Semantic Kernel, PostgreSQL + pgvector oraz Neo4j.

📐 Architecture Layers

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
Loading

🔧 Core Services (aktualizacja)

  • ISemanticSearchService: semantic/hybrid search + reranking (Semantic, Popularity, Recency, Combined, LLM, Cohere), filtry dokumentów, HNSW tuning ef_search per zapytanie
  • IEmbeddingService: 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, zapytania Cypher
  • ILLMService: generacja odpowiedzi (streaming), per‑żądanie Kernel z override (BaseUrl/API Key/Model) dla custom-openai

📑 Pipeline RAG (szczegóły)

Kompletny opis aktualnego pipeline’u znajduje się w dokumencie: RAG_PIPELINE.md

Baza danych (aktualizacja)

  • PostgreSQL 17 + pgvector 0.7+; kolumna embedding VECTOR(1536) dla spójnego storage
  • Elastyczne wymiary: kolumna embedding_dimension przechowuje oryginalny wymiar (np. 384/768/1536), serwis normalizuje (pad/trim)
  • HNSW index dla szybkiego similarity search; strojenie: m, ef_construction, runtime ef_search
  • Neo4j dla grafu wiedzy (połączenia dokument–chunk, relacje semantyczne)

UI

  • 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)