Skip to content

Arvioinnin luotettavuus: JSON-korjaukset, tilastonäyttö, diagnostiikka#4

Merged
ttokola merged 8 commits into
mainfrom
claude/claude-md-geopalvelin1
Jul 14, 2026
Merged

Arvioinnin luotettavuus: JSON-korjaukset, tilastonäyttö, diagnostiikka#4
ttokola merged 8 commits into
mainfrom
claude/claude-md-geopalvelin1

Conversation

@KlaudeKoo

@KlaudeKoo KlaudeKoo commented Jul 12, 2026

Copy link
Copy Markdown
Collaborator

Kokoaa arviointiputken luotettavuus- ja diagnostiikkaparannukset. Alkoi CLAUDE.md-päivityksestä (geopalvelin1-migraatio) ja kasvoi kattamaan JSON-virheluokan juurisyyt jotka estivät arviointien läpimenon.

Muutokset

Diagnostiikka

  • Epäonnistuneet erät kirjataan loki.log:iin (aiemmin except nielaisi virheet hiljaa)
  • Virheet luokitellaan: max tokens / 502 / tyhjä vastaus / väärä muoto

JSON-luotettavuus (juurisyyt lokista)

  • provider.require_parameters=true → OpenRouter reitittää vain tarjoajille jotka kunnioittavat response_formatia (poistaa roskaa tuottavat tarjoajat)
  • json.loads(strict=False) → raa'at ohjausmerkit perusteluissa eivät hylkää muuten kelvollista JSONia
  • _siivoa_tulokset torjuu hallusinoidut/väärät kurssi-id:t ennen DB-INSERTiä + kirjaa puuttuvat tulokset

LLM-asetusvalikko

  • Mallitaulukossa "muoto?"-sarake (skeema/json/tools) OpenRouterin supported_parameters-kentästä — ei lisäpyyntöä
  • Saatavuustarkistus varoittaa jos malli ei tue response_formatia

Arvioinnin ajonäkymä

  • laske_tyomaara erottaa täydennyksen (puuttuva vastaus) oikeasta muutoksesta (kehote/kysymys muuttui) — ei enää väärää "kehote muuttunut" -hälytystä
  • Elävä tilastonäyttö: onnistuneet + epäonnistuneet syittäin
  • Ruutu tyhjennetään joka piirrolla (ei jää roikkumaan vanhaa tekstiä)
  • q keskeyttää ajon ilman Ctrl-C:tä

Kielioppi / hygienia

  • _lue_jarjestelma_kehote_lue_jarjestelmakehote
  • loki.log pois versionhallinnasta (gitignore) — aiheutti merge-konflikteja koneiden välillä

Testit

374/374 läpi. Uudet testit: virheluokittelu, tilasto, keskeytys, id-siivous, muototuki.

Huom

DB/SQL-riippuvaista koodia ei ole voitu ajaa geopalvelinta vasten sandboxista — verifiointi ihmisellä.

🤖 Generated with Claude Code

Klaude and others added 8 commits July 12, 2026 18:42
MySQL ei ole enää paikallinen Docker-kontti vaan etäpalvelin geopalvelin1
(Tailscale, korkea latenssi); yhteysasetukset .env:stä. Muistutus kirjoittaa
DB-koodi etälatenssia varten (pooli, COUNT/aggregaatit).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Hiljainen `except Exception` nielaisi eräkohtaiset virheet, joten
epäonnistuneiden arviointien syytä ei voinut diagnosoida. Kirjataan nyt
aikaleima, poikkeustyyppi/-viesti ja erän kurssien KID:t loki.log:iin.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Arviointierät kaatuivat massoittain JSON-virheisiin. Kaksi syytä korjattu:
- kutsu.py: provider.require_parameters=true → OpenRouter reitittää vain
  tarjoajille jotka kunnioittavat response_formatia (poistaa "OpenInference"-
  tyyliset 502-roskavastaukset ja tyhjät vastaukset).
- llmarviointi.py: json.loads(strict=False) → raa'at ohjausmerkit (\n, \t)
  perusteluissa eivät enää hylkää muuten kelvollista JSONia.

Katkeamiset (Unterminated string) hoituvat pienemmällä ARVIOINTI_ERAKOKO:lla.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Structured-output-oppaan kohta 6: aseta_vastaus on suora INSERT (KysID, KID),
joten mallin hallusinoima id kirjoittaisi orpo-/väärän rivin. _siivoa_tulokset
suodattaa tulokset vain erän kursseihin ja normalisoi id:t kokonaisluvuiksi.
Lisäksi loki.log:iin kirjataan kun malli palauttaa vähemmän kursseja kuin
pyydettiin (hiljainen osittaisvaje näkyviin). Loki-kirjoitus DRY:ttiin
_kirjaa-apufunktioon.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Saatavuustarkistus varmisti vain että mallin id löytyy /models-listalta, ei
sitä tukeeko malli response_formatia. OpenRouterin /models-vastauksessa on jo
per-malli supported_parameters — luetaan se ilman lisäpyyntöä:

- muoto_kentta() + uusi "muoto?"-sarake mallitaulukkoon (skeema/json/tools/—/?)
- muototuki_varoitus() + "Tarkista saatavuus" varoittaa jos nykyinen malli ei
  ilmoita response_format-tukea (silloin require_parameters ei voi auttaa)

Ei suodata malleja pois — vain näyttää tuen, jotta mallinvalinta on
itsedokumentoiva sen sijaan että vika näkyy vasta loki.log:ssa.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Neljä parannusta arvioinnin ajonäkymään:
1. laske_tyomaara palauttaa (uudet, täydennettävät, muuttuneet) — pelkkä
   puuttuva vastaus ei enää valehtele "kehote muuttunut" -varoituksena;
   varoitetaan vain kun tiiviste oikeasti eroaa.
2. Näyttö tyhjennetään joka ruudulla (stdscr.erase) — ei vanhaa valikkotekstiä
   roikkumaan "Yhdistetään LLM:ään..." perään.
3. aja() luokittelee epäonnistuneet erät (max_tokens/502/tyhjä/muoto) ja pitää
   elävää tilastoa; näyttö listaa onnistuneet + epäonnistuneet syittäin.
4. keskeyta_cb + stdscr.nodelay: 'q' keskeyttää ajon erien välissä ilman Ctrl-C:tä.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…gienia

Kaksi jälkikorjausta Teemun kielioppikorjaus-mergen päälle:

1. Rename _lue_jarjestelma_kehote → _lue_jarjestelmakehote (jarjestelma_kehote
   → jarjestelmakehote) yhdenmukaisesti 9 tiedostossa.

2. loki.log pois versionhallinnasta: ajonaikainen loki aiheutti merge-
   konflikteja koneiden välillä ja likaantui joka ajolla. Gitignoretaan +
   poistetaan seurannasta (paikallinen tiedosto säilyy). Autouse-fixture mockaa
   _kirjaa → yksikkötestit eivät enää luo loki.log:ia repo-juureen.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@KlaudeKoo KlaudeKoo changed the title CLAUDE.md: kirjaa MySQL:n migraatio geopalvelin1:lle Arvioinnin luotettavuus: JSON-korjaukset, tilastonäyttö, diagnostiikka Jul 14, 2026
@ttokola ttokola merged commit 91a8e4c into main Jul 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants