Skip to content

ABorisovSfedu/Moduls

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

15 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

GrantProj - БистСма ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π°ΡƒΠ΄ΠΈΠΎ ΠΈ NLP

Π’Ρ€Π΅Ρ…ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Π°Ρ систСма для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π°ΡƒΠ΄ΠΈΠΎ, транскрипции, извлСчСния структурированной ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ NLP ΠΈ сопоставлСния с Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ элСмСнтами.

АрхитСктура систСмы

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    HTTP/WebSocket    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Mod1_v2       β”‚ ──────────────────► β”‚   Mod2-v1       β”‚                      β”‚   Mod3-v1       β”‚
β”‚   (ASR + Chunk) β”‚                      β”‚   (NLP + Layout)β”‚                      β”‚   (Visual Map)  β”‚
β”‚   Port: 8080    β”‚                      β”‚   Port: 8001    β”‚                      β”‚   Port: 9001    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„
                                    β”‚   Web Application   β”‚
                                    β”‚   (Frontend)        β”‚
                                    β”‚   Port: 3000        β”‚
                                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                                   β”‚
                                                   β–Ό HTTP API
                                                   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                                                   β”‚   Mod3-v1       β”‚
                                                   β”‚   (Visual Map)  β”‚
                                                   β”‚   Port: 9001    β”‚
                                                   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

ΠœΠΎΠ΄ΡƒΠ»ΡŒ 1 (Mod1_v2) - ASR ΠΈ Π§Π°Π½ΠΊΠΈΠ½Π³

НазначСниС: РаспознаваниС Ρ€Π΅Ρ‡ΠΈ, Ρ€Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ Π½Π° Ρ‡Π°Π½ΠΊΠΈ ΠΈ доставка Π΄Π°Π½Π½Ρ‹Ρ…

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

  • 🎀 РаспознаваниС Ρ€Π΅Ρ‡ΠΈ (Whisper)
  • βœ‚οΈ Π§Π°Π½ΠΊΠΈΠ½Π³ тСкста ΠΏΠΎ прСдлоТСниям
  • πŸ“‘ WebSocket стриминг Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ
  • πŸ”„ Доставка Π΄Π°Π½Π½Ρ‹Ρ… Π² Mod2 Ρ‡Π΅Ρ€Π΅Π· webhooks

API Endpoints:

REST API:

  • POST /v1/transcribe - ΠŸΠ°ΠΊΠ΅Ρ‚Π½Π°Ρ транскрипция Ρ„Π°ΠΉΠ»Π°
  • GET /v1/session/{sid}/text - ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ тСкст сСссии
  • GET /v1/session/{sid}/chunks - ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‡Π°Π½ΠΊΠΈ сСссии
  • POST /v1/hooks/register - РСгистрация webhook'ΠΎΠ²
  • GET /healthz - ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π·Π΄ΠΎΡ€ΠΎΠ²ΡŒΡ

WebSocket:

  • WS /v1/stream - Π‘Ρ‚Ρ€ΠΈΠΌΠΈΠ½Π³ Π°ΡƒΠ΄ΠΈΠΎ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ

Π’Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅:

  • Аудио Ρ„Π°ΠΉΠ»Ρ‹ (WAV, MP3, etc.)
  • WebSocket Π°ΡƒΠ΄ΠΈΠΎ стрим
  • ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹: session_id, lang (ru-RU), emit_partial

Π’Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅:

  • Π§Π°Π½ΠΊΠΈ (JSON) с полями:
    {
      "session_id": "string",
      "chunk_id": "string", 
      "seq": 1,
      "text": "string",
      "overlap_prefix": "string|null",
      "lang": "ru-RU"
    }
  • Π€ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ (JSON):
    {
      "session_id": "string",
      "text_full": "string",
      "lang": "ru-RU",
      "duration_sec": 120.5,
      "total_chunks": 15
    }

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ:

# config.yaml
app:
  host: 0.0.0.0
  port: 8080
  log_level: info
  emit_partial: true

whisper:
  model: small
  device: cpu
  language: ru
  vad_filter: true

chunking:
  sent_min: 3
  sent_max: 5
  char_limit: 1200
  overlap_sent: 1

ΠœΠΎΠ΄ΡƒΠ»ΡŒ 2 (Mod2-v1) - NLP ΠΈ Layout

НазначСниС: ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° тСкста, ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ сущностСй ΠΈ гСнСрация layout'ΠΎΠ²

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

  • 🧠 NLP ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° (Stanza для русского языка)
  • πŸ” Π˜Π·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… Ρ„Ρ€Π°Π· (NOUN, ADJ+NOUN, NOUN+NOUN)
  • 🎯 Маппинг Π½Π° ΠΎΠ½Ρ‚ΠΎΠ»ΠΎΠ³ΠΈΡŽ (Ρ‚ΠΎΡ‡Π½Ρ‹ΠΉ + fuzzy поиск)
  • 🎨 ГСнСрация layout'ΠΎΠ² ΠΏΠΎ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ hero-main-footer

API Endpoints:

Ingest API:

  • POST /v2/ingest/chunk - ΠŸΡ€ΠΈΠ΅ΠΌ Ρ‡Π°Π½ΠΊΠΎΠ² ΠΎΡ‚ Mod1
  • POST /v2/ingest/full - ΠŸΡ€ΠΈΠ΅ΠΌ Ρ„ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°
  • POST /v2/webhooks/register - РСгистрация webhook'ΠΎΠ²

Session API:

  • GET /v2/session/{session_id}/layout - ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ layout сСссии
  • GET /v2/session/{session_id}/entities - ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½Π½Ρ‹Π΅ entities ΠΈ keyphrases

Vocab API:

  • GET /v2/vocab - ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ²
  • POST /v2/vocab/sync - Π‘ΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ

Debug API:

  • POST /v2/debug/parse - ΠžΡ‚Π»Π°Π΄ΠΊΠ° парсинга тСкста

Health:

  • GET /healthz - ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π·Π΄ΠΎΡ€ΠΎΠ²ΡŒΡ

Π’Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅:

  • Π§Π°Π½ΠΊΠΈ ΠΎΡ‚ Mod1 (с подписью HMAC-SHA256)
  • Π€ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΎΡ‚ Mod1
  • ВСкст для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ

Π’Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅:

  • Layout (JSON):
    {
      "status": "ok",
      "session_id": "string",
      "layout": {
        "template": "hero-main-footer",
        "sections": {
          "hero": [{"component": "Hero"}],
          "main": [{"component": "ui.button"}, {"component": "ui.form"}],
          "footer": [{"component": "ContactForm"}]
        },
        "count": 3
      }
    }

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ:

# config/app.yaml
STANZA_LANG: ru
FUZZY_THRESHOLD: 0.80
STREAM_PREVIEW: true
PAGE_TEMPLATE: hero-main-footer
MAX_COMPONENTS_PER_PAGE: 12
PLAN: EXTENDED

ΠœΠΎΠ΄ΡƒΠ»ΡŒ 3 (Mod3-v1) - Visual Elements Mapping

НазначСниС: БопоставлСниС NLP Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² с Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ элСмСнтами интСрфСйса

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

  • 🎯 БопоставлСниС Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ² с UI ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ
  • πŸ” Fuzzy matching с RapidFuzz (ΠΏΠΎΡ€ΠΎΠ³ 0.8)
  • πŸ“š Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ словарСм Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ² ΠΈ синонимов
  • 🎨 ГСнСрация layout'ΠΎΠ² ΠΏΠΎ шаблонам
  • πŸ’Ύ Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Π² PostgreSQL

API Endpoints:

Mapping API:

  • POST /v1/map - БопоставлСниС сущностСй с layout'ΠΎΠΌ
  • GET /v1/layout/{session_id} - ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ сохранСнного layout'Π°

Vocab API:

  • GET /v1/vocab - ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ словаря Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ²
  • POST /v1/vocab/sync - Бинхронизация словаря

Health:

  • GET /healthz - ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π·Π΄ΠΎΡ€ΠΎΠ²ΡŒΡ

Π’Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅:

  • Бущности (entities) ΠΎΡ‚ Mod2-v1
  • ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ Ρ„Ρ€Π°Π·Ρ‹ (keyphrases) ΠΎΡ‚ Mod2-v1
  • Session ID для ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ

Π’Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅:

  • Layout (JSON):
    {
      "status": "ok",
      "session_id": "string",
      "layout": {
        "template": "hero-main-footer",
        "sections": {
          "hero": [{"component": "Hero", "confidence": 1.0, "match_type": "default"}],
          "main": [
            {"component": "ui.button", "confidence": 1.0, "match_type": "exact"},
            {"component": "ui.form", "confidence": 1.0, "match_type": "exact"}
          ],
          "footer": []
        },
        "count": 3
      },
      "matches": [
        {
          "term": "ΠΊΠ½ΠΎΠΏΠΊΠ°",
          "component": "ui.button",
          "component_type": "ui.button",
          "confidence": 1.0,
          "match_type": "exact"
        }
      ]
    }

Алгоритм сопоставлСния:

  1. Π’ΠΎΡ‡Π½ΠΎΠ΅ совпадСниС - поиск Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ совпадСния Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°
  2. Поиск ΠΏΠΎ синонимам - поиск срСди синонимов Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ²
  3. Fuzzy matching - использованиС RapidFuzz с ΠΏΠΎΡ€ΠΎΠ³ΠΎΠΌ 0.8
  4. ДСдупликация - ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚ΠΎΠ² ΠΏΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌ
  5. Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° - сортировка ΠΏΠΎ увСрСнности (confidence)

Π‘Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ…:

  • Π‘Π°Π·Π°: SQLite (sqlite:///./mod3.db)
  • terms - Π‘Π»ΠΎΠ²Π°Ρ€ΡŒ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ²
  • synonyms - Π‘ΠΈΠ½ΠΎΠ½ΠΈΠΌΡ‹ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ²
  • components - Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹
  • mappings - БопоставлСния Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ² с ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ
  • templates - Π¨Π°Π±Π»ΠΎΠ½Ρ‹ layout'ΠΎΠ²
  • layouts - Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½Π½Ρ‹Π΅ layout'Ρ‹

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ:

# config/settings.py
database_url: str = "sqlite:///./mod3.db"
fuzzy_threshold: float = 0.8
max_components_per_section: int = 5
default_template: str = "hero-main-footer"
cors_origins: list = ["http://localhost:3000", "http://localhost:8001", "http://localhost:8080"]

ВзаимодСйствиС ΠΌΠ΅ΠΆΠ΄Ρƒ модулями

1. ΠŸΠΎΡ‚ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ…:

Аудио β†’ Mod1 (ASR) β†’ Π§Π°Π½ΠΊΠΈ β†’ Mod2 (NLP) β†’ Entities β†’ Mod3 (Mapping) β†’ Visual Layout

2. ΠŸΠΎΡ‚ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ…:

  • Mod1 отправляСт Ρ‡Π°Π½ΠΊΠΈ Π² Mod2 Ρ‡Π΅Ρ€Π΅Π· HTTP POST
  • Mod2 ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ тСкст ΠΈ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ entities/keyphrases
  • Web-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ entities ΠΎΡ‚ Mod2 Ρ‡Π΅Ρ€Π΅Π· /v2/session/{id}/entities
  • Web-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ отправляСт entities Π² Mod3 для получСния layout
  • Mod3 Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ layout Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ

3. Π€ΠΎΡ€ΠΌΠ°Ρ‚ взаимодСйствия:

Mod1 β†’ Mod2:

POST /v2/ingest/chunk
Headers:
  X-Signature: sha256=<hmac_hash>
  Idempotency-Key: <session_id>:<chunk_id>
  X-Request-Id: <session_id>:<seq>
  Content-Type: application/json

Web App β†’ Mod2:

GET /v2/session/{session_id}/entities
Headers:
  Content-Type: application/json

Web App β†’ Mod3:

POST /v1/map
Headers:
  Content-Type: application/json
Body:
{
  "session_id": "string",
  "entities": ["ΠΊΠ½ΠΎΠΏΠΊΠ°", "Ρ„ΠΎΡ€ΠΌΠ°"],
  "keyphrases": ["создайтС ΠΊΠ½ΠΎΠΏΠΊΡƒ для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Ρ„ΠΎΡ€ΠΌΡ‹"],
  "template": "hero-main-footer"
}

Запуск систСмы

Mod1_v2:

cd Mod1_v2
docker compose up --build -d
# ДоступСн Π½Π° http://localhost:8080

Mod2-v1:

cd Mod2-v1  
docker compose up --build -d
# ДоступСн Π½Π° http://localhost:8001

Mod3-v1:

cd Mod3-v1
docker compose up --build -d
# ДоступСн Π½Π° http://localhost:9001

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹:

# Mod1
curl http://localhost:8080/healthz

# Mod2  
curl http://localhost:8001/healthz

# Mod3
curl http://localhost:9001/healthz

ВСхнологичСский стСк

Mod1_v2:

  • FastAPI - Web framework
  • Whisper - ASR engine
  • SQLModel - ORM
  • WebSocket - Real-time streaming
  • httpx - HTTP client для доставки

Mod2-v1:

  • FastAPI - Web framework
  • Stanza - NLP pipeline
  • RapidFuzz - Fuzzy matching
  • SQLAlchemy - Async ORM
  • Pydantic - Data validation
  • jsonschema - Schema validation

Mod3-v1:

  • FastAPI - Web framework
  • SQLAlchemy - ORM
  • SQLite - Π‘Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ…
  • RapidFuzz - Fuzzy matching
  • Pydantic - Data validation
  • Alembic - ΠœΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ систСмы

Π’ ΠΈΡ‚ΠΎΠ³Π΅ систСма прСдоставляСт:

  1. Π’Ρ€Π°Π½ΡΠΊΡ€ΠΈΠΏΡ†ΠΈΡŽ Π°ΡƒΠ΄ΠΈΠΎ Π² тСкст
  2. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ‡Π°Π½ΠΊΠΈ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ
  3. Π˜Π·Π²Π»Π΅Ρ‡Π΅Π½Π½Ρ‹Π΅ сущности ΠΈΠ· тСкста
  4. БопоставлСниС с Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ элСмСнтами
  5. Π“ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ layout'Ρ‹ для UI ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²
  6. API для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с внСшними систСмами

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΡ‚ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°:

{
  "session_id": "abc123",
  "transcript": "Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Ρ„ΠΎΡ€ΠΌΡ‹",
  "layout": {
    "template": "hero-main-footer", 
    "sections": {
      "hero": [{"component": "Hero", "confidence": 1.0, "match_type": "default"}],
      "main": [
        {"component": "ui.button", "confidence": 1.0, "match_type": "exact"},
        {"component": "ui.form", "confidence": 1.0, "match_type": "exact"}
      ],
      "footer": []
    },
    "count": 3
  },
  "matches": [
    {
      "term": "ΠΊΠ½ΠΎΠΏΠΊΠ°",
      "component": "ui.button",
      "component_type": "ui.button",
      "confidence": 1.0,
      "match_type": "exact"
    },
    {
      "term": "Ρ„ΠΎΡ€ΠΌΠ°",
      "component": "ui.form",
      "component_type": "ui.form", 
      "confidence": 1.0,
      "match_type": "exact"
    }
  ]
}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published