Code Suggestions API
Code Suggestions API를 사용하여 Code Suggestions 기능에 액세스합니다.
코드 완성 생성하기
Status: Experiment
- GitLab 16.2에서 플래그인
 code_suggestions_completion_api로 도입되었습니다. 기본적으로 비활성화되어 있습니다. 이 기능은 실험적입니다.- GitLab 16.3에서 이 엔드포인트를 호출하기 전에 JWT를 생성하는 요구사항이 제거되었습니다.
 - GitLab 16.8에서 일반 사용 가능해졌고, 피처 플래그
 code_suggestions_completion_api가 제거되었습니다.
Self-managed GitLab에서는 기본적으로 이 기능을 사용할 수 없습니다. 이를 사용 가능하게 하려면 관리자가 피처 플래그를 활성화해야 합니다.
GitLab.com 및 GitLab Dedicated에서는 이 기능을 사용할 수 없습니다.
이 기능은 프로덕션 환경에서 사용하기에 적합하지 않습니다.
POST /code_suggestions/completions
이 엔드포인트는 각 사용자를 1분 동안 60회의 요청으로 제한합니다.
코드 완성을 생성하기 위해 AI 추상화 계층을 사용합니다.
이 엔드포인트로의 요청은 AI 게이트웨이로 프록시됩니다.
파라미터:
| 속성 | 타입 | 필수 | 설명 | 
|---|---|---|---|
current_file
 | 해시 | 예 | 코드 제안이 생성되는 파일의 속성입니다. 이 속성이 수용하는 문자열 디렉터리에 대해서는 파일 속성을 참조하세요. | 
intent
 | 문자열 | 아니요 | 완성 요청의 의도입니다. 옵션: completion 또는 generation.
 | 
stream
 | 불리언 | 아니요 | (해당 경우에 적용되는 경우) 작은 청크로 응답을 스트리밍할지 여부입니다. 기본값: false.
 | 
project_path
 | 문자열 | 아니요 | 프로젝트 경로입니다. | 
파일 속성
current_file 속성은 다음 문자열을 수용합니다:
- 
file_name- 파일 이름. 필수 항목입니다. - 
content_above_cursor- 현재 커서 위치 위의 파일 내용입니다. 필수 항목입니다. - 
content_below_cursor- 현재 커서 위치 아래의 파일 내용입니다. 선택적 항목입니다. 
예시 요청:
curl --request POST \
  --header "Authorization: Bearer <YOUR_ACCESS_TOKEN>" \
  --data '{
      "current_file": {
        "file_name": "car.py",
        "content_above_cursor": "class Car:\n    def __init__(self):\n        self.is_running = False\n        self.speed = 0\n    def increase_speed(self, increment):",
        "content_below_cursor": ""
      },
      "intent": "completion"
    }' \
  --url "https://gitlab.example.com/api/v4/code_suggestions/completions"
예시 응답:
{
  "id": "id",
  "model": {
    "engine": "vertex-ai",
    "name": "code-gecko"
  },
  "object": "text_completion",
  "created": 1688557841,
  "choices": [
    {
      "text": "\n        if self.is_running:\n            self.speed += increment\n            print(\"The car's speed is now",
      "index": 0,
      "finish_reason": "length"
    }
  ]
}
도움말