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
note
Requests to this endpoint are proxied to the AI gateway.

Supported attributes:

Attribute Type Required Description
content string Yes Question sent to Chat.
resource_type string No Type of resource that is sent with Chat question.
resource_id string, integer No ID of the resource. Can be a resource ID (integer) or a commit hash (string).
referer_url string No Referer URL.
client_subscription_id string No Client Subscription ID.
with_clean_history boolean No Indicates if we need to reset the history before and after the request.
project_id integer No Project ID. Required ifresource_typeis a commit.
additional_context hash No Additional context for this chat request. SeeContext attributesfor a list of parameters this attribute accepts.

Context attributes

Thecontextattribute accepts a list of elements with the following attributes:

  • category- The category of the context element. Valid values arefile,merge_request,issue,orsnippet.
  • 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--requestPOST\
--header"Authorization: Bearer <YOUR_ACCESS_TOKEN>"\
--header"Content-Type: application/json"\
--data'{
"content": "how to define class in ruby"
}'\
--url"https://gitlab.example /api/v4/chat/completions"

Example response:

"To define class in ruby..."