Manuel d'Intégration des API GPT-4-1106-Preview et GPT-3.5-Turbo-1106

L'accès aux modèles de langage avancés tels que gpt-4-1106-preview, gpt-3.5-turbo-1106 et le générateur d'images DALL·E 3 s'effectue via une interface unifiée. Cette documentation détaille les procédures techniques pour l'implémentation des requêtes standards et des flux de données en temps réel (SSE).

Configuration de l'Accès API

Pour interagir avec le service, les requêtes doivent être envoyées aux points de terminaison suivants :

  • Endpoint principal : https://bx-api.online/v1/chat/completions
  • Méthode : POST
  • Format des données : application/json

Authentification

L'authentification nécessite l'inclusion d'un jeton (Token) dans l'en-tête de la requête HTTP. Ce jeton est disponible dans l'espace utilisateur de la plateforme de gestion des clés.

{
   "Content-Type": "application/json",
   "Authorization": "Bearer VOTRE_TOKEN_ICI"
}

Structure de la Requête

L'exemple suivant illustre une requête de base pour initier une discussion avec le modèle 1106. L'activation du mode stream permet d'obtenir une réponse progressive.

{
   "model": "gpt-3.5-turbo-1106",
   "messages": [
       {
           "role": "user",
           "content": "Explique-moi le concept de récursion."
       }
   ],
   "stream": true
}

Gestion du Flux de Données (Streaming vs Non-Streaming)

  • Mode Standard (Post classique) : Le serveur attend que la réponse complète soit générée par l'IA avant de la renvoyer. Cela peut induire une latence perceptible par l'utilisateur final.
  • Mode Flux (SSE - Server-Sent Events) : Les données sont transmises fragment par fragment dès leur génération. Cette méthode améliore l'expérience utilisateur grâce à une réponse quasi instantanée.

Exemple de Réponse Standard (JSON)

{
   "id": "chat-req-88229",
   "object": "chat.completion",
   "created": 1700000000,
   "model": "gpt-3.5-turbo-1106",
   "usage": {
       "prompt_tokens": 10,
       "completion_tokens": 20,
       "total_tokens": 30
   },
   "choices": [
       {
           "message": {
               "role": "assistant",
               "content": "La récursion est une méthode où une fonction s'appelle elle-même."
           },
           "finish_reason": "stop",
           "index": 0
       }
   ]
}

Structure des fragments en mode Streaming

data: {"id":"chat-delta-123","object":"chat.completion.chunk","choices":[{"delta":{"content":"La"},"index":0,"finish_reason":null}]}
data: {"id":"chat-delta-123","object":"chat.completion.chunk","choices":[{"delta":{"content":" ré"},"index":0,"finish_reason":null}]}
data: [DONE]

Gestion du Contexte et Historique

Pour maintenir une conversation cohérente, il est nécessaire de renvoyer l'historique des échanges au modèle. Une méthode consiste à concaténer les échanges précédents avec des préfixes distincts.

// Exemple de logique de construction d'historique en JavaScript
let historiqueConversations = [
   { q: "Quelle est la capitale de la France ?", r: "Paris." },
   { q: "Et celle de l'Italie ?", r: "Rome." }
];

let nouvelleQuestion = "Quelle est leur population ?";
let promptComplet = "";

// Reconstruction de la chaîne de contexte
historiqueConversations.forEach(item => {
   promptComplet += ` Q: ${item.q} A: ${item.r} <|endoftext|> `;
});

// Ajout de la question actuelle
promptComplet += `Q: ${nouvelleQuestion} A: `;

// Le champ 'content' de la requête contiendra alors 'promptComplet'

Cette approche permet à l'intelligence artificielle de comprendre les références aux messages précédents, garantissant ainsi une continuité logique dans les réponses fournies.

Étiquettes: GPT-4 GPT-3.5 API REST LLM SSE

Publié le 2 juin à 06h23