Files
gitlab-foss/doc/api/chat.md
2024-11-08 18:13:16 +00:00

3.4 KiB

stage, group, info, description
stage group info description
AI-Powered Duo Chat To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments Documentation for the REST API for Duo Chat.

GitLab Duo Chat Completions API

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

Generate Chat responses

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 if resource_type is a commit.
additional_context hash No Additional 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..."