GitLab Duo Chat Completions API

The GitLab Duo Chat Completions API generates Chat responses. This API is for internal use only.

Generate Chat responses

History
POST /chat/completions

Requests to this endpoint are proxied to the AI gateway.

Supported attributes:

AttributeTypeRequiredDescription
contentstringYesQuestion sent to Chat.
resource_typestringNoType of resource that is sent with Chat question.
resource_idstring, integerNoID of the resource. Can be a resource ID (integer) or a commit hash (string).
referer_urlstringNoReferer URL.
client_subscription_idstringNoClient Subscription ID.
with_clean_historybooleanNoIndicates if we need to reset the history before and after the request.
project_idintegerNoProject ID. Required if resource_type is a commit.
additional_contexthashNoAdditional context for this chat request. See Context attributes for a list of parameters this attribute accepts.

Context attributes

The context attribute accepts a list of elements with the following attributes:

  • category - The category of the context element. Valid values are file, merge_request, issue, or snippet.
  • id - The ID of the context element.
  • content - The content of the context element. The value depends on the category of the context element.
  • metadata - The optional additional metadata for this context element. The value depends on the category of the context element.

Example request:

curl --request POST \
  --header "Authorization: Bearer <YOUR_ACCESS_TOKEN>" \
  --header "Content-Type: application/json" \
  --data '{
      "content": "how to define class in ruby"
    }' \
  --url "https://gitlab.example.com/api/v4/chat/completions"

Example response:

"To define class in ruby..."