Gå til hovedinnhold

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ørDrevet
MistralDrevet i EU
Scaleway Generative APIsDrevet i EU
Azure OpenAIDrevet fra USA, også når ressursen ligger i en EU-region
AnthropicDrevet fra USA
OpenAIDrevet fra USA
Google Vertex GeminiDrevet fra USA
CustomAvhenger 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:

FunksjonHva den gjør
pr-reviewLegger inn en strukturert AI-gjennomgang som kommentar på hver nye PR. Commit-status går fra pending til success / warning.
renovate-explanationLegger forklaringer av CVE-er og bakoverinkompatible endringer til PR-er med avhengighetsoppgraderinger fra Renovate.
workflow-callableRuter endepunktet POST /_app/api/v1/orgs/<slug>/ai/complete som kunden kan kalle.
autofixForeslå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-semanticSemantisk 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():

  1. provider_override / model_override per kall (forespørselskroppen fra workflowen)
  2. Leverandøren i repositoryets overstyring
  3. Leverandøren i funksjonens standard
  4. 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 angir provider: og model:
  • 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:

ÅrsakStatusHva brukeren ser
no_provider503(ingenting; funksjonen er av for denne kunden)
invalid_key502Advarsel i commit-status: «AI provider key invalid — re-add under AI integrations»
rate_limited429Advarsel i commit-status: «AI review queued — retrying on next push»
over_cap402Advarsel i commit-status: «AI quota exhausted this month»
vendor_error502Advarsel i commit-status: «AI review unavailable; retry on next push»
timeout504Advarsel 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