Files
HandleAgent/KRAV.md
2026-01-21 19:23:31 +00:00

3.2 KiB

Callsign-generator

##1. Syfte Skapa en webbaserad tj??nst som genererar CB-handles/callsigns med hj??lp av en LLM. Anv??ndaren ska kunna ge grundparametrar och eventuellt f??rfina dessa via f??ljdfr??gor innan generering.

##2. M??lbild Tj??nsten ska:

  • generera ett realistiskt callsign baserat p?? anv??ndarens input
  • ge en kort motivering till varf??r callsignet passar
  • vara konsekvent, f??ruts??gbar och snabb att anv??nda
  • k??nnas ???dialogisk??? genom adaptiva f??ljdfr??gor

##3. Anv??ndarfl??de (MVP)

Steg 1 - Initial input via UI

Anv??ndaren besvarar initiala val s??som:

  • Stil (t.ex. Milit??r / Humor / Klassisk CB / Annan ??? fritext)
  • Ton (t.ex. Seri??s / Aggressiv / Lekfull)
  • Fritextbeskrivning (valfritt)

Steg 2 - Val

Efter initiala svar finns tv?? knappar:

[ Generera ]    [ Fler fr??gor ]

Steg 3A - Generera

  • Backend skickar sammanst??lld prompt till LLM
  • LLM returnerar JSON med:
    • callsign
    • motivering

Steg 3B - Fler fr??gor

  • Backend skickar prompt till LLM som genererar 1???3 relevanta f??ljdfr??gor
  • Anv??ndaren besvarar fr??gorna
  • Svaren lagras i state
  • Anv??ndaren kan d??refter v??lja "Generera" eller "Fler fr??gor" igen

4. Funktionella krav

4.1 Input

  • Systemet ska st??dja:
  • val via dropdown/radioknappar
  • fritext
  • ??terkommande f??ljdfr??gor

4.2 Output

Systemet ska returnera JSON i stabilt format:

{
  "callsign": "<string>",
  "reason": "<string>"
}

4.3 F??ljdfr??gor

F??ljdfr??gorna ska:

  • baseras p?? anv??ndarens tidigare svar
  • vara relevanta och korta
  • komma i 1???3 fr??gor ??t g??ngen
  • returneras som JSON:
{ "questions": [ "fr??ga 1", "fr??ga 2" ] }

4.4 State Management

Frontend ska lagra:

answers = {
  initial_params: {...},
  follow_up_answers: {...}
}

4.5 Spr??k

MVP riktas mot svenska men ska kunna ut??kas till andra spr??k.

5. Icke-funktionella krav

  • LLM-styrning: Stabilt via templade prompts och JSON-utdata
  • Prestanda: Svar inom < 2 sekunder f??r majoriteten av anrop (exkl. cold start)
  • Skalbarhet: Designad s?? backend kan distribueras vid behov
  • Robusthet: Systemet ska inte ???balla ur??? med l??nga poetiska svar
  • Utbyggbarhet: Framtida logotyp-/TTS-/fonetikmoduler m??jliga
  • Kostnadskontroll: Kan inf??ras via rate-limit + begr??nsad iteration

6. Systemarkitektur

Frontend

  • Visar formul??r + resultat
  • Renderar f??ljdfr??gor
  • H??ller state med anv??ndarsvar
  • Anropar backend via REST/HTTPS

Backend

  • API som hanterar tv?? endpointtyper:
POST /questions
Input: answers
Output: JSON med f??ljdfr??gor

POST /generate
Input: answers
Output: JSON med callsign + motivering
  • Backend ansvarar f??r:
    • promptkonstruktion
    • validering
    • OpenRouter-anrop
    • eventuella caches

LLM (via OpenRouter)

  • Backend anropar LLM
  • LLM returnerar JSON enligt definierad struktur

7. S??kerhets- och ??tkomstkrav

  • API-nyckel f??r OpenRouter f??r inte exponeras i frontend
  • Backend signerar samtliga anrop internt
  • M??jlighet till rate-limit per IP

8. Implementationsteknik (rekommenderad)

Frontend:

  • SvelteKit / React / Vue (valfritt)

Backend:

  • Python (FastAPI) eller Node (Fastify)

Host-varianter:

  • docker med docker-compose

LLM:

  • OpenRouter, valfri modell (t.ex. GPT-4, Claude etc)