GitLab Duo Chat 완성 API
요약
이 API는 GitLab Duo Chat에 대한 응답을 생성하는 데 사용됩니다: GitLab Duo Chat 질문에 대한 응답을 생성합니다. 이 기능의 가용성은 기능 플래그로 제어됩니다. 이 엔드포인트에 대한 요청은 AI Gateway로 프록시됩니다.
이 API는 GitLab Duo Chat에 대한 응답을 생성하는 데 사용됩니다:
- GitLab.com에서 이 API는 내부 사용 전용입니다.
- GitLab Self-Managed에서는
access_rest_chat이라는 기능 플래그를 사용하여 이 API를 활성화할 수 있습니다.
전제 조건:
- GitLab 팀원이어야 합니다.
Chat 응답 생성#
GitLab Duo Chat 질문에 대한 응답을 생성합니다.
히스토리
- GitLab 16.7에서
access_rest_chat이라는 플래그와 함께 도입되었습니다. 기본적으로 비활성화되어 있습니다. 이 기능은 내부 전용입니다. additional_context파라미터가 GitLab 17.4에서duo_additional_context라는 플래그와 함께 추가되었습니다. 기본적으로 비활성화되어 있습니다. 이 기능은 내부 전용입니다.additional_context파라미터가 GitLab 17.9에서 GitLab.com 및 GitLab Self-Managed에서 활성화되었습니다.additional_context파라미터가 GitLab 18.0에서 일반 가용되었습니다. 기능 플래그duo_additional_context가 제거되었습니다.
Feature flag
이 기능의 가용성은 기능 플래그로 제어됩니다. 자세한 내용은 기록을 참조하세요.
POST /chat/completions
Note
이 엔드포인트에 대한 요청은 AI Gateway로 프록시됩니다.
지원되는 속성:
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
content |
문자열 | 예 | Chat에 보낼 질문. |
resource_type |
문자열 | 아니요 | Chat 질문과 함께 보내는 리소스 유형. |
resource_id |
문자열, 정수 | 아니요 | 리소스 ID. 리소스 ID(정수) 또는 커밋 해시(문자열)일 수 있습니다. |
referer_url |
문자열 | 아니요 | 참조 URL. |
client_subscription_id |
문자열 | 아니요 | 클라이언트 구독 ID. |
with_clean_history |
불리언 | 아니요 | 요청 전후에 기록을 초기화해야 하는지 여부를 나타냅니다. |
project_id |
정수 | 아니요 | 프로젝트 ID. resource_type이 커밋인 경우 필수입니다. |
additional_context |
배열 | 아니요 | 이 Chat 요청을 위한 추가 컨텍스트 항목 배열. 이 속성이 허용하는 파라미터 목록은 컨텍스트 속성을 참조하세요. |
컨텍스트 속성#
context 속성은 다음 속성을 가진 요소 목록을 허용합니다:
category- 컨텍스트 요소의 카테고리. 유효한 값은file,merge_request,issue또는snippet입니다.id- 컨텍스트 요소의 ID.content- 컨텍스트 요소의 내용. 값은 컨텍스트 요소의 카테고리에 따라 다릅니다.metadata- 이 컨텍스트 요소에 대한 선택적 추가 메타데이터. 값은 컨텍스트 요소의 카테고리에 따라 다릅니다.
요청 예시:
curl --request POST \
--header "Authorization: Bearer " \
--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"
응답 예시:
"To define class in ruby..."
