AI-integrasjoner
fremforge leverer tre AI-funksjoner som kjører på serveren: AI-gjennomgang av PR-er, forklaringer av avhengighetsoppgraderinger fra Renovate og en AI-gateway som kunden kan kalle på POST /_app/api/v1/orgs/<slug>/ai/complete. Alle tre bruker modellen «ta med din egen nøkkel» (BYOK): kunden velger en AI-leverandør, limer inn en API-nøkkel fra leverandøren i admingrensesnittet, og fremforge videreformidler kallene med revisjonslogg og forbrukssporing. Leverandøren er kundens egen databehandler under kundens egen avtale, ikke en underdatabehandler for fremverk (se trust-siden og databehandleravtalen, vedlegg B §B.8).
Hvor kallene går. Hvert kall til leverandøren din forlater fremforge bare gjennom en begrenset utgående proxy, og bare til leverandørens vert slik den ble kontrollert og låst da du lagret leverandøren: en https-adresse med et DNS-navn, aldri en IP-adresse eller en privat, intern eller link-local adresse. Omdirigeringer følges ikke. Et kall til en hvilken som helst annen vert avvises, slår av funksjonen og registreres i revisjonsloggen (ai.feature.auto_disabled). Proxyen ser bare vert og port for den krypterte forbindelsen, aldri prompten eller svaret.
Denne siden er referansen for den konfigurasjonen, skrevet for den som administrerer organisasjonen. For AI-verktøy på utviklersiden (Claude Code, Cursor, Continue og JetBrains AI som snakker direkte med fremforge med et PAT), se get-started/ai-in-your-ide/: en annen målgruppe, en annen flate og en annen historie om suverenitet.
Hva du konfigurerer
Alt nedenfor ligger på /<org>/_admin/ai-integrations.
Leverandører
En «provider» er én konto hos en AI-leverandør. Kunden kan legge til så mange som trengs (typisk én for produksjon og én for staging med en billigere modell). Hver rad inneholder:
- Etikett: et lesbart navn (for eksempel
anthropic-prod). Stabil identitet som brukes i admingrensesnittet og i tilfredshetsmålingene. - Leverandør + Adapter: leverandørens identitet (
anthropic/openai/azure-openai/mistral/vertex-gemini/custom) avgjør hvilken adapter som håndterer kallet (openai-compatible/anthropic/vertex-gemini). - Basis-URL + Standardmodell: leverandørens endepunkt og modellidentifikator.
- API key: kryptert ved lagring med AES-256-GCM med T Cloud Public DEW KMS som rot, med AAD-binding per rad. Klarteksten hentes fram bare i øyeblikket et kall til leverandøren gjøres.
- Inline test: når du lagrer, kaller fremforge leverandørens endepunkt som lister modeller (eller tilsvarende) med nøkkelen. Et rødt merke på raden betyr at nøkkelen ikke ble godkjent. Merket blir også rødt når leverandøren avviser nøkkelen (HTTP 401 eller 403) i et ekte kall, for eksempel etter at nøkkelen er tilbakekalt hos leverandøren, slik at raden aldri fortsetter å vise en gammel vellykket test. Når du lagrer leverandøren på nytt, testes nøkkelen igjen og merket nullstilles.
Hvem som driver hver leverandør
Hver leverandørflis og hver leverandør du har lagt til, viser hvem som driver den. API-et oppgir det samme som operator_jurisdiction på hvert leverandørobjekt.
| Leverandør | Drevet |
|---|---|
| Mistral | Drevet i EU |
| Scaleway Generative APIs | Drevet i EU |
| Azure OpenAI | Drevet fra USA, også når ressursen ligger i en EU-region |
| Anthropic | Drevet fra USA |
| OpenAI | Drevet fra USA |
| Google Vertex Gemini | Drevet fra USA |
| Custom | Avhenger av endepunktet: URL-en du skriver inn, avgjør |
En leverandør drevet fra USA drives av et amerikansk selskap, så amerikansk lov kan kreve tilgang til dataene den behandler, selv når dataene lagres i EU. Se databehandleravtalen §11.3 og vedlegg B §B.8.
Standarder for funksjoner
Fem funksjoner, én rad hver i tabellen ai_feature_defaults:
| Funksjon | Hva den gjør |
|---|---|
| pr-review | Legger inn en strukturert AI-gjennomgang som kommentar på hver nye PR. Commit-status går fra pending til success / warning. |
| renovate-explanation | Legger forklaringer av CVE-er og bakoverinkompatible endringer til PR-er med avhengighetsoppgraderinger fra Renovate. |
| workflow-callable | Ruter endepunktet POST /_app/api/v1/orgs/<slug>/ai/complete som kunden kan kalle. |
| autofix | Foreslår en pull request med en rettelse for et kuratert SAST-funn når en person klikker AI-rettelse (AI-rettelse). Krever også at AI-rettelser er slått på i SAST-innstillingene, der de er av som standard. |
| active-work-semantic | Semantisk matching for Active work: spør leverandøren din om to pågående arbeider i samme repository er det samme arbeidet. Sender titler, begynnelsen av beskrivelser, branchnavn og mapper på øverste nivå, aldri kode; et felt med legitimasjon i blir utelatt. Krever at Active work er på og en leverandør med låst vert; slås bare på i konsollen og er av til en eier av organisasjonen slår den på. |
Hver funksjon er av til du slår den på. Å legge til en leverandør slår ingenting på: en funksjon kjører bare der raden dens sier enabled=true (kryss av for Slått på og lagre, eller PUT /_app/api/v1/orgs/<slug>/ai/feature-defaults/<feature>). Konsollen viser hver funksjon som På eller Av. En rad kan også velge leverandør og overstyre modellen; uten valgt leverandør bruker en påslått funksjon den nyeste aktive leverandøren din.
Fram til 2026-10-19 brukte en funksjon uten lagret standard den nyeste leverandøren din, så når du la til en leverandør, ble alle funksjoner slått på, AI-gjennomgang av PR-er inkludert. Slik er det ikke lenger.
Overstyringer per repository
Kunden kan overstyre standarden for en funksjon i ett enkelt repository, for eksempel slå av AI-gjennomgang i et sensitivt repository, slå den på i bare ett repository, eller låse et regulert repository til en annen modell.
Om en funksjon kjører for et repository: raden i ai_repo_overrides for (tenant, repo_full_name, feature) hvis den finnes, ellers raden i ai_feature_defaults for (tenant, feature), ellers av. Ingenting nedenfor tas i betraktning for en funksjon som er av, heller ikke en leverandøroverstyring per kall.
Hvilken leverandør den bruker, i AiGateway.resolveProvider():
provider_override/model_overrideper kall (forespørselskroppen fra workflowen)- Leverandøren i repositoryets overstyring
- Leverandøren i funksjonens standard
- Reserveløsning: kundens nyeste aktive leverandør
Workflower som bruker AI
Hver dag går cron-jobben /jobs/sha-pin-scan gjennom hver workflow-YAML under .forgejo/workflows/, .gitea/workflows/ og .github/workflows/ og oppdager:
- En blokkannotering
# fremforge-ai:som angirprovider:ogmodel: - Ethvert direkte kall til
/_app/api/v1/orgs/<slug>/ai/complete
Begge signalene mater adminseksjonen «Workflows using AI». Bruk den til å anslå forbruk, revidere suverenitet og planlegge rotasjon av nøkler.
Format for annoteringen:
# fremforge-ai:
# provider: anthropic-prod
# model: claude-opus-4-7
name: ai-summary
on:
pull_request:
types: [opened]
jobs:
summarize:
runs-on: fremforge
steps:
- name: Call AI
run: |
curl -sf https://frem.sh/_app/api/v1/orgs/<org>/ai/complete \
-H "authorization: Bearer $FREMFORGE_TOKEN" \
-H "content-type: application/json" \
-d '{"messages":[{"role":"user","content":"…"}]}'Oversikt over forbruk
Månedlig sammenstilling av ai_usage_events: forespørsler, tokener inn og tokener ut per kunde. Anslått beløp i euro er foreløpig null; oppslag av priser per leverandør er planlagt. Leverandørens faktura er fasiten for kostnaden; fremforges oversikt er til prognoser og til å styre kostnaden per (leverandør, modell).
Tilbakemelding på gjennomganger
Tilfredshetspoeng per (leverandør, modell) fra 👍 / 👎-reaksjoner på kommentarer med AI-gjennomgang av PR-er. Hentes fra Forgejo hver dag i 14 dager etter at hver kommentar er lagt inn. Under 70 % vises i rødt; vurder å bytte modell eller skrive prompten om.
Myk feilhåndtering
AI-funksjoner blokkerer aldri en PR. Hver feilmodus fører til en myk feilhåndtering:
| Årsak | Status | Hva brukeren ser |
|---|---|---|
no_provider | 503 | (ingenting; funksjonen er av for denne kunden) |
invalid_key | 502 | Advarsel i commit-status: «AI provider key invalid — re-add under AI integrations» |
rate_limited | 429 | Advarsel i commit-status: «AI review queued — retrying on next push» |
over_cap | 402 | Advarsel i commit-status: «AI quota exhausted this month» |
vendor_error | 502 | Advarsel i commit-status: «AI review unavailable; retry on next push» |
timeout | 504 | Advarsel i commit-status: «AI review timed out» |
Kundens CI og merge-flyt påvirkes ikke av noen AI-feil; det eneste som mangler, er den AI-genererte kommentaren.
PAT-scope
POST /_app/api/v1/orgs/<slug>/ai/complete, som kunden kan kalle, krever et PAT med scopet ai:invoke. Opprett det på /-/settings/tokens, velg en levetid på høyst 90 dager, og send det som Authorization: Bearer ffp_…. Forbruket av tokener går til fakturaen fra den konfigurerte leverandøren, ikke til fremforges gebyrer.
Fase 2: ferdig AIFS-løsning
Et ferdig plannivå der fremverk har en konto hos AIFS-Germany og fakturerer tokener per bruker, står på veikartet (6–18 måneder, avhengig av at AIFS-katalogen får en kodetilpasset modell som er god nok til PR-gjennomgang). Når det skjer, er BYOK-veien fortsatt tilgjengelig; gatewayens resolveProvider() sjekker først et flagg for den ferdige løsningen.
Slå av AI for hele kunden
Hvis du av en eller annen grunn må slå av AI for hele kunden: sett hver rad i ai_feature_defaults til enabled=false (en funksjon uten rad er allerede av), og fjern alle overstyringer per repository som slår en funksjon på. For å slå av AI på hele plattformen for kunden din, kontakt support.
Relatert
- Trust-siden: dataflyten for AI-integrasjoner, artikkelen om suverenitet skrevet for kunder
- Databehandleravtalen, vedlegg B §B.8, det avtalemessige grunnlaget for at BYOK-leverandører ikke er underdatabehandlere
- Hurtigstarter for hvert IDE-verktøy, AI-verktøy på utviklersiden
- OpenAPI-spesifikasjonen,
POST /orgs/{org}/ai/completeer dokumentert undertags: [AI]