Back to Gitlabhq

API de complétion GitLab Duo Chat

doc-locale/fr-fr/api/chat.md

19.3.04.5 KB
Original Source

Cette API REST est utilisée pour générer des réponses pour GitLab Duo Chat :

  • Sur GitLab.com, cette API REST est réservée à un usage interne uniquement.
  • Sur GitLab Self-Managed, vous pouvez activer cette API REST avec un feature flag nommé access_rest_chat.

Prérequis :

Générer une réponse Chat {#generate-a-chat-response}

Génère une réponse à une question GitLab Duo Chat.

{{< history >}}

{{< /history >}}

[!flag] La disponibilité de cette fonctionnalité est contrôlée par un feature flag. Pour plus d'informations, consultez l'historique.

plaintext
POST /chat/completions

[!note] Les requêtes envoyées à ce point de terminaison sont transmises par proxy à la passerelle IA.

Attributs pris en charge :

AttributTypeObligatoireDescription
contentstringOuiQuestion envoyée au Chat.
resource_typestringNonType de ressource envoyée avec la question Chat.
resource_idstring, integerNonID de la ressource. Peut être un ID de ressource (entier) ou un hash de commit (chaîne).
referer_urlstringNonURL du référent.
client_subscription_idstringNonID d'abonnement client.
with_clean_historybooleanNonIndique si l'historique doit être réinitialisé avant et après la requête.
project_idintegerNonID du projet. Obligatoire si resource_type est un commit.
additional_contextarrayNonUn tableau d'éléments de contexte supplémentaires pour cette requête de chat. Voir Attributs de contexte pour la liste des paramètres acceptés par cet attribut.

Attributs de contexte {#context-attributes}

L'attribut context accepte une liste d'éléments avec les attributs suivants :

  • category - La catégorie de l'élément de contexte. Les valeurs valides sont file, merge_request, issue ou snippet.
  • id - L'ID de l'élément de contexte.
  • content - Le contenu de l'élément de contexte. La valeur dépend de la catégorie de l'élément de contexte.
  • metadata - Les métadonnées supplémentaires facultatives pour cet élément de contexte. La valeur dépend de la catégorie de l'élément de contexte.

Exemple de requête :

shell
curl --request POST \
  --header "Authorization: Bearer <YOUR_ACCESS_TOKEN>" \
  --header "Content-Type: application/json" \
  --data '{
      "content": "how to define class in ruby",
      "additional_context": [
        {
          "category": "file",
          "id": "main.rb",
          "content": "class Foo\nend"
        }
      ]
    }' \
  --url "https://gitlab.example.com/api/v4/chat/completions"

Exemple de réponse :

json
"To define class in ruby..."