
# შედგენადი AI მიკროცერვის არქიტექტურა მასშტაბირებადი უსაფრთხოების კითხვარის ავტომატიზაციისთვის

ორგანიზაციები განსაცეკრივებიან დაუმთავრებლად ზრდილობის დაცვის კითხვარის, პროდუქტის შეფასებების და შესაბამისობის აუდიტების მიით. ტრადიციული მონოლითიკური ინსტრუმენტები ეხმარება მასზე, განსაკუთრებით როდესაც ისინი უნდა ირთვან მრავალფეროვან არსებულ ეკოსისტემებთან, მრავალენოვან მოთხოვნებს, და რეალურ დროში აუდიტის ნაკადებს.  

**შედგენადი მიკროცერვის არქიტექტურა**, რომელიც გმართებულია დიდი ენის მოდელებით (LLM‑ებით) და გადმოტანის‑დაჯერებულ გენერირებით (RAG), აძლიერებს ავტომატიზაციას ზრდის, ხოლო შენარჩუნებს მოქნილობასა და სამართლებრივ ექსპერტიზას, რომელიც რეგულირებულ დარგებში საჭიროა. ტექნიკური მასალასა ხელმძღვანელობით, ჩვენ ამას გავაკეთებთ:

* გავახორციელოთ ძირითადი დიზაინის პრინციპები, რომლებიც უზრუნველყოფენ სისტემის ** უსაფრთხო, აუდიტირებადი და გაფართოებული**.  
* გავუღით მიმოხილვით იმპლემენტაციის მაგალითის მაგივრად, სასაცილოდ Mermaid‑ით.  
* დავაჩვენოთ, როგორ შეიძლება თითოეული სერვისი განილიცასდროს დამოუკიდებლად Kubernetes‑ის, serverless‑FaaS‑ის ან edge‑runtime‑ის შედეგად.  
* მივაწოდოთ კონკრეტული საუკეთესო პრაქტიკის რეკომენდაციები მონაცემთა მმართველობის, განსაცდლისა და განახლებული გაუმჯობესების შესახებ.

> **TL;DR:** გაყავით კითხვარის ავტომატიზაციის პლატფორმა პატარა, კარგად განსაზღვრული სერვისებზე, მიადათავეთ LLM‑ები სტატუს‑ულ-ინფერენციის ფენაზე, და გამოიყენეთ მოვლენებზე‑განლაგებული პიპლაინები, რათა შეინარჩუნოთ ერთი წყარო სიმდაადასტურება თუ ვერსია.

---

## 1. რატომ შევქმენოთ მაგიდა მაგიდა? (ჰდენია მაგიდა მაგიდა)

| მონოლითიკური მიდგომა | შედგენადი მიკროცერვისები |
|---------------------|---------------------------|
| ერთი კოდის ბაზა, რთულია მასშტაბირება სპეციალურ სამუშაო დატვირთვების (მაგ., LLM‑ის ინტერნცია). | დამოუკიდებული მასშტაბირება – AI‑ის ინტერნცია შეიძლება გაუშვას GPU‑ის თირეულზე, ხოლო შენახვა შეიძლება დარჩეს საკონტროლოსობ ობათქტზე. |
| შთამბეჭდავი დაყდომა განახლებებში; UI‑ში შეცდომა შესაძლოა მთელი სისტემა დადებულისგან. | ნელი მოწყობილობა ასაინქრონული მოვლენა ან HTTP‑API‑ის საშუალებით, გაურკვეველია შეცდომის წყარო. |
| შეზღუდული მრავალენოვანი ინტეგრაცია – ხშირად ბლოკირებულია ერთზე სტეკზე. | პოლიგლოტული მხარდაჭერა – თითოეული სერვისი შეუძლია მითითება ენის მიხედვით, რომელიც მას სრულდება (Go‑ით ოპერაციისთვის, Python‑ით LLM‑ის ორგანიზაციისთვის, Rust‑ით მაღალი სიხშირის ნაკადებისთვის). |
| აუდიტის/საასდროს შესასვლელი ცხრილების ქმედება ღრუბლული და შეშლილი. | ცენტრალიზებული მოვლენების მაღაზია + მცურავი აუდიტის ჟურნალი ღია ენისა, რეგულატორებისთვის მკაცრი მოთხოვნები. |

**შედგენადი** მოდელი ეწარმოებს “*შექმენით რასაც გჭირდებათ, და შეცვლეთ რასაც არ გჭირდებათ*” ფილოსოფიას. იგი ეწის უსაფრთხოების კითხვარის დინამიკურად ცვლად ფორმის შედგენას, სადაც ახალი კონტროლური დებულებები (მაგ., [ISO 27001 Rev 2](https://www.iso.org/standard/27001)) ხშირად თუ ორგანიზაციებმა საჭირო გახდება.

---

## 2. ძირითადი არქიტექტურული ბრთულები

1. **Stateless API Gateway** – მომხმარებლის ინტერფეისის, SaaS‑კონექტორებისა და გარე ინსტრუმენტების შიგტუალება. აუთენთიფიკაციას, მოთხოვნის სავვალს, ტრეფლინგს.  
2. **დომენ‑სპეციფიკური მიკროცერვისები** – თითოეული გვირაბის ბრუიკაციაში:
   * **Questionnaire Service** – შენახავს კითხვარის მეტამონაცემებს, ვერსიონირებას, დავალებებს.  
   * **Evidence Service** – მართავს არფაქტებთან (პოლიციური, სქრეინშოტები, აუდიტის ლოგები) უცვლელი ობიექტის სახით.  
   * **AI Orchestration Service** – აერთიანებს პრոմპტებს, იყენებს RAG‑ის პაიპლაინებს, და აბრუნებს პასუხის პროექტებს.  
   * **Change‑Detection Service** – მონიტორინგს არფაქტის განახლებებზე, იწვევს პასუხის ხელახლა შეფასებას.  
   * **Notification Service** – ატხიმა Slack, Teams ან ელ‑ფოსტის მოვლენებს.  
3. **Event Bus (Kafka / Pulsar)** – უზრუნველყოფს მინიმუმ ერთჯერად გადაღებულ წყადმა დომენის მოვლენებზე (`EvidenceUploaded`, `AnswerDrafted`).  
4. **Observability Stack** – OpenTelemetry ტრაის across services, Prometheus metrics, Loki logs.  
5. **Policy‑as‑Code Engine** – შეფასება შესაბამისობის წესებით (OPA/Rego) სანამ პასუხი “ფინალურ” გამოყოფის.

ყველა სერვისი კომუნიკაციას აკეთებს **gRPC**‑ით (ბრძანებული ლატენციით) ან **REST**‑ით (გარე ინტეგრაციისთვის). დიზაინი გვაძლიერებს *ციგლების შუალედებს, ბುದ್ಧის დასაწყისებზე* – ბიზნეს ლოგიკა იმყოფება იმის მიხედვით, სადაც იგი საჭიროა, ხოლო ბუსს აერთიანებს მხოლოდ მესიჯებს.

---

## 3. მონაცემთა ნაკადი – კითხვიდან მთელაჯიშულად აუდიტირებადი პასუხის

ქვემოთა Mermaid‑ის დიაგრამა, რომელიც აჩვენებს სტანდარტული მოთხოვნის მოქცემს.

```mermaid
flowchart TD
    subgraph UI["User Interface"]
        UI1["Web UI"] -->|Submit questionnaire| AG["API Gateway"]
    end

    AG -->|Auth & Validate| QMS["Questionnaire Service"]
    QMS -->|Fetch template| AIOS["AI Orchestration Service"]
    AIOS -->|Retrieve relevant evidence| ES["Evidence Service"]
    ES -->|Evidence objects| AIOS
    AIOS -->|Generate draft answer| RAG["RAG Pipeline"]
    RAG -->|LLM output| AIOS
    AIOS -->|Store draft| QMS
    QMS -->|Emit AnswerDrafted| EB["Event Bus"]
    EB -->|Trigger| CDS["Change‑Detection Service"]
    CDS -->|Re‑run if evidence changed| AIOS
    CDS -->|Emit AnswerUpdated| EB
    EB -->|Notify| NS["Notification Service"]
    NS -->|Push to Slack/Email| UI

    style UI fill:#f9f,stroke:#333,stroke-width:2px
    style AG fill:#bbf,stroke:#333,stroke-width:1px
    style QMS fill:#bfb,stroke:#333,stroke-width:1px
    style AIOS fill:#ffb,stroke:#333,stroke-width:1px
    style ES fill:#fbb,stroke:#333,stroke-width:1px
    style RAG fill:#fdd,stroke:#333,stroke-width:1px
    style CDS fill:#ddf,stroke:#333,stroke-width:1px
    style NS fill:#cfc,stroke:#333,stroke-width:1px
```

**მნიშვნელოვანია ყოველი ნაბიჯის აღწერა**:

1. **მომხმარებელმა ატარა** ახალი კითხვარი ან არჩია არსებული.  
2. **API‑Gateway** აკონტროლებს JWT‑ს, ცხადს ტრადი, გადაგზავნის კითხვარის სერვისს.  
3. **Questionnaire Service** იღებს კითხვარის შაბლონს და ეშვება AI‑Orchestration‑ის.  
4. **AI Orchestration** ასრულებს *retrieval*‑ს – მას ეწვება Evidence Service‑ში, რათა იპოვოს ყველა არფაქტი, რომელიც ეხება ამ კონტროლს (ვექტორული მსგავსება ან საკვანძო სიტყვის გამოყენებით).  
5. მიღებული კონტექსტები, თანაბრად პრომპტ შაბლონში, იდგება **RAG pipeline**‑ში (მაგ., `openAI/gpt‑4o‑preview`).  
6. პროექტის პასუხი შენახულია Questionnaire Service‑ში, მითითებულია *pending review*.  
7. **Change‑Detection Service** მზაartifact‑თა ატვირთვისას; თუ პოლიტიკა განახლდა, იგი ავტომატურად გადაგwiritsaენ ალგორითმურებს გავლენებზე.  
8. საბოლოო მიმოხილვები იღებენ ქმედება ან რედაქტირებს დაფუძნებულ პასუხს; მიღების შემდგომ **Policy‑as‑Code Engine** რომლებსაც აუდიტის ლოგიც გადამცემებს.  

---

## 4. იმპლემენტაციის დეტალები

### 4.1. API‑Gateway (Envoy + OIDC)

* **Routing** – `POST /questionnaires/:id/answers` → `questionnaire-service`.  
* **Security** – შენიშვნა `questionnaire:write`‑ის.  
* **Rate limiting** – 100 მოთხოვნა/წთ თითოეული Tenant‑ის LLM‑ის ღირებულებების დასაცავად.

### 4.2. Questionnaire Service (Go)

```go
type Questionnaire struct {
    ID          string            `json:"id"`
    Version     int               `json:"version"`
    Controls    []Control        `json:"controls"`
    Drafts      map[string]Answer `json:"drafts"` // key = control ID
    AssignedTo  map[string]string `json:"assigned_to"` // userID
}
```

* იყენებს **PostgreSQL** სატრანსქცერითი, **EventStoreDB** დომენი‑მოვლენა.  
* გატანს gRPC‑ით `GetTemplate`, `SaveDraft`, `FinalizeAnswer`.

### 4.3. Evidence Service (Python + FastAPI)

* ფაილების შენახვა **MinIO** ან **AWS S3** ბუქეტის დაშიფვრით.  
* შინაარსის ინდენცია **Qdrant**‑ში (ვექტორული DB) similarity‑ის ძიებისთვის.  
* ღია `POST /search` endpoint‑ი, რომელიც იღებს მოთხოვნას და აბრუნებს top‑k არფაქტის ID‑ებს.

### 4.4. AI Orchestration Service (Python)

```python
def generate_answer(question: str, evidence_ids: List[str]) -> str:
    evidence = fetch_evidence(evidence_ids)
    context = "\n".join(evidence)
    prompt = f"""You are a compliance specialist.
    Using the following evidence, answer the question concisely:\n{context}\n\nQuestion: {question}"""
    response = client.chat.completions.create(
        model="gpt-4o-mini",
        messages=[{"role":"system","content":prompt}]
    )
    return response.choices[0].message.content
```

* **RAG** – ვექტორული ძიება + სისტემური პრომპტი, რომელიც AI‑ის იბრძვის ციტირებისთვის.  
* **Caching** – Generated responses 24 საათში კაშენდება, რათა თავიდან აირიდეს საჭირო LLM‑ის გამოძახება.

### 4.5. Change‑Detection Service (Rust)

* დაცვეული `EvidenceUploaded` მოვლენა.  
* ახდენს **hash**‑ის ანგარიშს ახალი არფაქტის მქონე, გაერთიანებით **diff**‑ის ჩანაწერი.  
* თუ განსხვავება გადის პარამეტრს, იპოვის `AnswerRequiresRegen`‑ის.

### 4.6. Notification Service (Node.js)

* სავარაუდოდ `AnswerDrafted`, `AnswerFinalized`, `AnswerRequiresRegen`ივ.  
* შემზადებს Slack‑ის ბლოკებს, Teams‑ის Adaptive Cards ან ელ‑ფოსტის შაბლონებს.  
* **Deduplication** – თმებს, როგორც მოხსენება ერთხელ თითო ინტერვალი.

---

## 5. უსაფრთხოების და მმართველობის პრინციპები

| შეხედულება | მარაგის მანერვალი |
|-------------|-------------------|
| **მონაცემთა არყურება** – LLM‑ის პრոմპტში შეიძლება იყოს კრიტიკული უსაფრთხოების პოლიცები. | **On‑prem LLM‑ის ინტერნცია** (მაგ., Llama 3.2) VPC‑ში. დასაბეჭდენია PII‑ს. |
| **არა‑ავთენტიფიცირებული არფაქტის წვდომა** | OPA‑ის გაფრთხილებული ACL‑ები Evidence Service‑ში. |
| **მოდელის მორიგება** – პასუხები შეიძლება შემცირდნენ. | **Periodical evaluation** benchmark‑ის წინააღმდეგის, პრომპტის რეფაქტორინგი. |
| **აუდიტი** | ყველა მდგომარეობის გადახაზი რეესტრში, WORM‑S3-ზე. |
| **GDPR/CCPA** | «right‑to‑be‑forgotten»—წაშენე მომხმარებლის არფაქტები ვექტორული DB‑დან, S3‑დან. |
| **ISO 27001** | დათვალიერება, რომ არფაქტის, შიფრაციის, და ანშტიკაზე შესაბამისია. |
| **HIPAA / SOC 2** | OPA‑ის წესები გაფართოვებულია შესაბამისი მოთხოვნების მიხედვით. |

---

## 6. მასშტაბირ შესაძლებლობები

1. **Horizontal Pod Autoscaling (HPA)** – AI‑Orchestration‑ის pod‑ის მასშტაბირება GPU‑ის ალაკულტით.  
2. **Burst‑able Queues** – Kafka‑ის partition‑ზე ინტენსური tenant‑ის განთავისუფლება.  
3. **Cold‑Start Reduction** – გამართულის პულიაკი warm‑pool‑ი LLM‑ის სერვერისთვის (KEDA‑ის custom scaler).  
4. **Cost Controls** – Token‑based ბიუჯეტის შეზერვა per tenant; over‑usage‑ის ტრანქზე ან ქარნიტიუ.

---

## 7. განსაცდელი & მუდმივი გაუმჯობესება

* **Distributed Tracing** – OpenTelemetry‑ის span‑ები UI‑დან → API‑Gateway → AI‑Orchestration → RAG → Evidence Service.  
* **Metrics** – `answer_draft_latency_seconds`, `evidence_upload_bytes`, `llm_token_usage`.  
* **Log Aggregation** – სტრუქტურული JSON‑ლი, `request_id`‑ის პროფაგაციის across services.  
* **Feedback Loop** – დაიწყეთ პასუხის დასრულების შემდეგ მიმოხილვის კომენტარები (`review_score`). ითარგია reinforcement‑learning მოდელი, რომელიც ოპტიმალებს პრომპტის temperature‑ს ან სხვა არგიუმენტს.

---

## 8. ნაბიჯ‑ნაბიჯ მანეღვეთა გზა არსებული გუნდისთვის

| ფაზა | მიზანი | მოქმედება |
|------|--------|-----------|
| **0 – დისკასუხება** | მიმდინარე კითხვარის პროცესი მოდელირება. | მონაცემის წყაროების ანალიზი, კონტროლური ტაქსონომიის დეფინიცია. |
| **1 – ფუნდამენტის აგება** | API‑Gateway, აუტენთიფიკაცია, ბაზის სერვისები. | კონტეინერიზაცია `questionnaire-service`‑ის, `evidence-service`‑ის. |
| **2 – AI‑ს შემოტანა** | RAG‑ის პილოტი. | Sandbox‑LLM‑ის გაშვება, მანდატირებული დასამუშავებელი. |
| **3 – მოვლენა‑მოჭერება** | Change‑Detection‑ის ინტეგრაცია. | ღია აუდიტის მეცხრი შექნის. |
| **4 – მართვა** | OPA‑ის წესები, იმედი­წარა იუსუფება. | გადართვა წარმოშავი LLM‑ზე (on‑prem). |
| **5 – მასშტაბირება & ოპტიმიზაცია** | GPU‑ის auto‑scale, ბიუჯეტის კონტროლები. | observability‑ის დაპლოგება, SLO‑ის დანარჩნობა. |

ამ ეტაპობრივ გადახედვით, გუნდებს შესაძლებელია აძლიერება ნაკლებად რისკის “big‑bang” გადატანისა და წარმოჩინება ROI‑ის (30‑50 % შეზღუდული კითხვარის დრო) იხმენა.

---

## 9. მომავალ‑არჩევანის სტეკი

* **Federated Learning** – ონლაინ‑adapter‑ის ტრენინგი tenant‑ის მონაცემებზე, მონაცემის გადახედვის გარეშე.  
* **Zero‑Trust Service Mesh** – Istio ან Linkerd‑ის მომხმარებლის TLS‑ით შიდა ტრანსქციების დასაცავად.  
* **Semantic Governance** – Policy‑as‑Code‑ის გაფართება, რომლებსაც არავის საფუძველზე არა-ცვლილება (semantic similarity) აკრძალება.  
* **Generative Traceability** – LLM‑ის temperature, top‑p, სისტემა‑პრომპტის დამახინჯებული ჟურნალი, აუდიტის შემადასრულებლად.

---

## 10. დასკვნა

შედგენადი მიკროცერვის არქიტექტურა გარდამუშავებს უსაფრთხოების კითხვარის ავტომატიზაციას **მთელი ნაკადის, აუდიტირებელ, მუდმივად გაუმჯობესებულურ მანქანაზე**. შეუწყიფრიანობასაც, LLM‑ის RAG‑ს სტატუს‑ულ‑ინფერენციის ფენით, მოვლენა‑მოჭერებული საფუძვლებით – ორგანიზაციებს შეუძლიათ:

*  შუალედში vendor‑ის შეფასება წუთებში, არა დღებში.  
*  უსაფრთხოების არფაქტი ყოველთვის იყოს up‑to‑date.  
*  რეგულატორებმა მიიღონ ცოცხალი აუდიტის ჟურნალი.  

იწყება პატარა, ინოვაციურია, მომავალში მოდული, რომელიც compliance‑ის თვისება, არა ბოთლი.

---

## იხილეთ ასევე

- [OPA Policy‑as‑Code for Micro‑services](https://www.openpolicyagent.org/docs/latest/policy-language/)