Ordre 20260912T193441Z-7358817909. Steg 1 var ikke transformen, men å rette
roadmapens R13-gate og få den ratifisert. Gaten `grep -rl "Cosmo"
skills/*/references -> 0` var usann på to uavhengige måter:
1. Ordren fanget den første: 451 av forekomstene er Azure Cosmos DB, ekte
produktinnhold. Diskriminatoren er ikke bokstaven «s» — `Cosmos <norsk
substantiv>` er genitiv av personaen (`### Cosmos tonalitet`), mens
`Cosmos DB`/`CosmosClient`/`cosmos_ru` er produkt.
2. Denne økten fant den andre: 132 persona-forekomster ligger i prosa,
tabeller, dialog-replikker og proveniens-linjer. Heading-nøytralisering
kan ikke nå dem, så «0 persona» er uoppnåelig også under den ratifiserte
formen. Operatøren ratifiserte alternativ A: gaten speiler formen, og de
132 bokføres til R13b/R14.
Tre korreksjoner av premisser som sto i ordren og STATE:
«ca 320 produkt» -> 451 (case-sensitivt nett manglet 327 lowercase
TOC-ankre + 99 identifikatorer; sann nevner 1 638)
«169 headinger» -> 401. 169 var `^## For Cosmo`-prefikset (168) og var
internt inkonsistent med sin egen topp-variant (204)
«417 matcher ingen
populasjon» -> 417 er cosmo-headinger utenfor kodefences; briefens
nevner var reell hele tiden
Fence-bevissthet er målt skadelig, ikke nødvendig: begge toggle-regler er
gale på dette korpuset (naiv toggle skjuler en ekte heading i
chain-of-thought-prompting.md, CommonMark-regelen ubalanserer
service-level-documentation-dr.md). Fence-agnostisk deteksjon finner 401
heading-linjer i nøyaktig de samme 40 variantene som fence-bevisst finner
400 i — ingen kodeblokk-linje er byte-identisk til en persona-heading. Derfor
nøkles transformen på 40 enumererte heading-tekster og ignorerer fences. En
ukjent variant kaster; en slug-kollisjon kaster. Ingenting auto-fikses.
TOC-en regenereres ikke, den rettes kirurgisk: alle 327 persona-lenker hadde
lenketekst lik én av de 40 heading-tekstene og anker lik slugify av den
(327/327, 0 avvik), så heading og TOC-entry skrives i samme operasjon og
ingen mellomtilstand etterlater en død lenke.
Ratifisert målform: `For Cosmo`, `For Cosmo Skyberg` og `For arkitekten
(Cosmo)` konvergerer på `For arkitekten`. To filer kolliderte og er adjudisert
ved å lese dem, ikke ved regel.
Verifisering (alle 7 kriterier fra ordren):
G1 persona på heading-linjer 401 -> 0
G2 døde fragmentlenker 1 -> 1 (pre-eksisterende, unntatt)
G3 produkt-forekomster 451 -> 451; `Cosmos DB|Azure Cosmos` 308 = 308
de 3 kun-produkt-filene byte-identiske
nettet validert begge veier injisert persona feller G1; genitiv feller G1;
produkt-heading og de 3 filene passerer
hele diffen 802 heading-linjer + 654 TOC-linjer, ANNET = 0
linjeantall 728 lagt til = 728 slettet
suite 1120/1120 (1097 + 23 nye)
validate-plugin 250 PASS / 0 FAIL
stikkprøve 10 filer, alle 5 skills, inkl. de 3 mest
produkt-tunge (26/20/19) — kun heading+TOC
Utenfor scope, urørt: de 4 SKILL.md, de 23 commands, CLAUDE.md, README.md,
NOTICE.md, docs/ (alt R14).
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
14 KiB
Developer Portal for AI API Discovery & Onboarding
Last updated: 2026-06-24 Status: GA Category: API Management & AI Gateway Type: reference Source: https://learn.microsoft.com/azure/api-management/developer-portal-overview Verified: 2026-07-24 Verified by: judge-v3.1
Innhold
- Introduksjon
- Portaltilpasning
- API-dokumentasjon
- Interaktiv testkonsoll
- API-nokkelhondtering
- Selvbetjeningsarbeidsflyt for brukere
- Azure API Center: Komplementaer katalog
- Referanser
- For arkitekten
Introduksjon
Azure API Managements Developer Portal er en automatisk generert, fullt tilpassbar nettside for API-dokumentasjon og selvbetjening. Nar organisasjoner eksponerer AI-modeller som API-er gjennom APIM, blir Developer Portal den sentrale plattformen der utviklere oppdager tilgjengelige AI-kapabiliteter, tester modeller interaktivt, administrerer API-nokler og overvaker eget forbruk. I tillegg tilbyr Azure API Center et komplementaert API-katalogverktoy.
For norsk offentlig sektor er en veladministrert Developer Portal viktig for a fremme gjenbruk av AI-tjenester pa tvers av etater og avdelinger. I samsvar med Digitaliseringsdirektoratets prinsipper om deling av data og tjenester, kan en offentlig tilgjengelig (eller intern) Developer Portal gi oversikt over tilgjengelige AI-API-er, redusere duplikering av arbeid og senke terskelen for a ta i bruk AI i nye prosjekter.
Developer Portal tilbyr ut av boksen: API-dokumentasjon med OpenAPI-spesifikasjoner, interaktiv testkonsoll, brukerregistrering og API-nokkelhondtering, samt bruksanalyse. Portalen kan tilpasses med egne stiler, innhold og branding -- og kan ogsa self-hostes for full kontroll.
Portaltilpasning
Tilpasningsomrader
| Omrade | Beskrivelse | Metode |
|---|---|---|
| Visuelt design | Farger, fonter, logo | Visual editor i Azure Portal |
| Sidelayout | Menyer, sideoppsett, widgets | Drag-and-drop editor |
| Egendefinert innhold | Sider, guider, FAQ | Markdown/HTML editor |
| Widgets | API-liste, testconsole, profil | Konfigurerbare widgets |
| Custom HTML/CSS | Full kontroll over utseende | Kode-editor |
| Self-hosting | Full kontroll, egen infrastruktur | Open-source kodebase |
Tilpasse Developer Portal for AI-API-er
Opprett dedikerte sider for AI-kapabiliteter:
Eksempel: AI API Landing Page
<!-- Custom page in Developer Portal -->
<div class="ai-api-overview">
<h1>AI API Gateway</h1>
<p>Velkommen til var AI API Gateway. Her finner du dokumentasjon,
testverktoy og tilgang til AI-modeller.</p>
<div class="ai-models-grid">
<div class="model-card">
<h3>GPT-4o Chat Completions</h3>
<p>Generell chatbot og tekstgenerering</p>
<ul>
<li>Maks tokens: 128K kontekst</li>
<li>Responstid: ~500ms</li>
<li>Pris: Se lisensoversikt</li>
</ul>
<a href="/apis/chat-completions">Dokumentasjon</a>
</div>
<div class="model-card">
<h3>GPT-4o Mini</h3>
<p>Raskere og rimeligere for enklere oppgaver</p>
<ul>
<li>Maks tokens: 128K kontekst</li>
<li>Responstid: ~200ms</li>
<li>Pris: 90% rimeligere enn GPT-4o</li>
</ul>
<a href="/apis/chat-completions-mini">Dokumentasjon</a>
</div>
<div class="model-card">
<h3>Embeddings API</h3>
<p>Tekstembeddings for sok og analyse</p>
<ul>
<li>Modell: text-embedding-ada-002</li>
<li>Dimensjoner: 1536</li>
</ul>
<a href="/apis/embeddings">Dokumentasjon</a>
</div>
</div>
</div>
Branding for norsk offentlig sektor
/* Custom CSS for public sector AI portal */
:root {
--portal-primary: #003366; /* Norwegian government blue */
--portal-secondary: #C8102E; /* Norwegian flag red */
--portal-background: #F5F5F5;
--portal-text: #333333;
--portal-font: 'Source Sans Pro', sans-serif;
}
.navbar {
background-color: var(--portal-primary);
}
.api-card {
border-left: 4px solid var(--portal-primary);
padding: 16px;
margin-bottom: 12px;
background: white;
border-radius: 4px;
box-shadow: 0 1px 3px rgba(0,0,0,0.12);
}
API-dokumentasjon
Best practices for AI API-dokumentasjon
| Seksjon | Innhold |
|---|---|
| Oversikt | Hva modellen kan, bruksomrader, begrensninger |
| Autentisering | API-nokkel, OAuth 2.0, Managed Identity |
| Endepunkter | URL-er, HTTP-metoder, parametere |
| Request/Response | JSON-schemaer med eksempler |
| Feilkoder | Standardiserte feilmeldinger |
| Rate limits | Tokens per minutt, foresporsler per minutt |
| Bruksretningslinjer | Ansvarlig bruk, innholdspolicy |
| Kodeeksempler | Python, C#, JavaScript, curl |
Legge til kodeeksempler i portalen
OpenAPI-spesifikasjonen kan berikes med eksempler:
paths:
/chat/completions:
post:
operationId: createChatCompletion
summary: Create a chat completion
description: |
Genererer et chat completion-svar basert pa meldingshistorikk.
Stotter bade system-, bruker- og assistentmeldinger.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ChatCompletionRequest'
examples:
simple:
summary: Enkel chatmelding
value:
model: gpt-4o
messages:
- role: user
content: "Hva er Microsoft Foundry?"
max_tokens: 500
withSystem:
summary: Med systemprompt
value:
model: gpt-4o
messages:
- role: system
content: "Du er en norsk AI-assistent for offentlig sektor."
- role: user
content: "Forklar Schrems II for meg."
max_tokens: 1000
temperature: 0.3
Interaktiv testkonsoll
Konfigurere testkonsoll for AI-API-er
Developer Portal inkluderer en interaktiv testkonsoll der utviklere kan:
- Velge API-operasjon (f.eks. Chat Completions)
- Fylle inn parametere og request body
- Sende foresporselen direkte
- Se response inkludert token-forbruk
Tilpasse testkonsollen
For AI-API-er er det nyttig a pre-populere request body:
{
"model": "gpt-4o",
"messages": [
{
"role": "system",
"content": "Du er en hjelpsom assistent."
},
{
"role": "user",
"content": "Skriv din melding her..."
}
],
"max_tokens": 500,
"temperature": 0.7
}
Merk: Testkonsollen bruker automatisk Ocp-Apim-Subscription-Key fra brukerens all-access-abonnement. For AI-API-er bor man begrense token-forbruk i test via rate limit policy.
Rate limiting for testkonsoll
<policies>
<inbound>
<base />
<!-- Lower limits for test console requests -->
<choose>
<when condition="@(context.Request.Headers.GetValueOrDefault("Referer", "").Contains("developer"))">
<rate-limit calls="10" renewal-period="60" />
<set-header name="x-max-tokens-override" exists-action="override">
<value>200</value>
</set-header>
</when>
</choose>
</inbound>
</policies>
API-nokkelhondtering
Abonnementsmodell for AI-API-er
APIM bruker Products og Subscriptions for tilgangskontroll:
| Produkt | Tilgang | Rate Limit | Bruksomrade |
|---|---|---|---|
| AI-Sandbox | Fri registrering | 100 tokens/min | Testing og utforskning |
| AI-Standard | Godkjent | 10 000 tokens/min | Normal produksjon |
| AI-Premium | Manuell godkjenning | 100 000 tokens/min | Hoyvolum-applikasjoner |
| AI-Internal | Bare admin | Ubegrenset | Interne systemer |
Bicep: Produktkonfigurasjon
resource sandboxProduct 'Microsoft.ApiManagement/service/products@2023-09-01-preview' = {
parent: apiManagement
name: 'ai-sandbox'
properties: {
displayName: 'AI Sandbox'
description: 'Fri tilgang til AI-API-er for testing. Begrenset til 100 tokens per minutt.'
subscriptionRequired: true
approvalRequired: false
state: 'published'
terms: 'Bruk kun til testing. Ikke send sensitiv informasjon.'
}
}
resource standardProduct 'Microsoft.ApiManagement/service/products@2023-09-01-preview' = {
parent: apiManagement
name: 'ai-standard'
properties: {
displayName: 'AI Standard'
description: 'Standard tilgang for godkjente applikasjoner. 10K tokens per minutt.'
subscriptionRequired: true
approvalRequired: true
state: 'published'
terms: 'Krever godkjenning. Folg retningslinjer for ansvarlig AI-bruk.'
}
}
resource premiumProduct 'Microsoft.ApiManagement/service/products@2023-09-01-preview' = {
parent: apiManagement
name: 'ai-premium'
properties: {
displayName: 'AI Premium'
description: 'Hoyvolum-tilgang for produksjonssystemer. 100K tokens per minutt.'
subscriptionRequired: true
approvalRequired: true
state: 'published'
}
}
Brukerregistrering og selvbetjening
| Funksjon | Konfigurasjon |
|---|---|
| Registrering | Azure AD / Microsoft Entra ID SSO |
| Abonnementsgodkjenning | Manuell for Standard og Premium |
| Automatisk nokkelrotasjon | Stottes via portal |
| Bruksdashboard | Innebygd per abonnement |
| Notifikasjoner | E-post ved godkjenning/avvisning |
Selvbetjeningsarbeidsflyt for brukere
Onboarding-prosess
1. Bruker besaker Developer Portal
2. Logger inn med Microsoft Entra ID (SSO)
3. Blar gjennom tilgjengelige AI-API-er
4. Velger produkt (Sandbox / Standard / Premium)
5. Oppretter abonnement
- Sandbox: Umiddelbar tilgang
- Standard/Premium: Venter pa godkjenning
6. Mottar API-nokkel (primaer + sekundaer)
7. Tester i interaktiv konsoll
8. Integrerer i applikasjon
Konfigurasjon av Developer Portal-tilgang
<!-- Restrict developer portal access -->
<policies>
<inbound>
<base />
<!-- Require Azure AD authentication -->
<validate-azure-ad-token tenant-id="{{TenantId}}">
<client-application-ids>
<application-id>{{DevPortalAppId}}</application-id>
</client-application-ids>
</validate-azure-ad-token>
</inbound>
</policies>
Deaktivere offentlig registrering
For interne AI-portaler, deaktiver fri registrering og bruk Azure AD:
- Ga til Developer Portal > Administrative interface
- Under Identities, fjern "Username and Password"
- Legg til "Azure Active Directory" som eneste identity provider
- Under Settings, deaktiver "Enable sign-up"
Azure API Center: Komplementaer katalog
For storre organisasjoner kan Azure API Center brukes sammen med APIM Developer Portal:
| Egenskap | Developer Portal | API Center |
|---|---|---|
| Hovedformal | Selvbetjening og testing | Organisatorisk katalog |
| API-registrering | Fra APIM | Fra flere kilder |
| MCP-server-registrering | Nei | Ja |
| Governance-metadata | Begrenset | Omfattende |
| Synkronisering | -- | Automatisk fra APIM |
| Copilot Studio-connector | Nei | Ja |
Referanser
- Azure API Management Developer Portal overview -- oversikt
- Tutorial: Access and customize the developer portal -- tilpasningsveiledning
- AI gateway - Developer experience -- AI-spesifikk developer experience
- What is Azure API Management? -- APIM-oversikt
- Register and discover MCP servers in API Center -- MCP i API Center
- Synchronize APIs between API Management and API Center -- synkronisering
- API Management subscriptions -- abonnementshondtering
- Self-host the developer portal -- self-hosting
For arkitekten
- Bruk denne referansen nar kunden onsker a gjore AI-API-er tilgjengelige for interne eller eksterne utviklere med selvbetjening, dokumentasjon og tilgangskontroll.
- For norsk offentlig sektor, anbefal alltid Microsoft Entra ID (Azure AD) som identity provider for Developer Portal -- unnga brukernavn/passord-registrering for bedre sikkerhet og sentral brukerstyring.
- Kombiner APIM Developer Portal med Azure API Center for storre organisasjoner som har API-er fra flere kilder (ikke bare APIM) -- API Center gir en organisatorisk oversikt.
- Anbefal en produkt-hierarki med Sandbox (fri tilgang, lav limit), Standard (godkjent, normal limit) og Premium (manuell godkjenning, hoy limit) for a gi kontrollert tilgang uten a bremse innovasjon.
- Developer Portal er tilgjengelig i alle tiers unntatt Consumption -- det vil si Developer, Basic, Standard og Premium (classic) samt alle v2-tiers (Basic v2, Standard v2, Premium v2).