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
This commit is contained in:
@@ -48,6 +48,7 @@ function loadPrompt(name) {
|
|||||||
}
|
}
|
||||||
const CLIENT_SYSTEM = loadPrompt('client');
|
const CLIENT_SYSTEM = loadPrompt('client');
|
||||||
const SPEC_SYSTEM = loadPrompt('spec');
|
const SPEC_SYSTEM = loadPrompt('spec');
|
||||||
|
const SPEC_SIMPLE_SYSTEM = existsSync(join(__dirname, 'prompts', 'spec-simple.md')) ? loadPrompt('spec-simple') : SPEC_SYSTEM;
|
||||||
const FIX_SYSTEM = loadPrompt('fix');
|
const FIX_SYSTEM = loadPrompt('fix');
|
||||||
|
|
||||||
// === Mallikohtaiset profiilit ===
|
// === Mallikohtaiset profiilit ===
|
||||||
@@ -337,9 +338,11 @@ async function runPipeline(model, scenario, round = 1) {
|
|||||||
result.reqOk = true;
|
result.reqOk = true;
|
||||||
writeFileSync(`${dir}/_requirements.txt`, req.text);
|
writeFileSync(`${dir}/_requirements.txt`, req.text);
|
||||||
|
|
||||||
// 2. JSON-speksi
|
// 2. JSON-speksi (small-malleille yksinkertaistettu skeema)
|
||||||
console.log(` [2/5] JSON-speksi...`);
|
const specProfile = PROFILES.models[specModel]?.profile || PROFILES.default_profile;
|
||||||
const specResp = await ollamaChat(specModel, `${req.text}\n\nOutput a JSON spec for this project.`, SPEC_SYSTEM, 4096);
|
const specPrompt = specProfile === 'small' ? SPEC_SIMPLE_SYSTEM : SPEC_SYSTEM;
|
||||||
|
console.log(` [2/5] JSON-speksi${specProfile === 'small' ? ' (simple)' : ''}...`);
|
||||||
|
const specResp = await ollamaChat(specModel, `${req.text}\n\nOutput a JSON spec for this project.`, specPrompt, 4096);
|
||||||
timings.push(specResp);
|
timings.push(specResp);
|
||||||
const spec = extractJson(specResp.text);
|
const spec = extractJson(specResp.text);
|
||||||
if (!spec || !spec.entities || spec.entities.length === 0) { result.error = 'JSON-speksi epäonnistui'; writeFileSync(`${dir}/_spec_raw.txt`, specResp.text); return result; }
|
if (!spec || !spec.entities || spec.entities.length === 0) { result.error = 'JSON-speksi epäonnistui'; writeFileSync(`${dir}/_spec_raw.txt`, specResp.text); return result; }
|
||||||
|
|||||||
17
kipina-codebench/prompts/spec-simple.md
Normal file
17
kipina-codebench/prompts/spec-simple.md
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
You design database schemas. Output ONLY valid JSON, no explanations.
|
||||||
|
|
||||||
|
SCHEMA:
|
||||||
|
{"project_name":"name","entities":[{"name":"Entity","table_name":"entities","fields":[{"name":"field","type":"string","nullable":false,"default":null}]}],"relationships":[{"from":"Child","field":"parent_id","to":"Parent"}]}
|
||||||
|
|
||||||
|
FIELD TYPES: string, text, int, float, bool, date, datetime
|
||||||
|
- Status fields: type "string", default "draft" or "pending"
|
||||||
|
- id is automatic — do NOT include it
|
||||||
|
- FK fields: type "int", name ends with _id
|
||||||
|
|
||||||
|
RULES:
|
||||||
|
- Parent entities BEFORE children in array
|
||||||
|
- Every _id field needs a relationship entry
|
||||||
|
- Max 7 fields, max 3 entities
|
||||||
|
- English names only
|
||||||
|
|
||||||
|
EXAMPLE: Blog → Author: name(string), email(string) / Post: title(string), content(text), author_id(int)→Author, status(string,default="draft")
|
||||||
Reference in New Issue
Block a user