Commit Graph

387 Commits

Author SHA1 Message Date
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
2d470ee418 CodeBench: deprecated-patterns.md + inline deprecated-säännöt promptissa
Lisätty SQLAlchemy 2.0, Pydantic v2, FastAPI ja Python deprecated →
modern patterniparit. Uusimmat dokumentaatiot tarkistettu 2026-04-14.
2026-04-14 12:28:35 +03:00
062e6af776 CodeBench: vahvista CRITICAL-sääntö — ei ylimääräisiä kenttiä
qwen3:14b lisäsi created_at spekin ulkopuolelta ja käytti
server_default=datetime.now (virheellinen). Nostettu CRITICAL-tasolle.
2026-04-14 12:27:10 +03:00
75870c1100 CodeBench: korjaa aikaleima-sääntö — ei lisää ylimääräisiä kenttiä, func import
func.now() aiheutti NameError koska mallit eivät importanneet func:ia.
Uusi lähestymistapa: kielletään ylimääräiset kentät, ja JOS speksissä
on aikaleimat niin käytetään server_default + func import.
2026-04-14 12:18:36 +03:00
6e83fad31d CodeBench: 3 uutta promptisääntöä 5-kierroksen virheanalyysistä
1. Aikaleimakentät: server_default=func.now(), ei pakollisia Create-schemassa
2. Ei ylimääräisiä filter/search-endpointeja
3. Ei ylimääräisiä kenttiä spekin ulkopuolelta
2026-04-14 12:14:36 +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
9da5540ca2 Golden example: todo-rs (Axum + SQLx + SQLite) 2026-04-14 10:50:16 +03:00
838d5fbd73 SUPERAGENTS.md: mallisuositukset VRAM-luokittain benchmark-datan perusteella
4GB qwen3:4b, 8GB qwen3:8b (95p), 16GB qwen3:14b (100p),
24GB qwen3-coder:30b (97p, 123 tok/s), 48GB molemmat rinnakkain.
Thinking-moodi huonontaa tuloksia. Yleismallit voittivat kooderimallit.
2026-04-14 10:33:35 +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
b93ae2fd1b Golden examples: README.md — ohje uusien esimerkkien luomiseen 2026-04-14 09:44:02 +03:00
4c116428c3 kipina-codebench: itsenäinen benchmark-moduli git-submoduliksi
Refaktoroitu tests/-kansiosta omaksi moduliksi:
- prompts/ — kaikki promptit erillisinä .md-tiedostoina
- golden-examples/ — todo (taso 1) + blog (taso 2)
- benchmark.mjs lataa promptit ja esimerkit dynaamisesti
- Dockerfile.pytest, report-template.html, package.json, README.md
- results/ — tallennetut benchmark-tulokset
2026-04-14 09:42:20 +03:00
542230f091 Benchmark: promptisääntö — update-testidatan pitää sisältää kaikki pakolliset kentät
qwen3-coder:30b users 6/7: test_update_user lähetti luontipaiva=None
NOT NULL -kenttään. Uusi sääntö estää tämän.
2026-04-14 09:31:42 +03:00
c217271907 Benchmark-tulokset 2026-04-14: mistral-perhe ja top3-vertailu
top3: qwen3-coder:30b ★★★★★ 97p, codestral:22b ★★★★☆ 88p, qwen3.5:35b 40p
mistral: codestral:22b 80p, mistral-small3.1 30p, devstral:24b 44p
2026-04-14 09:30:40 +03:00
a08b5f3893 Benchmark: think:false — kytke ajattelu pois Ollama-kutsuissa
Thinking-mallit (qwen3.5) käyttivät kaikki tokenit ajatteluun
eikä content-kenttään jäänyt mitään. think:false pakottaa
suoran vastauksen ilman ajattelublokkia.
2026-04-14 08:48:03 +03:00
25b9ab0c37 Benchmark: käytä thinking-kenttää fallbackina jos content tyhjä
qwen3.5 palauttaa vastauksen thinking-kentässä kun content on tyhjä.
Lisätty debug-logi thinking-malleille.
2026-04-14 08:45:06 +03:00
62c9b6e17e Benchmark: nosta token-rajoja thinking-malleja varten
qwen3.5 palauttaa ajattelun erillisessä thinking-kentässä,
content jää tyhjäksi jos tokenit loppuvat kesken.
Vaatimukset 1024→2048, speksi 2048→4096.
2026-04-14 08:42:32 +03:00
ad097ca712 Benchmark: HTML-raportti laskee pisteet itse (toimii vanhoilla tuloksilla) 2026-04-14 08:29:47 +03:00
868d116961 Benchmark: HTML-webbiraportit tuloksista
Standalone HTML-tiedosto joka sisältää:
- Yhteenvetokortit (keskiarvo, paras malli, nopein, testit)
- Mallikohtainen taulukko palkkikaavioilla
- Yksittäiset tulokset sortattavassa taulussa
- Dark mode, ei ulkoisia dependencyjä
2026-04-14 08:27:01 +03:00
02e3701d77 Benchmark: output-tokenit yhteenvetotaulussa per skenaario ja yhteensä 2026-04-14 08:20:32 +03:00
b3abf4e89f Benchmark: mallikohtainen yhteenvetotaulu + kokonaisaika
Näyttää per malli: testit ja aika per skenaario, kokonaisläpäisy,
kokonaisaika, keskimääräinen tok/s ja keskipisteet.
2026-04-14 08:19:27 +03:00
9f2899b83d Benchmark: pisteytys (0-100) ja tähtiluokitus tuloksissa
Pisteytys: speksi 10p + koodi 10p + testit 60p + korjaukset 20p.
Tähdet: ★★★★★ (90+), ★★★★☆ (70+), ★★★☆☆ (50+), ★★☆☆☆ (25+), ★☆☆☆☆ (1+).
Näkyy per-ajo rivillä, tulostaulussa ja yhteenvedossa.
2026-04-14 08:10:27 +03:00
4a811e4171 Benchmark: näytä kontekstin koko (promptin token-arvio) tuloksissa 2026-04-14 08:05:59 +03:00
8efbf96295 Golden example: blog (taso 2, relaatiot Author → Post)
13 testiä, ForeignKey-relaatio, uniikki suomalainen testidata
(Aleksis Kivi, Tove Jansson jne). Testattu Docker-kontissa.
2026-04-14 08:03:21 +03:00
16f40a7536 Benchmark: pytest ajetaan Docker-kontissa (kipina-pytest)
Kontti hoitaa uv init + uv add + pytest eristetyssä ympäristössä.
Python 3.14, ei VIRTUAL_ENV-ongelmia, täysi toistettavuus.
Image: docker build -t kipina-pytest -f tests/Dockerfile.pytest tests/
2026-04-14 07:39:23 +03:00
42ee959781 Benchmark: uv init + uv add hoitaa projektiasetuksen
LLM generoi enää 4 tiedostoa (ei pyproject.toml).
Pipeline: uv init → uv add deps → kirjoita .py → pytest.
Poistaa Poetry-yhteensopivuusongelmat kokonaan.
2026-04-14 07:34:06 +03:00
0850a139f1 Benchmark: fallback korvaa Poetry-pyproject.toml PEP 621 -versiolla
Kaikki testatut mallit generoivat [tool.poetry] -muodon
vaikka kultainen esimerkki näyttää [project]-muodon.
uv sync ei ymmärrä Poetrya → pytest ei asennu → kaatuu.
Fallback korvaa rikkinäisen pyproject.toml kultaisella versiolla.
2026-04-14 07:30:55 +03:00
d6a544909c Benchmark: kultainen esimerkki + zensical-dokumentointiohjeet
- golden-examples/todo/: 6/6 PASS referenssitoteutus
  - SQLAlchemy 2.0 (DeclarativeBase, Mapped, mapped_column)
  - Pydantic v2 (ConfigDict)
  - PEP 621 pyproject.toml, Python >=3.14
  - Uniikki testidata per testi
- CODE_SYSTEM päivitetty: few-shot kultaisesta esimerkistä
- DOCUMENTATION.md: zensical-dokumentointiohjeet
2026-04-14 07:28:47 +03:00
8f154a578c SUPERAGENTS.md: benchmark-arkkitehtuuri kehityksen todentamiseen
Moniulotteinen pisteytys (0-100), portaittaiset vaikeustasot
(CRUD → relaatiot → liiketoimintalogiikka → kehittyneet patternit),
historiavertailu ja regressiotunnistus.
2026-04-14 07:16:37 +03:00
7221f5e920 SUPERAGENTS.md: itseoppivan koodausagentin arkkitehtuuri ja toteutussuunnitelma 2026-04-14 07:14:17 +03:00
34a56e408d Benchmark: stripThinking tukee myös qwen3/3.5 <think>-tageja 2026-04-14 06:58:18 +03:00
ecd4bc2ac3 Benchmark: nosta koodigeneroinnin token-raja 4096 → 8192
gemma4:e4b tuotti 323 riviä ja tokenit loppuivat kesken,
pyproject.toml ei mahtunut vastaukseen.
2026-04-14 06:38:40 +03:00
7dc2af59c3 Benchmark: stripThinking poistaa gemma4-ajattelutagit vastauksista 2026-04-14 06:35:31 +03:00
4aa09e1025 Benchmark: LLM generoi koodin templaattien sijaan
Vaihe 3 käyttää nyt oikeaa LLM-kutsua (CODE_SYSTEM-prompti)
koodin generointiin. Templaattifunktiot poistettu kokonaan.
Tämä mittaa mallin todellista koodingenerointikykyä.
2026-04-13 22:23:35 +03:00
20cea8f268 Model benchmark: testaa kaikki Ollama-mallit järjestelmällisesti
Ajaa täyden pipeline-kierroksen per malli × skenaario:
1. Client-prompti → vaatimukset
2. Manager/SPEC_SYSTEM → JSON-speksi
3. Template-generointi → koodi
4. Validointi + LLM-korjaussilmukka
5. uv sync + pytest

Tuottaa vertailutaulukon: speksin laatu, testien tulos, nopeus.
Tukee suoraa Ollamaa (--ollama) ja hub-reittiä (--hub).
2026-04-13 22:08:47 +03:00
38a18c555b Debug: reititys logittaa kaikki solmut ja niiden tilat 2026-04-13 21:53:40 +03:00
8138e41aa1 native-noden tuunausta 2026-04-13 21:29:05 +03:00
6ee5bdf960 Native node: lämmittelykutsu lataa mallin VRAM:iin heti käynnistyksessä 2026-04-13 21:23:56 +03:00
cf3bf54bf8 kipina-node: automaattinen versiopäivitys build-hashilla
Poistettu interaktiivinen "haluatko korvata?" -kysely. Tilalle:
- Bootstrap hakee .build-hash palvelimelta joka käynnistyksellä
- Vertaa paikalliseen kipina-node-bin.hash
- Lataa uuden automaattisesti jos hash eroaa
- Näyttää version käynnistyksen yhteydessä

Ei enää tilannetta jossa vanha binääri jää vahingossa ajoon.
2026-04-13 21:21:48 +03:00
56f21a96c9 TUI: VRAM-tila värikoodattu (vihreä=100% GPU, keltainen=osittainen, punainen=CPU) 2026-04-13 21:12:50 +03:00
763b93396c Reititys: busy-solmut suodatetaan pois — työ jakautuu solmuille
Aiemmin busy-lukko luettiin mutta sitä ei käytetty suodatukseen,
joten sama solmu valittiin aina uudelleen vaikka se oli varattu.
Nyt matching-lista suodattaa pois busy-solmut, joten toinen
vapaa solmu saa tehtävän. Heavy-fallback kevyempään solmuun
jos kaikki isot mallit ovat varattuja.
2026-04-13 21:09:24 +03:00
e09962940a Native node: VRAM-tila TUI:ssa (ollama ps)
- fetch_ps(): hakee /api/ps ja palauttaa ModelVramStatus
- ModelVramStatus: size vs size_vram → 100% GPU / osittainen / CPU
- TUI: uusi "VRAM: ✓ qwen3:32b (20.1 GB) — 100% GPU" -rivi
- Taustapäivitys 30s välein
- Tuore linux-x86_64 binääri
2026-04-13 21:06:27 +03:00