gatewaymw/gatewaymw.go (package gatewaymw)
Source : sdks/go/gatewaymw/gatewaymw.go. Retour à l'index de la référence du SDK Go.
Cette page est générée par tools/docs/gen_sdk_reference.py depuis les sources du SDK et les dossiers de textes OpenAPI. Ne la modifiez pas à la main : changez la source et régénérez.
Classe Info
Info est l'état propre à la requête, rangé dans le contexte de la requête.
Champs :
| Nom | Type | Requis | Description |
|---|---|---|---|
RequestID | string | oui | X-Request-Id entrant, ou un identifiant généré ; aussi placé sur la réponse. |
Traceparent | string | oui | traceparent W3C de la requête : l'identifiant de trace entrant avec un nouvel identifiant de span, ou une nouvelle trace. |
Lang | string | oui | Langue des messages d'erreur, fr quand Accept-Language commence par fr, en sinon. |
Headers | http.Header | oui | En-têtes entrants de ForwardedHeaders (identifiants, tenancy, langue) recopiés sur chaque appel au Control Plane. |
Decision | *eai.PolicyDecision | non | Décision de politique de la requête, la partie décision du Policy Contract v1 ; nil quand Config.Action est nil. |
Reservation | *eai.Reservation | non | FinOps. Gestion des coûts de l'usage de l'IA : grilles tarifaires, événements d'usage, estimations, quotas et réservations, répartition du coût des GPU, rapprochement de la facturation et alertes. |
Info.CallOptions
CallOptions() []eai.CallOption
CallOptions renvoie les options qui font un appel du SDK au nom de l'appelant (identifiants, tenancy, trace, identifiant de requête).
Cet élément ne prend aucun paramètre.
Retour : []eai.CallOption. Des CallOption : chacune personnalise un appel.
Modèle Config
Config configure le middleware.
Champs :
| Nom | Type | Requis | Description |
|---|---|---|---|
Client | *eai.Client | non | Client sert aux appels de politique et de quota. Obligatoire sauf si Action et Reserve sont tous deux nil. |
Action | func(r *http.Request) string | oui | Action renvoie l'action de politique d'une requête (par exemple "model.invoke") ; nil désactive la vérification de politique. |
Resource | func(r *http.Request) map[string]any | oui | Resource renvoie la ressource de politique ({"type": "model", "id": "..."}) ; par défaut, le chemin de la requête. |
Context | func(r *http.Request) map[string]any | oui | Context renvoie le contexte de politique (data_classification, region, purpose...). |
Reserve | func(r *http.Request) map[string]any | oui | Reserve renvoie la demande de réservation de quota, ou nil pour ne pas réserver pour cette requête. |
AllowAnonymous | bool | oui | AllowAnonymous désactive la vérification des identifiants (points d'accès de santé). |
Fonctions
FromContext
FromContext(ctx context.Context) *Info
FromContext renvoie l'Info de la requête courante, ou nil.
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
ctx | context.Context | oui | Contexte de l'appel : annulation et échéance. |
Retour : *Info. Une Info : l'état propre à la requête, rangé dans le contexte de la requête.
New
New(cfg Config) func(http.Handler) http.Handler
New renvoie le middleware.
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
cfg | Config | oui | Réglages du middleware : client, action de politique, ressource, contexte et réservation de quota. |
Retour : func(http.Handler) http.Handler. Un middleware net/http qui enveloppe le http.Handler suivant avec les vérifications d'identifiants, de politique et de quota.
WriteError
WriteError(w http.ResponseWriter, status int, code string, message string, details map[string]any, requestID string)
WriteError écrit l'enveloppe d'erreur de la plateforme.
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
w | http.ResponseWriter | oui | Writer de la réponse dans lequel l'enveloppe JSON est écrite. | |
status | int | oui | Statut HTTP de la réponse. | |
code | string | oui | Code machine de l'erreur, par exemple policy_denied ; il choisit les messages en et fr de message_i18n. | |
message | string | oui | Message de l'enveloppe, repris dans message_i18n quand le catalogue n'a pas de texte pour le code. | |
details | map[string]any | oui | L'objet details de l'enveloppe ; nil écrit un objet vide. | |
requestID | string | oui | Identifiant de requête écrit dans request_id. |