diff --git a/network-poc/frontend/src/pages/index.astro b/network-poc/frontend/src/pages/index.astro index 53317ba..8ead7ed 100644 --- a/network-poc/frontend/src/pages/index.astro +++ b/network-poc/frontend/src/pages/index.astro @@ -574,7 +574,16 @@ import AgentBar from "../components/AgentBar.astro"; if (prev.length) ctx = 'Already written:\n' + prev.map(([n,c]) => `--- ${n} ---\n${c}`).join('\n\n') + '\n\n'; let extra = ''; if (f.name === 'pyproject.toml') extra = '\nUse format: [project]\\nname="proj"\\nversion="0.1.0"\\nrequires-python=">=3.11"\\ndependencies=["fastapi","uvicorn"]'; - const coderPrompt = (cdr.prompt ? cdr.prompt+'\n\n' : '') + `${ctx}Project: ${task}\nWrite ONLY "${f.name}"${f.desc ? ': '+f.desc : ''}.${extra}\nUse exact libraries from project description.`; + // Varmistetaan oikeat importit: listaa aiempien tiedostojen exportit + let importHint = ''; + const prevNames = Object.keys(files); + if (prevNames.length > 0) { + importHint = '\n\nIMPORTANT: Import from already written files. '; + importHint += prevNames.map(n => `from ${n.replace('.py','')} import ...`).join(', '); + importHint += '. Use correct imports for all dependencies.'; + importHint += '\nUse separate names for Pydantic schemas (e.g. UserCreate, UserResponse) vs SQLAlchemy models (e.g. User).'; + } + const coderPrompt = (cdr.prompt ? cdr.prompt+'\n\n' : '') + `${ctx}Project: ${task}\nWrite ONLY "${f.name}"${f.desc ? ': '+f.desc : ''}.${extra}${importHint}\nInclude all necessary imports. Write complete, working code.`; const code = await kpnRun(cdr.model, coderPrompt); if (!code) { termLog(` ✗ Keskeytyi (${f.name})`, '#f85149'); return; } files[f.name] = code; diff --git a/network-poc/native-node/src/main.rs b/network-poc/native-node/src/main.rs index 718b15b..aa3fd68 100644 --- a/network-poc/native-node/src/main.rs +++ b/network-poc/native-node/src/main.rs @@ -346,7 +346,7 @@ async fn main() { if let Some(ref engine) = llm { busy = true; - let max_tokens = task.get("max_tokens").and_then(|v| v.as_u64()).unwrap_or(512) as usize; + let max_tokens = task.get("max_tokens").and_then(|v| v.as_u64()).unwrap_or(1024) as usize; tracing::info!("Generoidaan (task_id: {}, max_tokens: {}): \"{}\"", task_id, max_tokens, &prompt[..prompt.len().min(100)]); let model_name = engine.model_name();