Dokumentationen / API
AI-adaptern
APIGemensamKapslar in modellanropet så att turkontraktet garanteras av API:et och providern kan bytas utan kodändring.
källa: packages/ai/src/strukturerat.ts, apps/portal/src/ai/anthropic.ts, apps/portal/src/ai/chatt.tsuppdaterad: 2026-08-28
Ansvar
- Anropa modellen med structured outputs byggda ur flödesdefinitionen.
- Validera svaret mot samma zod-schema och göra ett omtag om formatet brister.
- Hålla nyckeln på servern – server-only är importerad överst av det skälet.
- Falla tillbaka på regelmotorn när nyckel eller provider saknas.
Filer
| Sökväg | Roll |
|---|---|
| app/../ai/anthropic.ts | koraAnthropicTur och anthropicArKonfigurerad. Importerar server-only. |
| app/../ai/ratelimit.ts | inomTakgrans: 40 anrop per användare per 5 minuter, i minnet. |
| app/../ai/chatt.ts | strommaChatt: fri chatt med verktygsloop, webbsök och MCP-connector via beta-API:t, effort low, avbrytbar via signal. Lägger till en rad vid refusal eller max_tokens. |
API
| Namn | Signatur | Beskrivning |
|---|---|---|
| koraAnthropicTur | ({ flow, meddelanden, profil, faltHittills }) => Promise<TurnResult> | En tur enligt kontraktet. Kastar om modellen inte svarar enligt formatet efter ett omtag. |
| anthropicArKonfigurerad | () => boolean | Om ANTHROPIC_API_KEY finns. Avgör om providern kan användas. |
| inomTakgrans | (userId: string, nu?: number) => boolean | Takgränsen. Nollställs per fönster. |
| strommaChatt | ({ system, meddelanden, signal, webbsok?, egna?, mcp?, utfor? }) => AsyncGenerator<Handelse> | Svaret som händelser medan det skrivs: text, status och källor. Kör verktygsloopen (högst åtta varv, fortsätter efter pause_turn), ger webbsök, egna verktyg med strict och MCP-connectorn, och låter utfor validera och utföra egna verktyg. |
Kontrakt
| Miljövariabel | Värden | Betydelse |
|---|---|---|
| AI_PROVIDER | mock | anthropic | Standard mock. anthropic kräver dessutom att nyckeln finns. |
| AI_MODELL | modell-id | Standard claude-sonnet-5. |
| ANTHROPIC_API_KEY | hemlighet | Bara på servern, satt som Environment i Dokploy. |
Beroenden och beslut
Beslut: inga
Kvarstår
- Bara en provider. Eneo via WSO2 blir ett tredje värde när det är dags.
- Ingen loggning av turer, och ingen kostnadsmätning.