Commit Graph

44 Commits

Author SHA1 Message Date
6ccf6fb0e1 CodeBench: stripaa === marker === file-by-file outputista 2026-04-15 00:28:57 +03:00
a3ea0c2fda CodeBench: file-by-file build-validointi vasta kun kaikki tiedostot valmiina
- Vaihe 1: generoi kaikki 4 tiedostoa peräkkäin (konteksti kasvaa)
- Vaihe 2: go build kaikilla tiedostoilla → virheet per tiedosto → korjaus
- Ratkaisee: models.go yksinään ei käänny (ei main-funktiota)
- Virheet ryhmitellään tiedostoittain, korjataan vain viallinen tiedosto
2026-04-15 00:21:36 +03:00
3b1a02a9af CodeBench: go build output ei vuoda terminaaliin (stdio: pipe) 2026-04-15 00:12:57 +03:00
56133b5d19 CodeBench: siistimpi file-by-file virheilmoitus 2026-04-15 00:12:20 +03:00
9670c85750 CodeBench: file-by-file välitön go build -validointi + korjausloop
- Jokainen tiedosto (paitsi _test.go) validoidaan go buildilla heti
- Käännösvirheet palautetaan mallille korjattavaksi (max 2 yritystä)
- Virhe korjataan yhden tiedoston kontekstissa, ei koko projektia
- Testitiedosto validoidaan vasta lopussa go testillä (vaihe 5)
2026-04-15 00:10:06 +03:00
20a1e5f015 CodeBench: --convert-model Python→Go pipeline
- 8b generoi Pythonia (osaa sen), 30b konvertoi Go:ksi
- convert-go.md prompti: FastAPI→Chi, SQLAlchemy→database/sql mappaukset
- Koodigenerointi käyttää Python golden+promptia kun convert-model asetettu
- Vaihe [3.5/5] konvertointia varten
2026-04-14 23:54:45 +03:00
a16c33f4fb CodeBench: go.mod-generointi ennen missing-tarkistusta 2026-04-14 23:37:09 +03:00
afef340eb8 CodeBench: file-by-file logiin tokenit, rivimäärä ja tok/s per tiedosto 2026-04-14 23:36:29 +03:00
a65a25c56c CodeBench: --file-by-file generointi pienille malleille
- Generoi yksi tiedosto kerrallaan: models.go → handlers.go → main.go → tests
- Edellisten tiedostojen koodi kontekstissa seuraavalle
- Max 2048 tok per tiedosto (vs 10240 kaikki kerralla)
- go.mod generoidaan aina golden examplesta (ei mallin tuotoksesta)
- Promptissa "Write ONLY the file X" + "Start with package main"
2026-04-14 23:31:20 +03:00
178bef1277 CodeBench: korvaa go.mod aina golden versiolla — pienet mallit tuottavat vääriä moduulipolkuja 2026-04-14 23:14:07 +03:00
1649d2e864 CodeBench: --spec-ollama lippu eri Ollama-instanssille spec-vaiheissa 2026-04-14 23:05:07 +03:00
3caefa2f6e CodeBench: automaattinen go.mod-korjaus pienille malleille 2026-04-14 23:02:44 +03:00
9aa4a46768 CodeBench: kielisuffiksi priorisoituu prompttivalinnassa (code-go > code-small) 2026-04-14 22:58:14 +03:00
61966783e3 CodeBench: spec-simple.md pienille malleille
- Yksinkertaistettu JSON-skeema: ei sa_type/py_type, vain type-kenttä
- Small-profiili käyttää automaattisesti spec-simple promptia
- Vähemmän kenttiä per entity → pienempi output → 8b selviytyy
2026-04-14 22:06:29 +03:00
7bcba3daf8 CodeBench: --spec-model lippu — eri malli spec-vaiheille (1-2) 2026-04-14 21:43:44 +03:00
5b8919ef89 CodeBench: sekunnit aikaleimaan (T17-58 → T17-58-23) 2026-04-14 21:10:52 +03:00
a4942edb9f CodeBench: --no-orchestrate lippu orkestroinnin ohittamiseen 2026-04-14 21:08:34 +03:00
8fc31f2a53 CodeBench: kierroskohtainen output-dir + tiivistetty Go golden example
- runPipeline saa round-parametrin, dir: model__scenario__r1, __r2 jne.
- todo-go.md testit 6→4 (poistettu list+update toisteiset), 466→370 riviä
2026-04-14 20:57:50 +03:00
01364b7031 CodeBench: korjaa Go-pipeline — tiedostoparseri + go mod tidy
- parseGeneratedFiles regex: lisätty .go ja .mod päätteet
- Markdown fence strippaus: lisätty go/gomod
- Dockerfile.go-test: go mod tidy ennen testejä (go.sum generoidaan)
- Testattu: 6/6 golden example ilman go.sum
2026-04-14 19:27:19 +03:00
f3cd1347ab CodeBench: Go-tuki — Chi + SQLite + httptest
- Golden example: todo-go/ (6/6 testit läpi)
- todo-go.md golden reference
- prompts/code-go.md koodigenerointi-prompti
- Dockerfile.go-test (golang:1.23-alpine)
- benchmark.mjs: LANG_CONFIG, parseTestOutput, prompt/golden-valinta Go:lle
- Käyttö: node benchmark.mjs --lang go --models qwen2.5-coder:32b
2026-04-14 19:20:18 +03:00
ac2e3e92fc CodeBench: orkestrointi kaikille malleille ja kielille kun >1 entiteetti
Aiemmin vain small+python. Nyt kaikki multi-entity skenaariot pilkotaan
entiteetti kerrallaan — myös Rust ja large-mallit.
Author toimii jo, Article inkrementaalisena lisäyksenä helpompi.
2026-04-14 18:47:34 +03:00
0975385101 CodeBench: reqwest 0.13 + Docker volume cache + rust:latest
- reqwest 0.12 → 0.13, rustls-tls → rustls (golden, Dockerfile, promptit)
- Docker volume cache: kipina-cargo-registry + kipina-cargo-target
- rust:latest (1.94) + cmake (aws-lc-sys vaatii)
- Dockerfile yksinkertaistettu — esikäännös ei toimi, volume hoitaa
- Golden example 10/10 testattu uudella setupilla
2026-04-14 18:42:05 +03:00
bb8be3ffb4 CodeBench: revert-if-worse + erillinen testFixRounds-laskuri
- Seurataan parasta testitulosta (bestPassed/bestFiles)
- Jos korjaus huonontaa: palautetaan paras versio ja lopetetaan
- fixRounds laskee vain testikorjaukset, ei cargo check -kierroksia
- Estää 4/7 → 0/1 regressiot korjaussilmukassa
2026-04-14 18:24:46 +03:00
742f331d93 CodeBench: Rust cargo check -vaihe ennen testejä + käännösvirheiden itsekorjaus
- Vaihe 4/5: cargo check Docker-kontissa ennen cargo test -ajoa
- Käännösvirheet syötetään mallille korjattavaksi (max 2 kierrosta)
- Estää turhat cargo test -ajot kun koodi ei käänny
2026-04-14 17:52:45 +03:00
d003f73217 CodeBench: tyhjennä GPU-muisti jokaisen kierroksen alussa
clearVram()-funktio vapauttaa kaikki Ollama-mallit VRAM:sta ennen testiä.
2026-04-14 17:47:55 +03:00
882bcece06 CodeBench: kirjoita results.json jokaisen kierroksen jälkeen
Välitulokset näkyvät heti tiedostossa, ei tarvitse odottaa koko ajon loppua.
2026-04-14 17:45:54 +03:00
477c21efd0 CodeBench: Rust golden example — todo-rs.md + kielitietoinen valinta
- Luotu todo-rs.md golden example Rust-referenssitoteutuksesta
- getGoldenForModel() huomioi nyt LANG: todo.md → todo-rs.md Rust-moodissa
- Korjattu golden-compact-rs.md /:id → /{id} bugi
- Juurisyy: malli sai Python golden examplen mutta piti generoida Rustia
2026-04-14 17:37:38 +03:00
0b926c2cad CodeBench Taso 3: orkestrointi — pilko entiteetti kerrallaan pienille malleille
Small-profiili + >1 entiteettiä → generoi entiteetti kerrallaan:
1. Author (yksi entiteetti, 8b osaa)
2. Syötä Author-koodi → generoi Post + FK
3. Yhdistä ja testaa

Large-profiili jatkaa kuten ennen (kaikki kerralla).
2026-04-14 15:00:40 +03:00
a25c52cff4 CodeBench: mallikohtainen golden example (profiles.json → golden kenttä)
qwen3-coder:30b → todo.md (annotaatiot)
qwen3:8b → todo-readme.md (GitHub README -muoto, tutuin koulutusdata)
Golden example ladataan dynaamisesti per malli pipelinen sisällä.
2026-04-14 14:04:28 +03:00
0c3303a640 CodeBench: tyhjennä VRAM automaattisesti ennen testiajoa 2026-04-14 14:00:38 +03:00
ba48b737f2 CodeBench: --scenarios tukee yksittäistä skenaariota (todo/users/blog) 2026-04-14 13:58:38 +03:00
92964e322f CodeBench: mallikohtaiset promptiprofiilit (profiles.json)
- profiles.json: malli → profiili → prompti -mappaus
- code-small.md: tiivistetty prompti pienille malleille (8b, 4b)
- benchmark valitsee automaattisesti oikean promptin mallin perusteella
- qwen3-coder:30b → code.md (large), qwen3:8b → code-small.md (small)
2026-04-14 13:54:26 +03:00
1de7e5c90b CodeBench: nopea syntaksitarkistus ennen Docker-ajoa
py_compile tarkistaa .py-tiedostot millisekunneissa.
Syntaksivirhe → suoraan itsekorjaukseen, ohitetaan Docker (~10s säästö).
2026-04-14 12:52:03 +03:00
e360896436 CodeBench Taso 4: itsekorjaava looppi — syötä pytest-virhe mallille
Jos testit epäonnistuvat, LLM saa virheilmoituksen + koodin ja korjaa.
Max 3 korjauskierrosta. Testattu: qwen3:8b users 0/6 → korjaus → 6/6.
2026-04-14 12:46:06 +03:00
6a40ca5730 CodeBench: golden example markdown-muodossa (koodi + selitykset)
todo.md yhdistää koodin ja annotaatiot: miksi pattern on valittu,
mitä EI saa tehdä. 1567 tokenia (vs raaka 1340, compact 335).
Benchmark lataa .md-version oletuksena, fallback erillisiin tiedostoihin.
2026-04-14 12:38:25 +03:00
0f3310996e CodeBench: oletus-URL 127.0.0.1 localhostin sijaan (Node 18 IPv6-ongelma) 2026-04-14 11:08:21 +03:00
e2a16b8ff6 CodeBench: väliraportti jokaisen kierroksen jälkeen
Näyttää mediaanin, kaikkien kierrosten pisteet ja trendin (▲▼─).
2026-04-14 11:04:51 +03:00
a0d3748faf CodeBench: --rounds N toistaa testiajot 1-10 kertaa
Kierrosyhteenveto näyttää mediaanin, min/max ja pass-raten per kierros.
Käyttö: node benchmark.mjs --models qwen3:14b --scenarios all --rounds 3
2026-04-14 11:03:00 +03:00
01b4fb8e22 CodeBench: --compact tiivistää golden examplen templaatiksi
Python: 1340 → 335 tokenia (−75%)
Rust: 3383 → 445 tokenia (−87%)
Käyttö: node benchmark.mjs --compact --models qwen3:4b
2026-04-14 10:59:39 +03:00
e7b33b7d6f CodeBench: Rust-tuki (--lang rust), golden example todo-rs, Dockerfile.cargo-test
- golden-examples/todo-rs/: Axum 0.8 + SQLx + SQLite, 10 testiä
- prompts/code-rs.md: Rust-koodingenerointiprompt
- Dockerfile.cargo-test: rust:1.87-slim testikontti
- benchmark.mjs: --lang python|rust, kieliriippuvainen golden example,
  parseri tukee cargo test -tuloksia, src/ alihakemistot
2026-04-14 10:55:50 +03:00
d02f6a51c1 CodeBench: --think lippu thinking-moodin testaamiseen
think:true + 3× token-raja (ajattelu vie ~2/3 tokeneista).
Käyttö: node benchmark.mjs --think --models qwen3:14b
2026-04-14 10:12:44 +03:00
8ba9ef83a3 CodeBench: num_ctx 16384 — rajoita konteksti-ikkuna VRAM-säästöksi
256K konteksti varaa ~15 GB KV-cachea vaikka benchmark käyttää ~3K.
16K riittää hyvin ja säästää merkittävästi VRAM:ia.
2026-04-14 09:49:30 +03:00
f50dc884a3 CodeBench: automaattinen aikaleima ja arkistointi results/-kansioon
Output-hakemisto /tmp/kipina-benchmark/2026-04-14T12-30/
Tulokset kopioidaan automaattisesti results/<aikaleima>.json/.html
2026-04-14 09:47:32 +03:00
7b27800390 Siirrä kipina-codebench projektin päätasolle 2026-04-14 09:44:14 +03:00