Skip to main content

Mokesčių GPT asistentas (Sufleris Agent) — Paleidimo instrukcija

Kas tai?

OpenAI agentas, kuris:

  1. Priima klausimą lietuviškai
  2. Ieško Mokesčių SUFLERYJE (tavo paskyra, per naršyklės automatizaciją) ir/arba VMI viešame tinklalapyje (HTTP, be prisijungimo)
  3. Atidaro reikšmingiausius straipsnius / VMI puslapius
  4. Atsako su šaltinių nuorodomis ir aiškiai skiria oficialų VMI turinį nuo Kitas šaltinis portalo praktinių paaiškinimų

Žingsnis po žingsnio

1. Reikalavimai

  • Python 3.12 arba 3.11 (rekomenduojama; su dabartiniais requirements.txt pin’ais Python 3.14 dažnai nesurinks ratų — greenlet / pydantic-core)
  • OpenAI API raktas (https://platform.openai.com/api-keys)
  • Aktyvi Kitas šaltinis portalo paskyra (mokesciu-sufleris.lt)

2. Instaliavimas

cd sufleris-agent

# Sukurti virtualią aplinką
python -m venv venv
source venv/bin/activate        # Mac/Linux
venv\Scripts\activate           # Windows

# Instaliuoti priklausomybes
pip install -r requirements.txt

# Instaliuoti Playwright naršyklę
playwright install chromium

Windows (PowerShell), projekto šaknyje: jei nori .venv šalia repo ir stabilų py launcherį:

cd C:\kelias\į\sufleris-agent
Remove-Item -Recurse -Force .venv -ErrorAction SilentlyContinue
py -3.12 -m venv .venv
.\.venv\Scripts\Activate.ps1

Jei Activate.ps1 neįvykdomas dėl politikos:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

Jei python debug_selectors.py meta UnicodeEncodeError ant lietuviškų raidžių konsolėje, prieš paleidimą:

$env:PYTHONIOENCODING = "utf-8"

3. Konfigūracija

Atidaryk .env failą ir užpildyk:

OPENAI_API_KEY=sk-...
# Jei pridėsi Anthropic integraciją šiame repozitorijoje, naudok raktą
# ANTHROPIC_API_KEY_SUFLERIS (ne ANTHROPIC_API_KEY), kad nesikirstų su Claude Code.
SUFLERIS_EMAIL=tavo@email.lt
SUFLERIS_PASSWORD=tavo_slaptazodis
SUFLERIS_BASE_URL=https://www.mokesciu-sufleris.lt
SUFLERIS_LOGIN_PATH=/login
SUFLERIS_SEARCH_PATH=/paieska
SUFLERIS_SEARCH_PARAM=q
RESULT_LINK_SELECTOR=.wrapper__main_content__content__list__item__link
SUFLERIS_USERNAME_SELECTOR=input[name="_username"]
SUFLERIS_PASSWORD_SELECTOR=input[name="_password"]

(Paieška vyksta per puslapio paieškos lauką, ne per ?q= URL; SUFLERIS_SEARCH_PATH nurodo tik /paieska puslapį. Rezultatai skaitomi iš #results .ContentItemCard; galima keisti per SUFLERIS_SEARCH_HIT_CARD_SELECTOR.)

VMI (vieši URL, slaptų reikšmių nereikia) — galima pridėti į .env tik jei reikia koreguoti adresus ar teksto ilgį:

VMI_BASE_URL=https://www.vmi.lt
VMI_SEARCH_URL=https://www.vmi.lt/evmi/paieska
VMI_SEARCH_PARAM=query
VMI_TEXT_MAX=10000
VMI_SEARCH_FALLBACK=bing

/search-vmi ir agento VMI paieška: pirmiausia bandoma VMI vidinė paieška (VMI_SEARCH_URL + VMI_SEARCH_PARAM). Jei rezultatų nėra, įjungiamas atsarginis Bing režimas su užklausa site:vmi.lt/evmi … — pirmiausia nuskaitomas viešas Bing RSS (/search?format=rss&…, be mokamos paieškos API); jei RSS tuščias, bandomas Bing HTML ir iš jo renkamos tik vmi.lt nuorodos į kelius /evmi/.... Tai nenaudoja mokamos paieškos API. Jei nori išjungti išorinę paiešką, nustatyk VMI_SEARCH_FALLBACK=none.

Jei neįrašysi — naudojamos numatytosios reikšmės kode. Esamų Suflerio ir OpenAI raktų nekeisk.

4. Rask teisingus selektorius (BŪTINA)

Suflerio HTML struktūra nėra žinoma iš anksto, todėl reikia vieną kartą patikrinti:

python debug_selectors.py

Programa:

  • Atidarys naršyklę (bus matoma)
  • Prisijungs prie Suflerio
  • Parodys visas rastas nuorodas
  • Išsaugos debug_search_after_input.html ir kitus debug failus

Ką daryti po to:

  1. Atidaryk debug_search_after_input.html naršyklėje
  2. DevTools → Elements (F12)
  3. Hover ant straipsnio kortelės
  4. Nukopijuok CSS klasę, pvz. .search-item a ar .result-title
  5. Jei reikia — pakeisk RESULT_LINK_SELECTOR .env faile (numatytąją reikšmę nustato app/kitas_client.py)

5. Paleidimas

Windows: run.bat (rekomenduojama vienu dukstu)

  1. Paleidimas: dukart spustelėk projekto šaknyje run.bat (arba paleisk iš Explorer / CMD). Skriptas per PowerShell (ExecutionPolicy Bypass, -NoExit) aktyvuoja .venv, nustato UTF-8 ir paleidžia serverį ant 127.0.0.1:8010. Po kelių sekundžių automatiškai atsidaro naršyklė su adresu http://127.0.0.1:8010/ (web chat langas).
  2. Trumpinys ant darbalaukio: dešiniu pelės mygtuku ant run.bat → Siųsti į → Darbalaukis (sukurti nuorodą). Arba Sukurti nuorodą ir Tikslas: įrašyk pilną kelią į run.bat, pvz. C:\Users\...\Desktop\sufleris-agent\run.bat.
  3. Sustabdymas: aktyviame PowerShell lange, kuriame veikia uvicorn, spausk Ctrl+C — serveris sustos; naršyklės langą gali uždaryti atskirai. (-NoExit palieka konsolę atidarytą po sustabdymo, kad matytum žinutes.)

Patikrinimas naršyklėje arba PowerShell:

(Tas pats per PowerShell: Invoke-RestMethod "http://127.0.0.1:8010/health".)

Web chat UI (naršyklėje)

  • Atverk http://127.0.0.1:8010/ (arba palauk, kol run.bat pats atidarys naršyklę).
  • Pavadinimas: Mokesčių GPT asistentas.
  • Šaltiniai: žymės langeliai Kiti šaltiniai, VMI, Sodra, VDI, AVNT (numatytai įjungti Kiti šaltiniai ir VMI). Jei nepažymėtas nė vienas — rodoma klaida ir užklausa nesiunčiama.
  • Atsakymo išsamumas: Trumpai (short), Standartiškai (standard, numatytasis), Išsamiai (detailed).
  • Režimas: Oficialus (official — prioritetas VMI ir reguliaciniams DB tekstams), Praktinis (practical — prioritetas portalui / praktikai), Abu (balanced — numatytasis balansas tarp šaltinių).
  • Į didelį lauką įrašyk klausimą lietuviškai ir spausk Klausti — rodoma eigos juosta (pseudo-progresas iki ~94 %, kol laukiamas /ask), etapai, procentai ir Praėjo: N s; po 90 s papildomas paaiškinimas, kad ilgos užklausos normalu skaitant kelis šaltinius. Užbaigus — 100 % ir Baigta, trumpam rodoma Atlikta per N s. Kiekvienas sėkmingas klausimas pridedamas į pokalbio istoriją (vienos naršyklės sesijos metu, atmintyje).
  • Po kiekvienu atsakymu: Kopijuoti atsakymą, Kopijuoti nuorodas, Atidaryti visas nuorodas (gali reikėti leisti iššokančius langus). Po nuorodų kortelių rodomi trumpi būsenos pranešimai (pvz. Atsakymas nukopijuotas).
  • Visos nuorodos iš atsakymo — kortelės, sugrupuotos pagal domeną: VMI (vmi.lt), Kiti šaltiniai (mokesciu-sufleris.lt), Sodra, VDI, AVNT, kiti; kortelėje — pavadinimas (jei pavyksta ištraukti iš „Pavadinimas – URL“), paspaudžiama nuoroda, mygtukas Atidaryti.
  • Išvalyti lauką — ištuština tik klausimo lauką. Išvalyti pokalbį — išvalo visą istoriją ir atsakymų sritį. Ctrl+Enter siunčia klausimą. Kol vykdoma /ask užklausa, Klausti pakeičiamas į Vykdoma... ir išjungiamas; Išvalyti mygtukai lieka aktyvūs (neatšaukia jau išsiųstos užklausos).
  • Sistemos būsena (puslapio viršuje): po užkrovimo kviečiamas GET /health — serveris, Kitas šaltinis, VMI, dokumentų skaičiai pagal DB šaltinį (documents_by_source) ir bendras (documents_total).

POST /ask kūno formatas (visi laukai, išskyrus question, neprivalomi su numatytaisiais):

{
  "question": "...",
  "sources": ["kitas", "vmi", "sodra", "vdi", "avnt"],
  "detail_level": "standard",
  "answer_mode": "balanced"
}
  • Jei sources praleistas arba tuščias — serveris naudoja abu šaltinius. Leidžiamos reikšmės: kitas (arba legacy sufleris), vmi.
  • Jei detail_level arba answer_mode neteisingi — serveris naudoja numatytąsias reikšmes (standard, balanced), negrąžina 422 dėl šių laukų.

Rankinis paleidimas (visos OS)

uvicorn app.main:app --reload

Matysi:

INFO | Paleidžiamas Kitas šaltinis klientas...
INFO | Sėkmingai prisijungta prie portalo ✓
INFO | Uvicorn running on http://127.0.0.1:8000

6. Testavimas

Paprastas testas (curl) — abu šaltiniai (numatytai, jei sources neįrašytas):

curl -X POST http://127.0.0.1:8010/ask \
  -H "Content-Type: application/json" \
  -d "{\"question\": \"Kaip veikia reprezentacinių išlaidų PVM atskaita?\", \"sources\": [\"kitas\", \"vmi\"]}"

Tik VMI (be Kitas šaltinis portalo paieškos naršyklėje):

curl -X POST http://127.0.0.1:8010/ask \
  -H "Content-Type: application/json" \
  -d "{\"question\": \"Kokia PVM registracijos riba?\", \"sources\": [\"vmi\"]}"

Paieška be AI (debuginimui):

curl "http://127.0.0.1:8010/search?query=PVM+atskaita&limit=5"
curl "http://127.0.0.1:8010/search-vmi?query=PVM+registracijos+riba&limit=5"

Sveikatos patikrinimas (status, kitas_logged_in, vmi_http, version, pvz. mvp-2.2):

curl http://127.0.0.1:8010/health

Interaktyvus API dokumentas:

http://127.0.0.1:8010/docs

Projekto struktūra

sufleris-agent/
├── app/
│   ├── __init__.py
│   ├── main.py              ← FastAPI: /, /ask, /search, /search-vmi, /health
│   ├── agent.py             ← OpenAI: paieška ir atsakymas (Kitas šaltinis + VMI)
│   ├── kitas_client.py      ← Naršyklės automatizavimas (Playwright)
│   ├── vmi_client.py        ← VMI HTTP paieška ir puslapio tekstas
│   └── static/              ← Web chat UI (index.html, style.css, app.js)
├── .env                     ← Tavo raktai (NIEKADA į Git!)
├── requirements.txt
├── run.bat                  ← Windows: paleidžia serverį (8010)
├── run.ps1                  ← Windows: .venv + UTF-8 + uvicorn
├── debug_selectors.py       ← Selektorių paieška (paleisk pirmą kartą)
└── README.md

Galimos klaidos ir sprendimai

Klaida Sprendimas
Login may have failed Patikrink el. paštą/slaptažodį .env faile
0 rezultatų Pakeisk RESULT_LINK_SELECTOR .env arba kliente (paleisk debug_selectors.py)
Timeout Kitas šaltinis portalas lėtas — padidink timeout reikšmę client'e
Session expired Klientas automatiškai prisijungs iš naujo
OpenAI error Patikrink OPENAI_API_KEY ir balansą

Svarbu

  • Šis įrankis skirtas tik asmeniniam naudojimui su tavo paskyra
  • Nekeliok .env failo į GitHub
  • Portalo turinys lieka portalo serveriuose — AI gauna tik trumpas ištraukas atsakymui

Metadata

Release files for rag-audit-toolkit 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for rag-audit-toolkit 0.3.0
File Size Uploaded Provenance Actions
rag_audit_toolkit-0.3.0.tar.gz 233.2 kB With provenance Details for rag_audit_toolkit-0.3.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for rag-audit-toolkit 0.3.0
File Interpreter ABI Platform Actions
rag_audit_toolkit-0.3.0-py3-none-any.whl Python 3 none any Details for rag_audit_toolkit-0.3.0-py3-none-any.whl

Total release size: 363.8 kB

Release files / rag_audit_toolkit-0.3.0.tar.gz

Download URL rag_audit_toolkit-0.3.0.tar.gz
Size 233.2 kB
Tags Source
SHA-256 checksum
How to use checksums
a1f1e746acc3c1b37fc48fce5e7d27b1795df1d4d462e88c39659dfb4b88c4e5
BLAKE2b-256 checksum
How to use checksums
cc43f44fe375dbd16e36e9d571b20c8702d0cd35b56bb89940d94aca3a481eaf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 11, 2026.

Transparency log

Release files / rag_audit_toolkit-0.3.0-py3-none-any.whl

Download URL rag_audit_toolkit-0.3.0-py3-none-any.whl
Size 130.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
22a0f583cc715b71c722667b1d63172665a5c482dc0371439e5f8144d6904dbb
BLAKE2b-256 checksum
How to use checksums
dd20e1d7b5757055280d8d4f61606047dc9a08d4dbf81eae389741493715640e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 11, 2026.

Transparency log

Security for rag-audit-toolkit 0.3.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for rag_audit_toolkit-0.3.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 11, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page