Dokumentationen / API
AI-adaptern
dok · ai-adapterid: ai-adapter
namn: AI-adaptern
sammanfattning: Kapslar in modellanropet så att turkontraktet garanteras av API:et och providern kan bytas utan kodändring.
uppdaterad: 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:
- 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:
- 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: module-sdk, anthropic
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.