Evidensmotor (ECM v1.0): ingen slutsats utan underlag
Regelmotorn kodar plattformens viktigaste princip: systemet får aldrig anta att en kontroll är utförd eller att dokumentation finns. Varje påstående måste kunna härledas till evidens i händelseloggen. - Nytt versionshanterat regelbibliotek (src/felsokning/ecm.ts, ECM v1.0): evidensnivåer E0–E6 härledda ur loggen, fullbordansregler och kvalitetsgrind — skilt från applikationslogiken - Fullbordansregel i guiden: en kontroll slutförs med evidens ELLER uttryckligt undantag "Underlag kan inte tas fram" med obligatorisk orsak — loggas och flaggas ⚠ i brief, överlämning och rapport - Kvalitetsgrind före slutrapport: utskriften spärrad tills objektidentifiering, metodikens kontroller, fotokrav och evidensnivå är gröna; varje röd rad visar exakt vad som saknas - Orkesterns grundprompt utökad: aldrig "OK/kontrollerad/inga fel" utan evidens — skriv "Evidens saknas" och begär rätt underlag (foto/video/ mätvärde/skärmfoto) - Visual-first instrumentavläsning: ny vision-uppgift läser multimetrar, diagnosskärmar m.m. — värden/enheter/felkoder med konfidens, teknikern bekräftar, originalbilden loggas alltid bredvid strukturerad data; kameran är integrationslagret, inga verktygsintegrationer krävs - Terminologi: "AI" ersatt med systemspråk i hela gränssnittet (Beslutsstöd, Systemet analyserar, Granskning av underlaget …) - Dokumentation: docs/moduler/evidensmotor.md; 41 vitest-tester Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012EQg3rJsrQ1ZNTvkzmQAtt
This commit is contained in:
@@ -31,6 +31,7 @@ Absoluta regler:
|
||||
- "hypotes": möjlig felorsak som KRÄVER verifiering — formulera alltid vad som skulle verifiera den.
|
||||
- "rekommendation": nästa verifierbara kontroll eller mätning.
|
||||
- Om underlaget är otillräckligt: säg det uttryckligen i en observation och rekommendera vad som behöver dokumenteras.
|
||||
- Skriv aldrig "OK", "kontrollerad", "inga fel" eller "åtgärdad" om evidens saknas i underlaget — skriv i stället "Evidens saknas" och begär rätt underlag: foto för det synliga, video med ljud för det som låter, video för det som rör sig, mätvärde för det som mäts, foto av skärmen när ett instrument eller en diagnosdator visar informationen.
|
||||
- Svara på svenska, konsekvent, kortfattat och metodiskt. "nastaSteg" är EN konkret, verifierbar åtgärd.`;
|
||||
|
||||
const SVARS_SCHEMA = {
|
||||
@@ -115,6 +116,40 @@ Regler:
|
||||
- Normalisera: registreringsnummer i versaler utan mellanslag, VIN med 17 tecken, datum som ÅÅÅÅ-MM-DD, mätarställning med enhet.
|
||||
- "felbeskrivning" är kundens beskrivna problem/arbetsbegäran om en sådan finns i dokumentet.`;
|
||||
|
||||
|
||||
// Visual-first: instrument och diagnosskärmar fotograferas i stället för
|
||||
// att integreras — kameran är det universella gränssnittet.
|
||||
const INSTRUMENT_SCHEMA = {
|
||||
type: "object",
|
||||
properties: {
|
||||
instrumenttyp: { type: "string" },
|
||||
varden: {
|
||||
type: "array",
|
||||
items: {
|
||||
type: "object",
|
||||
properties: {
|
||||
beskrivning: { type: "string" },
|
||||
varde: { type: "string" },
|
||||
enhet: { type: "string" },
|
||||
konfidens: { type: "number", minimum: 0, maximum: 1 },
|
||||
},
|
||||
required: ["beskrivning", "varde", "konfidens"],
|
||||
additionalProperties: false,
|
||||
},
|
||||
},
|
||||
},
|
||||
required: ["instrumenttyp", "varden"],
|
||||
additionalProperties: false,
|
||||
};
|
||||
|
||||
const INSTRUMENT_REGLER = `Du läser av ett foto av ett instrument eller en skärm i en fordonsverkstad: multimeter, diagnosdator, oscilloskop, batteritestare, mätarkluster, manometer, utskrift eller etikett.
|
||||
|
||||
Regler:
|
||||
- Identifiera instrumenttypen och extrahera ENDAST värden som faktiskt går att läsa i bilden. Hitta aldrig på värden.
|
||||
- Varje värde får en beskrivning (t.ex. "Batterispänning", "Felkod P0301 – misständning cylinder 1"), värdet som text och enhet när den syns (V, A, Ω, bar, °C, rpm …).
|
||||
- Felkoder returneras som egna värden med kod och klartext om skärmen visar den.
|
||||
- "konfidens" är din läs-säkerhet 0–1; sänk vid oskarp bild, reflexer eller delvis skymda siffror.`;
|
||||
|
||||
const MAX_BILD_LANGD = 3_000_000;
|
||||
|
||||
interface UppgiftKonfig {
|
||||
@@ -175,6 +210,15 @@ Gissa inte: välj "generisk" om beskrivningen inte tydligt hör till en specifik
|
||||
},
|
||||
// Ärendestart: teknikern fotograferar arbetsordern; vi läser dokumentet
|
||||
// och returnerar strukturerade fält med konfidens per värde.
|
||||
// Visual-first: foto av instrument/diagnosskärm → strukturerade värden.
|
||||
instrumentavlasning: {
|
||||
modell: "claude-sonnet-5",
|
||||
effort: "low",
|
||||
maxTokens: 1024,
|
||||
system: INSTRUMENT_REGLER,
|
||||
schema: INSTRUMENT_SCHEMA,
|
||||
bild: true,
|
||||
},
|
||||
dokumenttolkning: {
|
||||
modell: "claude-sonnet-5",
|
||||
effort: "low",
|
||||
|
||||
Reference in New Issue
Block a user