GitLab Duo Chat Completions API

GitLab Duo Chat Completions API는 Chat 응답을 생성합니다. 이 API는 내부 사용 전용입니다.

Chat 응답 생성

  • GitLab 16.7에서 access_rest_chat이라는 플래그와 함께 소개됨. 기본적으로 비활성화되어 있습니다. 이 기능은 내부 전용입니다.
  • GitLab 17.4에서 duo_additional_context라는 플래그와 함께 추가 컨텍스트 매개변수 추가. 기본적으로 비활성화되어 있습니다. 이 기능은 내부 전용입니다.
POST /chat/completions
note
이 끝점을 호출하는 요청은 AI Gateway로 프록시됩니다.

지원하는 속성:

Attribute Type Required Description
content string Yes Chat에 전송되는 질문입니다.
resource_type string No Chat 질문과 함께 전송되는 리소스의 유형입니다.
resource_id string, integer No 리소스의 ID입니다. 리소스 ID(정수) 또는 커밋 해시(문자열)가 될 수 있습니다.
referer_url string No 참조 URL입니다.
client_subscription_id string No 클라이언트 구독 ID입니다.
with_clean_history boolean No 요청 전후에 기록을 리셋해야 하는지 여부입니다.
project_id integer No 프로젝트 ID입니다. resource_type가 커밋인 경우 필수입니다.
additional_context hash No 이 chat 요청에 대한 추가 컨텍스트입니다. 이 속성이 수용하는 매개변수 목록은 컨텍스트 속성를 참조하세요.

컨텍스트 속성

context 속성은 다음 속성이 있는 요소 목록을 수용합니다:

  • category - 컨텍스트 요소의 카테고리입니다. 유효한 값은 file, merge_request, issue 또는 snippet입니다.
  • id - 컨텍스트 요소의 ID입니다.
  • content - 컨텍스트 요소의 내용입니다. 그 값은 컨텍스트 요소의 카테고리에 따라 달라집니다.
  • metadata - 이 컨텍스트 요소에 대한 선택적 추가 메타데이터입니다. 그 값은 컨텍스트 요소의 카테고리에 따라 달라집니다.

예제 요청:

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"

예제 응답:

"To define class in ruby..."