Hoppa till innehållet

Devportalen /portal/dev

Startsideportalens ekosystem för människa och agent

Dokumentationen / API

POST /api/flows/utvecklingsarende/*

APIStartsideportalen

Dokumentflödets serverändar: en som skriver hela utkastet ur uppladdat material, en som ändrar ett avsnitt i samtalet.

källa: apps/portal/src/app/api/flows/utvecklingsarende/uppdaterad: 2026-09-04

Ansvar

  • Äga prompten, profilen och beslutet att lämna ärendet för beslut.
  • Läsa uppladdat underlag på servern: docx, pptx och xlsx blir text, PDF skickas som dokumentblock, och båda vägarna går i samma anrop.
  • Garantera svarets form med structured outputs ur ett zod-schema byggt ur flödesdefinitionen.
  • Validera hela dokumentet mot arendeSchema innan något av det når prompten.

Filer

Tabell: Sökväg, Roll
SökvägRoll
app/api/flows/utvecklingsarende/utkast/route.tsPOST: underlag och filer in, ett komplett utkast ut.
app/api/flows/utvecklingsarende/tur/route.tsPOST: en samtalstur mot ett avsnitt. Dokumentet valideras först.
app/../ai/strukturerat.tskoraStrukturerat: det generiska modellanropet båda flödena delar.
app/../ai/underlag.tsUppladdat material till text eller dokumentblock. Filgränser och styrteckensanering.
app/../ai/ooxml.tsTextuttag ur docx, pptx och xlsx: zip-läsare och XML-plockning, utan beroenden.
app/../ai/ooxml.test.ts10 tester mot zip-filer som byggs i testet – både lagrade och deflaterade poster.
modules/utvecklingsarende/src/schema.tsarendeSchema och parsaArende: dokumentets form, kontrollerad på servern.

Kontrakt

  • Ordningen i handlern: identitet ur sessionen, takgräns, zod, underlag till text, modellanrop, sanering.
  • Att modellen sätter lamna räcker aldrig. farLamnas kräver alla kravs-avsnitt ifyllda, inget kärnavsnitt tomt och användarens bekräftelse.
  • Modellen säger lamna, servern svarar lamnad – samma namnbyte som create och created i felanmälan.
  • Ingen fältförankring. Varje avsnitt går att skriva i direkt, så klientens värden är inmatningen, inte en väg förbi den – ADR-013 gäller flöden där modellens extraktion är enda källan (ADR-015).

Beroenden och beslut

Kvarstår

  • Ingen OCR: en inskannad PDF utan textlager läses av modellen som bild, en skannad docx inte alls. Filer som inte gick att läsa räknas upp i olasta.
  • Zip64 stöds inte i ooxml.ts. Ett Office-dokument måste vara mycket stort för att skrivas så, och 10 MB-taket träffar först.
  • Takgränsen delas med felanmälan och lever i minnet – den nollställs vid omstart och delas inte mellan instanser.
  • Filerna lagras inte. Bilagelistan är metadata.
  • Ingen sessionsdata: att användaren bekräftat inlämning kommer från klienten. Servern kontrollerar allt annat själv, men just den flaggan väntar på M3.