dp-zp-agent/integrations/openwebui/README.md

58 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Overené odpovede v OpenWebUI
`verified_agent.py` je samostatná funkcia typu **Pipe**, ktorá sprístupní
dva modely: **ZP Agent / RAG – overené** a **ZP Agent / GraphRAG – overené**.
Vybraný model zavolá backend `/answer` a zobrazí jeho schválený text priamo.
Ďalší jazykový model tento text neprepisuje.
## Inštalácia administrátorom
1. V OpenWebUI otvorte **Admin Panel → Functions → Create New Function**.
2. Vložte obsah `verified_agent.py`, uložte funkciu napríklad ako `zp_verified`
a zapnite ju. Kód funkcie vykonáva server OpenWebUI; neinštaluje ju bežný používateľ.
3. Vo **Valves** nastavte `BACKEND_URL` na adresu API dostupnú zo servera
OpenWebUI a `BACKEND_API_KEY` na jeho `SEARCH_API_KEY`.
Ak sú obe služby v rovnakej Compose sieti, URL je `http://zp-agent-api:8000`.
`localhost` v školskom OpenWebUI neoznačuje tento vývojový počítač.
4. Backend potrebuje `OPENWEBUI_API_KEY` pre prístup ku generujúcemu modelu.
Voliteľné `ANSWER_LLM_URL` má predvolenú hodnotu
`https://ui.tukekemt.xyz/api/chat/completions`; `ANSWER_MODEL` je
predvolene `model120-fast`. Vyberte základný model, ktorý nevolá tento Pipe,
aby nevznikla slučka. Kľúče nezapisujte do zdrojového súboru ani Gitu.
5. V chate vyberte jeden z dvoch nových modelov. Overte bežnú odpoveď,
nedostupnosť backendu, chýbajúce podklady a neúplný výsledok.
Dokumentácia OpenWebUI:
[Functions](https://docs.openwebui.com/features/extensibility/plugin/functions/),
[Pipes](https://docs.openwebui.com/features/extensibility/plugin/functions/pipe/).
## Kontroly a hranice
- API `/answer` vyžaduje rovnakú autorizáciu ako vyhľadávanie.
- RAG kontroluje osobu, konkrétny názov, typ a rok z toho istého záznamu
v skutočne doručenom kontexte. Rok kategórie nenahrádza rok práce.
Používa iba vyhľadaný text; nečíta očakávania benchmarku ani Neo4j.
- Všeobecné odpovede môžu obsahovať doslovné citované výňatky. Ich zhoda
so zdrojom nezaručuje, že výňatok vyčerpáva význam celej otázky.
- GraphRAG používa kontroly typovaných faktov, väzieb, citácií a agregácií.
- Model má najviac jeden opravný pokus podľa podkladov. Potom sa odpoveď
odmietne. Finálny text zostavuje aplikácia z overených údajov.
- Pipe vyžaduje `accepted_for_delivery=true` a povolený stav. Odmietnutý
modelový text ani diagnostické pokusy sa používateľovi nevracajú.
- Neúplnosť a verzia indexov sa prenášajú z vyhľadávania. Upozornenie na
neúplnosť je súčasťou zobrazeného textu.
- Pôvodný `/rag` stále poskytuje podklady. Bežný OpenAPI Tool Server
nasledovaný ľubovoľným LLM nezabezpečuje túto kontrolovanú cestu.
- Funkcia pracuje s poslednou otázkou; zatiaľ neprepisuje odkazy typu
„a jeho ďalšia práca“ podľa histórie konverzácie.
Lokálny test integračného adaptéra a API:
```bash
.venv/bin/python -m pytest -q test/test_verified_rag.py
```
Test kontroluje aj HTTP payload, autorizáciu a priamy výstup oboch modelov.
Nezastupuje inštaláciu na školskom serveri: tú musí vykonať administrátor
a overiť sieťovú dostupnosť API zo servera OpenWebUI.