@startuml
skinparam handwritten true
skinparam shadowing false
skinparam defaultFontName "Comic Sans MS"
top to bottom direction

' Стилизация блоков
skinparam package {
    BackgroundColor #E6F2FF
    BorderColor #0033CC
}
skinparam component {
    BackgroundColor #FFFFFF
    BorderColor #0033CC
}
skinparam database {
    BackgroundColor #FFF2CC
    BorderColor #CC6600
}

package "Input Channels" {
  component "WhatsApp" as WA
  component "Telegram" as TG
  component "Website Parser" as WP
  component "Dashboard" as DB
}

package "Main Server (Training Data Pipeline)" {
  component "API Gateway" as AG #E6FFE6
  component "Audio Processor" as AP #E6FFE6
  component "Document Processor" as DP #E6FFE6
  component "Chunking Service" as CS #E6FFE6
  
  AG --> AP
  AG --> DP
  AP --> CS
  DP --> CS
}

package "Data Storage" {
  database "Vector Database" as VD
  database "Document Store" as DS
}

package "Chat Bot Product" {
  component "Bot Engine" as BE #FFE6E6
  component "Business Widget" as BW #FFE6E6
  BE -> BW : Instant AI Responses
}

component "Business Websites" as Sites #F2E6FF

' Связи от источников
WA --> AG : Audio & Docs
TG --> AG : Audio & Docs
WP --> AG : Parsed Site Data
DB --> AG : Manual Entry

' Связи в базу
CS --> VD : Embeddings / Chunks
CS --> DS : Processed Files

' Связи от базы к боту
VD ..> BE : Instant Retrieval (RAG)
DS ..> BE : Raw Data Access

' Связь с клиентом
BW --> Sites : Embedded Widget

@enduml
