Code Suggestions 개발 가이드라인

Code Suggestions 개발 환경 설정

로컬에서 Code Suggestions를 개발하고 디버깅하는 권장 설정은 다음과 같습니다.

  • IDE 확장 프로그램 (예: VS Code Extension).
  • 올바르게 구성된 주 애플리케이션 (예: GDK).
  • AI Gateway.

이를 통해 누구나 로컬에서 IDE의 변경 사항을 주 응용 프로그램에 전달하고 해당 모델로 전송된 프롬프트로 변환된 변경 사항을 볼 수 있어야 합니다.

설정 지침

  1. VS Code Extension을 설치하고 로컬에서 실행합니다:
    1. 코드 Suggestions 개발 구성에 "gitlab.debug": true 정보를 추가합니다:
      1. VS Code에서 확장 프로그램 페이지로 이동하여 디렉터리에서 “GitLab Workflow”를 찾습니다.
      2. 작은 톱니바퀴 아이콘을 클릭하고 “Extension Settings” 옵션을 선택하여 확장 프로그램 설정을 엽니다.
      3. “GitLab: Debug” 확인란을 선택합니다.
    2. VS Code에서 “실행 및 디버깅” 명령을 실행할 때 생긴 새 창 안에서 GDK와 개인 액세스 토큰 설정을 테스트 하려면 개인 액세스 토큰 설정 방법을 따릅니다.
      • 아래 단계를 완료하면 로컬 /code_suggestions/completions 엔드포인트에 접근하고 있는지, 제품이 아닌지를 테스트하기 위해 다음 작업을 수행하세요:
        1. 새 창 안에서 내장 터미널을 선택한 다음 오른쪽의 드롭다운 메뉴에서 “GitLab Language Server”를 선택합니다.
        2. 이 VS Code 창에서 새 파일을 연 후 코드 제안을 보기 위해 타이핑을 시작합니다.
        3. 코드 제안 요청 URL이 GDK의 Git 원격 URL과 일치하는 것을 확인할 수 있습니다.
  2. 주 애플리케이션 (GDK):
    1. GitLab 개발 키트(GDK)를 설치하고 실행합니다.
    2. ai_duo_code_suggestions_switch 피처 플래그를 활성화합니다:
      1. 터미널에서 gitlab-development-kit > gitlab 디렉터리로 이동합니다.
      2. Rails 콘솔을 시작하려면 gdk rails console 또는 bundle exec rails c를 실행합니다.
      3. 콘솔에서 Feature.enable(:ai_duo_code_suggestions_switch)를 호출하여 코드 제안 토큰 API의 피처 플래그를 활성화합니다.
    3. AI Gateway URL 환경 변수를 설정하기 위해 export AI_GATEWAY_URL=http://localhost:5052를 실행합니다.
    4. GDK 서버가 실행 중이 아니라면 gdk start로 GDK 서버를 실행합니다.
  3. AI Gateway 설정:
    1. AI Gateway를 GDK의 일부로 실행합니다.
      1. 이 MR의 “로컬로 설정하고 유효성 검사하는 방법” 단계를 따릅니다.
      2. GDK의 gitlab-ai-gateway/.env 파일에 ANTHROPIC_API_KEY를 추가하세요.
    2. AI Gateway를 외부로 실행합니다.
      1. 로컬 서버를 실행하는 방법의 단계를 완료합니다.
      2. 모든 디버깅 정보를 위해 .env 파일에 다음 변수를 주석 처리하여 추가합니다. 이 로그가 ai-assist 루트 디렉터리에 표시되도록 파일 경로를 수정해야 할 수 있습니다.

        AIGW_LOGGING__LEVEL=debug
        AIGW_LOGGING__FORMAT_JSON=false
        AIGW_LOGGING__TO_FILE=../modelgateway_debug.log
        
      3. 새로운 로그 파일 modelgateway_debug.log을 확인합니다.

        tail -f modelgateway_debug.log | fblog -a prefix -a suffix -a current_file_name -a suggestion -a language -a input -a parameters -a score -a exception
        

스테이징 AI Gateway 사용 설정 지침

AI Gateway와 상호 작용을 테스트할 때 로컬 GDK를 배포된 스테이징 AI Gateway와 통합하려면 다음을 수행하세요:

  1. 스테이징에서 추가 기능이 활성화되어 있기 때문에 코드 제안 애드온이 있는 클라우드 스테이징 라이선스가 필요합니다. 로컬 개발을 위해 라이선스를 요청하려면 #s_fulfillment 또는 s_fulfillment_engineering 내부 Slack 채널에 메모를 남기세요. 로컬 개발을 위한 라이선스 요청 방법은 핸드북 페이지에서 확인할 수 있습니다.
  2. 환경 변수를 설정하여 클라우드 스테이징과 AI Gateway의 포인팅을합니다:

    export GITLAB_LICENSE_MODE=test
    export CUSTOMER_PORTAL_URL=https://customers.staging.gitlab.com
    export AI_GATEWAY_URL=https://cloud.staging.gitlab.com/ai
    
  3. GDK를 다시 시작합니다.
  4. 필요한 코드 제안 기능을 활성화하는 데 필요한 단계를 따랐는지 확인합니다.
  5. 프로젝트에서 Web IDE를 열어 코드 제안 기능을 테스트합니다.

코드 Suggestions 애드온을 사용하는 GDK 설정 지침

2023년 2월 15일까지 코드 제안 애드온 구독을 사용하려면 코드 제안을 사용할 수 있어야 합니다. 애드온을 사용하려면 GDK를 로컬 개발용으로 설정하려면 다음 단계를 따르세요:

  1. #s_fulfillment 또는 s_fulfillment_engineering 내부 Slack 채널에 메모를 남기고 코드 제안 애드온의 활성화 코드를 요청하세요.
  2. 누군가가 코드를 제공할 것입니다.
  3. 활성화 지침에 따릅니다:
    1. 환경 변수를 설정합니다.
    export GITLAB_LICENSE_MODE=test
    export CUSTOMER_PORTAL_URL=https://customers.staging.gitlab.com
    export GITLAB_SIMULATE_SAAS=0
    
    1. GDK를 다시 시작합니다.
    2. /admin/subscription으로 이동합니다.
    3. 활성 라이선스를 제거합니다.
    4. 새로운 활성화 코드를 추가합니다.
  4. GDK에서 Admin Area > GitLab Duo Pro로 이동하여 /admin/code_suggestions로 이동합니다.
  5. ‘루트’를 찾아 GitLab Duo Pro 애드온을 루트 사용자에게 할당하도록 토글을 클릭합니다.