561 lines
21 KiB
Markdown
561 lines
21 KiB
Markdown
# MCP serveris — Kultūras un valodu tehnoloģiju arhitektūras interfeiss
|
|
|
|
## Pārskats
|
|
|
|
Šis dokuments apraksta KISC MCP (Model Context Protocol) serveri, kas nodrošina AI aģentiem un automatizācijas rīkiem strukturētu piekļuvi Latvijas kultūras un valodu tehnoloģiju jomas mērķarhitektūras datiem.
|
|
|
|
**Servera adrese:** `https://llm.kis.gov.lv/mcp`
|
|
**Versija:** 0.3.0
|
|
**Operators:** Kultūras informācijas sistēmu centrs (KISC)
|
|
**Identitāte:** `did:web:llm.kis.gov.lv`
|
|
|
|
MCP serveris ir **tikai-lasīšanas interfeiss** — tas nemaina SSOT saturu, bet gan ļauj to meklēt, analizēt un ģenerēt dokumentus no tā.
|
|
|
|
---
|
|
|
|
## 1) Kas ir šī arhitektūra un ko MCP serveris dara
|
|
|
|
Kultūras un valodu tehnoloģiju jomas mērķarhitektūra apraksta Latvijas valsts stratēģiju kultūras mantojuma digitalizācijai un latviešu valodas tehnoloģiju attīstībai. Tā ietver divus apakšdomēnus:
|
|
|
|
- **Kultūras apakšjoma** (`kultura`) — muzeju, bibliotēku, arhīvu un kultūras pieminekļu digitalizācija, datu pārvaldība, publiskā pieejamība
|
|
- **Valodu tehnoloģiju apakšjoma** (`valoda`) — Lielais latviešu valodas modelis (LVM-LV), mašīntulkošana, runas sintēze/atpazīšana, semantiskā meklēšana
|
|
|
|
Arhitektūra satur šādus elementu tipus:
|
|
|
|
| Entītiju tips | Piemēri | Skaits |
|
|
|---|---|---|
|
|
| **Mērķi** (`goal`) | M1 "Kultūras mantojuma saglabāšana", M4 "Latviešu valoda digitālajā laikmetā" | 6 |
|
|
| **Organizācijas** (`org`) | KISC, LNB, LU MII, Kultūras ministrija | ~40 |
|
|
| **Funkcijas** (`func`) | Mantojuma digitalizācija, valodu platformas uzturēšana | 6 |
|
|
| **Pakalpojumi** (`svc`) | Mašīntulkošana, runas sintēze, DOM, statistikas portāls | 30 |
|
|
| **Informācijas resursi** (`ir`) | Valodu korpusi, muzeja dati, terminoloģija | 23 |
|
|
| **Sistēmas** (`sys`) | LVM-LV, VBK, valodu platformas, DOM | 32 |
|
|
| **Ceļa kartes pasākumi** (`rm`) | Modernizācijas iniciatīvas ar laika grafiku | ~10 |
|
|
| **Riski** (`risk`) | Datu kvalitāte, kiberdrošība, AI Act atbilstība | ~8 |
|
|
| **Dokumenti** (`doc`) | GDPR, AI Act, VDAR, nozares regulējums | ~15 |
|
|
| **Principi** (`principle`) | Arhitektūras pamatprincipi | 4 |
|
|
|
|
---
|
|
|
|
## 2) MCP rīki — ko AI aģents saņem
|
|
|
|
Kad AI aģents (piemēram, Claude) pieslēdzas MCP serverim, tam kļūst pieejami **9 rīki**. Šajā sadaļā aprakstīts katrs rīks — tā nolūks, parametri un kas tiek atgriezts.
|
|
|
|
### 2.1 `identify` — servera identitātes verificēšana
|
|
|
|
**Nolūks:** Atgriež informāciju par servera operatoru, identitāti un uzticamības pierādījumiem. Ļauj AI aģentam pārliecināties, ka serveris pieder KISC un ir verificēts.
|
|
|
|
**Parametri:** nav obligātu parametru.
|
|
|
|
**Atgriež:**
|
|
- Servera nosaukums, versija, operators (KISC)
|
|
- DID identitāte: `did:web:llm.kis.gov.lv`
|
|
- MCPF (MCP Trust Framework) atbilstības informācija
|
|
- VeriTrust izdotas verifikācijas akreditācijas URL
|
|
- JWKS, DID dokumenta, MCP manifesta un uzticamības reģistra URL
|
|
|
|
**Kad lietot:** Pirms uzticēšanās servera datiem — lai pārliecinātos, ka datu avots ir leģitīms.
|
|
|
|
---
|
|
|
|
### 2.2 `describe_model` — arhitektūras metamodelis
|
|
|
|
**Nolūks:** Atgriež pilnu arhitektūras datu modeļa aprakstu — kādi entītiju tipi pastāv, kādi atribūti katram tipam, kādi attiecību tipi, kādi apakšdomēni un skati.
|
|
|
|
**Parametri:** nav.
|
|
|
|
**Atgriež:**
|
|
- 11 entītiju tipu saraksts ar to ID shēmām un atribūtiem
|
|
- 16 attiecību tipu saraksts (has_goal, depends_on, owns, u.c.)
|
|
- 2 apakšdomēni (kultura, valoda)
|
|
- 6 dokumenta skatu saraksts
|
|
|
|
**Kad lietot:** Kā pirmo soli — lai AI aģents saprastu, kāda veida dati ir pieejami un kā tie ir strukturēti. Šis rīks ir "karte" visiem pārējiem rīkiem.
|
|
|
|
**Piemērs — ko AI aģents uzzina:**
|
|
> "Šajā arhitektūrā ir 6 stratēģiskie mērķi ar ID formātā `goal.m1`–`goal.m6`. Sistēmas ir ar ID `sys.kultura.01` vai `sys.valoda.01`. Attiecības ietver `has_system`, `depends_on`, `owns`. Ir 2 apakšdomēni: kultūra un valoda."
|
|
|
|
---
|
|
|
|
### 2.3 `search` — meklēšana pēc atslēgvārdiem
|
|
|
|
**Nolūks:** Meklēt jebkādu arhitektūras entītiju vai dokumenta fragmentu pēc atslēgvārdiem. Atbalsta gan latviešu, gan angļu valodas vaicājumus.
|
|
|
|
**Parametri:**
|
|
- `query` (obligāts) — meklēšanas frāze, piemēram, "valodu tehnoloģijas", "KISC", "digitālais mantojums", "AI risks"
|
|
- `kind` (neobligāts) — filtrēt pēc tipa: goal, org, sys, svc, ir, func, principle u.c.
|
|
- `subdomain` (neobligāts) — filtrēt pēc apakšdomēna: "kultura" vai "valoda"
|
|
- `limit` (neobligāts) — rezultātu skaits (noklusējums 25)
|
|
|
|
**Atgriež:** Sakārtots saraksts ar atrastajām entītijām, katrai norādot ID, piemērotības novērtējumu (score), tipu un pilnus datus.
|
|
|
|
**Kad lietot:** Kad zināms aptuvens jautājums, bet nav precīzs entītijas ID.
|
|
|
|
**Piemēri:**
|
|
```
|
|
search(query="mašīntulkošana") → atrod svc.valoda.04, sys.valoda.03
|
|
search(query="LNB", kind="org") → atrod org.lnb
|
|
search(query="risks", kind="risk") → atrod visus riskus
|
|
search(query="korpuss", subdomain="valoda") → atrod ir.valoda.01, ir.valoda.02
|
|
```
|
|
|
|
---
|
|
|
|
### 2.4 `get_entity` — konkrētas entītijas izgūšana
|
|
|
|
**Nolūks:** Atgriež pilnu informāciju par vienu konkrētu entītiju pēc tās ID.
|
|
|
|
**Parametri:**
|
|
- `id` (obligāts) — entītijas ID, piemēram: `goal.m4`, `org.kisc`, `sys.valoda.02`, `risk.001`
|
|
|
|
**Atgriež:** Visu entītijas informāciju — nosaukums, apraksts, statuss, izmaiņu apraksts, VIRSIS ID atsauces un avota faila ceļš.
|
|
|
|
**Kad lietot:** Kad precīzi zināms, kuru entītiju vajag apskatīt.
|
|
|
|
**Piemēri:**
|
|
```
|
|
get_entity(id="goal.m4") → "Latviešu valoda digitālajā laikmetā" — pilns apraksts
|
|
get_entity(id="sys.valoda.02") → "Lielais latviešu valodas modelis (LVM-LV)" — statuss, resursi
|
|
get_entity(id="org.kisc") → KISC organizācijas pilna informācija
|
|
```
|
|
|
|
---
|
|
|
|
### 2.5 `list_entities` — entītiju saraksts pēc tipa
|
|
|
|
**Nolūks:** Atgriež visu entītiju ID sarakstu, iespējams filtrētu pēc tipa un/vai apakšdomēna. Ļauj ātri uzzināt, kas pastāv.
|
|
|
|
**Parametri:**
|
|
- `type` (neobligāts) — entītiju tipa filtrs: "goal", "org", "sys", "svc", "ir", "func", "principle", "rm", "risk", "doc", "int"
|
|
- `subdomain` (neobligāts) — "kultura" vai "valoda"
|
|
|
|
**Atgriež:** ID saraksts ar katras entītijas pamata informāciju (nosaukums, tips).
|
|
|
|
**Kad lietot:** Kad vajag pārskatu par visām noteikta tipa entītijām.
|
|
|
|
**Piemēri:**
|
|
```
|
|
list_entities(type="goal") → 6 mērķi (goal.m1–goal.m6)
|
|
list_entities(type="sys", subdomain="valoda") → 11 valodu tehnoloģiju sistēmas
|
|
list_entities(type="risk") → visi identificētie riski
|
|
list_entities() → pilns visu entītiju saraksts
|
|
```
|
|
|
|
---
|
|
|
|
### 2.6 `list_relations` — attiecību meklēšana
|
|
|
|
**Nolūks:** Atrast visas attiecības (šķautnes), kas saistītas ar konkrētu entītiju — ienākošās, izejošās vai abas.
|
|
|
|
**Parametri:**
|
|
- `id` (obligāts) — entītijas ID, piemēram: `domain.kultura-valoda`, `goal.m4`
|
|
- `direction` (neobligāts) — "in" (ienākošās), "out" (izejošās), "both" (abas, noklusējums)
|
|
|
|
**Atgriež:** Saraksts ar šķautnēm, katrai norādot `from`, `type`, `to` un kopējo skaitu.
|
|
|
|
**Kad lietot:** Ietekmes analīzē ("kuri pakalpojumi ir saistīti ar mērķi M4?"), atkarību kartēšanā, audita nolūkos.
|
|
|
|
**Piemērs:**
|
|
```
|
|
list_relations(id="domain.kultura-valoda", direction="out")
|
|
→ 95 šķautnes: has_goal→goal.m1..m6, has_system→sys.kultura.01..sys.valoda.11, u.c.
|
|
```
|
|
|
|
> **Piezīme:** Pašreizējā versijā visas šķautnes iziet no `domain.kultura-valoda`. Lai atrastu, piemēram, visas valodu apakšjomas sistēmas, meklējiet `list_relations(id="domain.kultura-valoda")` un filtrējiet pēc tipa `has_system` un `to` prefiksa `sys.valoda.*`.
|
|
|
|
---
|
|
|
|
### 2.7 `subgraph` — apakšgrafa izgūšana
|
|
|
|
**Nolūks:** Sākot no vienas vai vairākām sēklas entītijām, apstaigāt attiecību grafu un atgriezt visas saistītās entītijas līdz noteiktam dziļumam.
|
|
|
|
**Parametri:**
|
|
- `seed_ids` (obligāts) — sākuma entītiju ID masīvs, piemēram: `["goal.m4"]` vai `["org.kisc", "org.lumii"]`
|
|
- `depth` (neobligāts) — apstaigāšanas dziļums (noklusējums 1, maks. 3)
|
|
|
|
**Atgriež:** Pilns mezglu un šķautņu saraksts — katra mezgla pilna informācija un visas savienojošās šķautnes.
|
|
|
|
**Kad lietot:** Lai iegūtu "apkārtnes karti" — visas entītijas, kas saistītas ar noteiktu komponentu.
|
|
|
|
**Piemērs:**
|
|
```
|
|
subgraph(seed_ids=["domain.kultura-valoda"], depth=1)
|
|
→ 96 mezgli, 95 šķautnes — viss domēna saturs
|
|
```
|
|
|
|
---
|
|
|
|
### 2.8 `get_view` — dokumenta skata izgūšana
|
|
|
|
**Nolūks:** Atgriež viena konkrēta dokumenta skata saturu Markdown formātā. Skati ir cilvēklasāmas dokumenta nodaļas.
|
|
|
|
**Parametri:**
|
|
- `view_id` (obligāts) — skata identifikators. Iespējamās vērtības:
|
|
- `01-ievads` — Ievads
|
|
- `02-esosas-arhitekturas-novertejums` — Esošās arhitektūras novērtējums
|
|
- `03-merki-un-principi` — Mērķi un principi
|
|
- `04-merk-arhitektura` — Mērķarhitektūra
|
|
- `05-cela-karte` — Ceļa karte
|
|
- `06-pielikums-komponentu-katalogs` — Komponentu katalogs
|
|
|
|
**Atgriež:** Markdown saturs ar virsrakstiem, tekstiem un atsaucēm uz reģistriem.
|
|
|
|
**Kad lietot:** Lai izlasītu noteiktu dokumenta nodaļu bez pilna dokumenta ģenerēšanas.
|
|
|
|
**Piemērs:**
|
|
```
|
|
get_view(view_id="03-merki-un-principi")
|
|
→ Markdown ar M1–M6 mērķu aprakstiem un arhitektūras principiem
|
|
```
|
|
|
|
---
|
|
|
|
### 2.9 `generate_document` — pilna dokumenta ģenerēšana
|
|
|
|
**Nolūks:** Reģenerēt pilnu cilvēklasāmo arhitektūras dokumentu no YAML reģistriem. Apvieno visus skatus ar inline reģistru paplašinājumiem vienotā Markdown vai JSON dokumentā.
|
|
|
|
**Parametri:**
|
|
- `format` (neobligāts) — "markdown" (noklusējums) vai "json"
|
|
- `sections` (neobligāts) — konkrētu sadaļu saraksts. Ja nav norādīts, ģenerē pilnu dokumentu.
|
|
- Pieejamās vērtības: `ievads`, `esosa`, `merki`, `arhitektura`, `celakarte`, `katalogs`
|
|
|
|
**Atgriež:** Pilns Markdown vai JSON dokuments, kas satur visas vai izvēlētās sadaļas ar iekļautiem reģistru datiem.
|
|
|
|
**Kad lietot:**
|
|
- Lai iegūtu aktuālu, pilnu mērķarhitektūras dokumentu
|
|
- Lai sagatavotu materiālu prezentācijai vai pārskatam
|
|
- Lai pārbaudītu, ka visi reģistri ir korekti un savstarpēji saskanīgi
|
|
|
|
**Piemēri:**
|
|
```
|
|
generate_document()
|
|
→ Pilns dokuments Markdown formātā (~50+ lappuses)
|
|
|
|
generate_document(format="json")
|
|
→ Strukturēts JSON ar katras sadaļas datiem
|
|
|
|
generate_document(sections=["merki", "arhitektura"])
|
|
→ Tikai mērķi/principi un mērķarhitektūras sadaļas
|
|
```
|
|
|
|
---
|
|
|
|
## 3) Tipisko jautājumu un atbilžu piemēri
|
|
|
|
Šajā sadaļā parādīts, kādus jautājumus var uzdot AI aģentam un kādus rīkus tas izmantos, lai atbildētu.
|
|
|
|
### 3.1 Vispārīgs pārskats
|
|
|
|
**Jautājums:** "Pastāsti par šo arhitektūru — kas tajā ir un kā tā ir organizēta?"
|
|
|
|
**AI aģenta darbība:** Izsauc `describe_model`, pēc tam `list_entities` vispārīgam pārskatam.
|
|
|
|
**Sagaidāmā atbilde:** Skaidrojums, ka tā ir Latvijas kultūras un valodu tehnoloģiju jomas mērķarhitektūra ar 2 apakšdomēniem, 6 mērķiem, ~30 pakalpojumiem, ~30 sistēmām u.c.
|
|
|
|
---
|
|
|
|
### 3.2 Konkrēta mērķa izpēte
|
|
|
|
**Jautājums:** "Kas ir M4 mērķis un kā tas attiecas uz latviešu valodas AI?"
|
|
|
|
**AI aģenta darbība:** Izsauc `get_entity(id="goal.m4")`.
|
|
|
|
**Sagaidāmā atbilde:** M4 ir "Latviešu valoda digitālajā laikmetā" — mērķis nodrošināt latviešu valodas klātbūtni MI risinājumos, attīstot valodas resursus, modeļus un pakalpojumus.
|
|
|
|
---
|
|
|
|
### 3.3 Sistēmu saraksts valodu jomā
|
|
|
|
**Jautājums:** "Kādas informācijas sistēmas ir valodu tehnoloģiju apakšjomā?"
|
|
|
|
**AI aģenta darbība:** Izsauc `list_entities(type="sys", subdomain="valoda")`.
|
|
|
|
**Sagaidāmā atbilde:** 11 sistēmu saraksts — valodu tehnoloģiju platforma, LVM-LV, mašīntulkošana, runas atpazīšana, runas sintēze, virtuālie asistenti, semantiskā meklēšana, teksta ģenerēšana, vieglās valodas rīki, valodu resursu pārvaldība, jaunu tehnoloģiju izmitināšanas vide.
|
|
|
|
---
|
|
|
|
### 3.4 Konkrētas sistēmas detaļas
|
|
|
|
**Jautājums:** "Pastāsti par Lielo latviešu valodas modeli — kas tas ir, kāds ir tā statuss?"
|
|
|
|
**AI aģenta darbība:** Izsauc `search(query="latviešu valodas modelis")` vai `get_entity(id="sys.valoda.02")`.
|
|
|
|
**Sagaidāmā atbilde:** sys.valoda.02 — "Lielais latviešu valodas modelis (LVM-LV)", statuss "Jauns", tiks izveidots un uzturēts kā valsts mēroga valodas infrastruktūras pamatelements.
|
|
|
|
---
|
|
|
|
### 3.5 Ietekmes analīze
|
|
|
|
**Jautājums:** "Kuras sistēmas un pakalpojumi ir saistīti ar kultūras domēnu?"
|
|
|
|
**AI aģenta darbība:** Izsauc `list_relations(id="domain.kultura-valoda", direction="out")`, filtrē pēc `has_system` un `has_service`.
|
|
|
|
**Sagaidāmā atbilde:** 21 kultūras sistēma un 16 kultūras pakalpojumi, katrs ar savu ID un saiti uz domēnu.
|
|
|
|
---
|
|
|
|
### 3.6 Risku analīze
|
|
|
|
**Jautājums:** "Kādi riski ir identificēti šajā arhitektūrā?"
|
|
|
|
**AI aģenta darbība:** Izsauc `list_entities(type="risk")`, pēc tam `get_entity` katram riskam.
|
|
|
|
**Sagaidāmā atbilde:** Risku saraksts ar aprakstiem, iespējamību, ietekmi un mazināšanas pasākumiem.
|
|
|
|
---
|
|
|
|
### 3.7 Pilna dokumenta ģenerēšana
|
|
|
|
**Jautājums:** "Saģenerē pilnu mērķarhitektūras dokumentu."
|
|
|
|
**AI aģenta darbība:** Izsauc `generate_document(format="markdown")`.
|
|
|
|
**Sagaidāmā atbilde:** Pilns Markdown dokuments ar visām 6 sadaļām — ievads, esošā situācija, mērķi un principi, mērķarhitektūra, ceļa karte, komponentu katalogs.
|
|
|
|
---
|
|
|
|
### 3.8 Organizāciju meklēšana
|
|
|
|
**Jautājums:** "Kas ir KISC un kāda ir tā loma?"
|
|
|
|
**AI aģenta darbība:** Izsauc `search(query="KISC", kind="org")` vai `get_entity(id="org.kisc")`.
|
|
|
|
**Sagaidāmā atbilde:** Kultūras informācijas sistēmu centrs — domēna īstenotājs, atbildīgs par kultūras IS uzturēšanu un attīstību.
|
|
|
|
---
|
|
|
|
### 3.9 Ceļa kartes izpēte
|
|
|
|
**Jautājums:** "Kādi ir plānotie pasākumi un to laika grafiks?"
|
|
|
|
**AI aģenta darbība:** Izsauc `get_view(view_id="05-cela-karte")` vai `list_entities(type="rm")`.
|
|
|
|
**Sagaidāmā atbilde:** Ceļa kartes sadaļa ar pasākumu sarakstu, termiņiem un atbildīgajām organizācijām.
|
|
|
|
---
|
|
|
|
### 3.10 Servera uzticamības pārbaude
|
|
|
|
**Jautājums:** "Vai šis serveris ir uzticams? Kas to pārvalda?"
|
|
|
|
**AI aģenta darbība:** Izsauc `identify`.
|
|
|
|
**Sagaidāmā atbilde:** Serveris pieder KISC (Latvijas valsts iestāde), ir verificēts ar VeriTrust akreditāciju, DID identitāte ir `did:web:llm.kis.gov.lv`, atbilst MCPF Layer 1.
|
|
|
|
---
|
|
|
|
## 4) Kā AI aģents saprot arhitektūras kontekstu
|
|
|
|
Kad AI aģents (piemēram, Claude) pieslēdzas šim MCP serverim, tas **automātiski saņem** šādu konteksta informāciju:
|
|
|
|
1. **Servera apraksts:** "MCP server for Latvian cultural heritage and language technology architecture documentation" — tas uzreiz norāda, ka dati ir par Latvijas kultūras un valodu tehnoloģiju jomu.
|
|
|
|
2. **Rīku apraksti:** Katrs rīks satur detalizētu `description` lauku, kas palīdz AI aģentam saprast, kad un kā to lietot. Piemēram, `search` rīka aprakstā ir minēts: "Search KISC architecture documentation for Latvian government cultural digitalization. Contains: strategic goals (M1-M6), organizations (KISC, LNB, LUMII, ministries, museums)..." — tas dod aģentam bagātu kontekstu.
|
|
|
|
3. **Entītiju ID shēmas:** Rīku parametru aprakstos ir norādīti piemēri (`goal.m4`, `org.kisc`, `sys.valoda.01`), kas aģentam palīdz konstruēt pareizus vaicājumus.
|
|
|
|
4. **Uzticamības metadati:** Inicializācijas laikā serveris atgriež MCPF metadatus ar DID, akreditācijas un verifikācijas URL — AI aģents var novērtēt datu avota uzticamību.
|
|
|
|
Tādējādi AI aģentam **nav nepieciešama ārēja apmācība** — konteksts tiek saņemts tieši no servera, un aģents var sākt atbildēt uz jautājumiem par arhitektūru nekavējoties.
|
|
|
|
---
|
|
|
|
## 5) Dokumenta ģenerēšanas detalizēta procedūra
|
|
|
|
### 5.1 Ģenerēšanas mehānisms
|
|
|
|
Dokumenta ģenerēšana apvieno divus avotus:
|
|
|
|
```
|
|
views/ (Markdown struktūra) + registers/ (YAML dati) → Pilns dokuments
|
|
```
|
|
|
|
Process:
|
|
|
|
1. Tiek nolasīts katrs skats (`01-ievads.md`, `02-esosas-...md`, ..., `06-pielikums-...md`)
|
|
2. Skatā atrastās reģistru atsauces (backtick formātā) tiek aizstātas ar attiecīgo YAML reģistru saturu, formatētu kā tabulas vai saraksti
|
|
3. Rezultāts tiek apvienots vienotā dokumentā
|
|
|
|
### 5.2 Ģenerēšana caur komandrindu
|
|
|
|
```bash
|
|
cd mcp
|
|
REPO_ROOT="$(pwd)/.." \
|
|
DOMAIN_DIR="domains/kultura-valoda" \
|
|
OUT_FILE="KISC-merkarhitektura-apraksts.md" \
|
|
npm run gen:doc
|
|
```
|
|
|
|
### 5.3 Ģenerēšana caur MCP (AI aģents)
|
|
|
|
```
|
|
# Pilns dokuments (visas sadaļas)
|
|
generate_document(format="markdown")
|
|
|
|
# Tikai ievads un mērķi
|
|
generate_document(format="markdown", sections=["ievads", "merki"])
|
|
|
|
# JSON formāts mašīnapstrādei
|
|
generate_document(format="json")
|
|
|
|
# Tikai mērķarhitektūra un katalogs
|
|
generate_document(format="markdown", sections=["arhitektura", "katalogs"])
|
|
```
|
|
|
|
### 5.4 Sadaļu identifikatori
|
|
|
|
| Sadaļas ID | Skata fails | Saturs |
|
|
|---|---|---|
|
|
| `ievads` | `01-ievads.md` | Ievads, tvērums, termini, saīsinājumi |
|
|
| `esosa` | `02-esosas-arhitekturas-novertejums.md` | Esošās situācijas novērtējums |
|
|
| `merki` | `03-merki-un-principi.md` | Mērķi M1–M6 un 4 arhitektūras principi |
|
|
| `arhitektura` | `04-merk-arhitektura.md` | Funkcijas, pakalpojumi, IR, sistēmas |
|
|
| `celakarte` | `05-cela-karte.md` | Ceļa karte, riski, mijiedarbības |
|
|
| `katalogs` | `06-pielikums-komponentu-katalogs.md` | Pilns komponentu katalogs |
|
|
|
|
### 5.5 Ģenerētā dokumenta struktūra
|
|
|
|
Pilns dokuments satur aptuveni šādu struktūru:
|
|
|
|
```
|
|
1. Ievads
|
|
1.1 Dokumenta nolūks un mērķauditorija
|
|
1.2 Domēna arhitektūras tvērums
|
|
1.3 Termini un saīsinājumi
|
|
1.4 Saistītie dokumenti
|
|
|
|
2. Esošās arhitektūras novērtējums
|
|
2.1 Kultūras apakšjomas esošā situācija
|
|
2.2 Valodu tehnoloģiju esošā situācija
|
|
2.3 Esošo sistēmu novērtējums
|
|
|
|
3. Mērķi un principi
|
|
3.1 Stratēģiskie mērķi (M1–M6)
|
|
3.2 Arhitektūras principi (P1–P4)
|
|
|
|
4. Mērķarhitektūra
|
|
4.1 Funkcijas (6 gab.)
|
|
4.2 Pakalpojumi (30 gab. — kultūra + valoda)
|
|
4.3 Informācijas resursi (23 gab.)
|
|
4.4 Sistēmas (32 gab.)
|
|
|
|
5. Ceļa karte
|
|
5.1 Pasākumu plāns
|
|
5.2 Attiecības un atkarības
|
|
5.3 Riski
|
|
5.4 Mijiedarbības ar citām jomām
|
|
|
|
6. Pielikums — komponentu katalogs
|
|
6.1 Pilns sistēmu saraksts
|
|
6.2 Pilns pakalpojumu saraksts
|
|
6.3 Pilns IR saraksts
|
|
```
|
|
|
|
---
|
|
|
|
## 6) MCPF uzticamības ietvars
|
|
|
|
Serveris implementē **MCPF (MCP Trust Framework) Layer 1** — uzticamības atklāšanu sesijas līmenī.
|
|
|
|
### 6.1 Inicializācijas metadati
|
|
|
|
Katras MCP sesijas sākumā serveris atgriež šādus metadatus:
|
|
|
|
```json
|
|
{
|
|
"_meta": {
|
|
"identity": {
|
|
"id": "did:web:llm.kis.gov.lv",
|
|
"service": { "mcp": "https://llm.kis.gov.lv/mcp" },
|
|
"keys": { "jwks_uri": "https://llm.kis.gov.lv/.well-known/jwks.json" }
|
|
},
|
|
"mcpf": {
|
|
"version": "0.1",
|
|
"entrypoint": {
|
|
"type": "manifest",
|
|
"url": "https://llm.kis.gov.lv/.well-known/mcp/manifest.json"
|
|
}
|
|
},
|
|
"trust": {
|
|
"verifications": [{
|
|
"verifier": "did:web:veritrust.vc",
|
|
"type": ["VerifiableCredential", "MCPServerVerification"],
|
|
"covers": "did:web:llm.kis.gov.lv"
|
|
}]
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
### 6.2 Verifikācijas galapunkti
|
|
|
|
| URL | Saturs |
|
|
|---|---|
|
|
| `https://llm.kis.gov.lv/.well-known/jwks.json` | Publiskā atslēga JWT verifikācijai |
|
|
| `https://llm.kis.gov.lv/.well-known/did.json` | DID dokuments |
|
|
| `https://llm.kis.gov.lv/.well-known/mcp/manifest.json` | MCP manifests |
|
|
| `https://llm.kis.gov.lv/.well-known/mcp-trust-registry.json` | Uzticamības reģistrs |
|
|
| `https://veritrust.vc/portal/mcp/credentials/...` | VeriTrust akreditācija |
|
|
|
|
---
|
|
|
|
## 7) Tehniskā informācija
|
|
|
|
### 7.1 Servera versija un konfigurācija
|
|
|
|
| Parametrs | Vērtība |
|
|
|---|---|
|
|
| Versija | 0.3.0 |
|
|
| Protokols | MCP 2024-11-05 |
|
|
| Transports | Streamable HTTP (`/mcp`) |
|
|
| Iespējas (capabilities) | `tools`, `resources` |
|
|
| Rīku skaits | 9 |
|
|
| Vide | Docker (Node.js 20, TypeScript) |
|
|
|
|
### 7.2 Palaišana lokāli (izstrādei)
|
|
|
|
```bash
|
|
cd mcp
|
|
npm install
|
|
npm run dev
|
|
```
|
|
|
|
Serveris būs pieejams: `http://localhost:8787/mcp`
|
|
|
|
### 7.3 Palaišana ar Docker
|
|
|
|
```bash
|
|
cd mcp
|
|
docker compose up -d
|
|
```
|
|
|
|
Vai no POC izvietojuma:
|
|
|
|
```bash
|
|
cd /opt/kisc-llm/poc/deploy
|
|
docker compose build --no-cache arch-mcp
|
|
./scripts/start.sh
|
|
```
|
|
|
|
### 7.4 Veselības pārbaude
|
|
|
|
```bash
|
|
curl https://llm.kis.gov.lv/health
|
|
# → {"status":"ok"}
|
|
```
|
|
|
|
### 7.5 MCP inicializācijas tests
|
|
|
|
```bash
|
|
curl -sS https://llm.kis.gov.lv/mcp \
|
|
-H "content-type: application/json" \
|
|
-H "accept: application/json, text/event-stream" \
|
|
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{
|
|
"protocolVersion":"2024-11-05",
|
|
"capabilities":{},
|
|
"clientInfo":{"name":"test","version":"1.0"}
|
|
}}'
|
|
```
|
|
|
|
Sagaidāmā atbilde: servera informācija ar versiju 0.3.0, 9 rīkiem un MCPF metadatiem.
|