Code Suggestions 트러블슈팅
GitLab Duo Code Suggestions 작업 시 다음 문제가 발생할 수 있습니다. 상태 확인을 실행하여 인스턴스가 Code Suggestions를 실행하기 위한 요구 사항을 충족하는지 테스트할 수 있습니다.
GitLab Duo Code Suggestions 작업 시 다음 문제가 발생할 수 있습니다.
상태 확인을 실행하여 인스턴스가 Code Suggestions를 실행하기 위한 요구 사항을 충족하는지 테스트할 수 있습니다.
GitLab Duo 트러블슈팅에 대한 자세한 내용은 다음을 참조하세요:
제안이 표시되지 않음#
제안이 표시되지 않으면 다음을 확인하세요:
- GitLab Duo가 올바르게 구성되어 있는지 확인합니다.
- 지원되는 언어와 에디터 확장을 사용하고 있는지 확인합니다.
- 에디터 확장을 올바르게 구성했는지 확인합니다.
여전히 제안이 표시되지 않으면 다양한 IDE에 대한 다음 트러블슈팅 단계를 시도하세요:
Code Suggestions에서 401 오류 반환#
Code Suggestions는 GitLab으로 구독을 동기화하는 라이선스 토큰에 의존합니다.
토큰이 만료되면 Code Suggestions는 401 상태와 함께 다음 오류를 반환합니다:
Token validation failed in Language Server:
(Failed to check token: Error: Fetching Information about personal access token
GitLab이 클라우드 서버에 액세스할 수 있으면 라이선스를 수동으로 동기화해 보세요.
인증 트러블슈팅#
특히 토큰 시스템의 최근 인증 변경으로 인해 문제가 발생할 수 있습니다. 문제를 해결하려면:
- GitLab 계정 설정에서 기존 개인 액세스 토큰을 제거합니다.
- OAuth를 사용하여 GitLab 계정을 재인증합니다.
- 다른 파일 확장자로 Code Suggestions 기능을 테스트하여 문제가 해결되었는지 확인합니다.
오류 422: 기본 GitLab Duo 네임스페이스 없음#
Code Suggestions cannot detect a namespace for this project. To continue, please set a default GitLab Duo namespace in your user preferences.라는 오류가 발생할 수 있습니다.
이 문제는 여러 GitLab Duo 네임스페이스에 속해 있거나 GitLab 원격이 구성되지 않은 로컬 프로젝트에서 작업할 때 발생합니다.
이를 해결하려면 기본 GitLab Duo 네임스페이스를 설정하세요.
VS Code 트러블슈팅#
다음 설명서는 VS Code에 대한 Code Suggestions 관련 트러블슈팅입니다.
다른 모든 GitLab for VS Code 트러블슈팅은 GitLab for VS Code 확장 트러블슈팅을 참조하세요.
VS Code 또는 GitLab Web IDE에서 제안이 표시되지 않음#
GitLab Self-Managed를 사용하는 경우 GitLab Web IDE에 대한 Code Suggestions가 활성화되어 있는지 확인합니다. 로컬 IDE인 VS Code에도 동일한 설정이 적용됩니다.
- 왼쪽 사이드바에서 Extensions > GitLab을 선택합니다.
- Manage(⚙️)를 선택한 다음 Settings를 선택합니다.
- GitLab > Duo Code Suggestions에서 GitLab Duo Code Suggestions 체크박스를 선택합니다.
Code Suggestions 로그 보기#
IDE에 Code Suggestions가 활성화되어 있지만 제안이 여전히 표시되지 않으면:
- IDE의 GitLab for VS Code Extension Settings에서 GitLab: Debug를 활성화합니다.
- Web IDE의 경우 마켓플레이스 확장이 활성화되어 있어야 합니다.
- 상단 메뉴에서 View > Output을 선택하여 하단 패널을 열고 다음 중 하나를 수행합니다:
- 명령 팔레트에서
GitLab: Show Extension Logs를 선택합니다. - 하단 패널 오른쪽에서 드롭다운 목록을 선택하여 로그를 필터링합니다. GitLab을 선택합니다.
- 명령 팔레트에서
- GitLab for VS Code Extension Settings에서 GitLab Duo Code Suggestions 체크박스를 선택 해제했다가 다시 선택합니다.
코드 생성 결과의 스트리밍 비활성화#
기본적으로 코드 생성은 AI 생성 코드를 스트리밍합니다. 스트리밍은 전체 코드 스니펫이 생성될 때까지 기다리지 않고 생성된 코드를 에디터에 점진적으로 보냅니다. 이를 통해 보다 인터랙티브하고 반응성 있는 경험이 가능합니다.
코드 생성 결과가 완료될 때만 보고 싶다면 스트리밍을 끌 수 있습니다. 스트리밍을 비활성화하면 코드 생성 요청이 더 오래 걸리는 것처럼 느껴질 수 있습니다. 스트리밍을 비활성화하려면:
-
VS Code의 상단 표시줄에서 Code > Settings > Settings로 이동합니다.
-
오른쪽 상단에서 **Open Settings (JSON)**을 선택하여
settings.json파일을 편집합니다:
-
settings.json파일에 다음 줄을 추가하거나, 이미 존재하면false로 설정합니다:"gitlab.featureFlags.streamCodeGenerations": false, -
변경 사항을 저장합니다.
오류: 직접 연결 실패#
히스토리
- GitLab 17.2에서 직접 연결이 도입됨.
지연 시간을 줄이기 위해 GitLab for VS Code 확장은 GitLab 인스턴스를 우회하여 GitLab Cloud Connector에 직접 제안 완성 요청을 보내려고 합니다. 이 네트워크 연결은 VS Code 확장의 프록시 및 인증서 설정을 사용하지 않습니다.
GitLab 인스턴스가 직접 연결을 지원하지 않거나 네트워크가 확장의 GitLab Cloud Connector 연결을 차단하면 로그에 다음 경고가 표시될 수 있습니다:
Failed to fetch direct connection details from GitLab instance.
Code suggestion requests will be sent to GitLab instance.
이 오류는 인스턴스가 직접 연결을 지원하지 않거나 잘못 구성되어 있음을 의미합니다.
이 오류가 표시되면 확장이 GitLab Cloud Connector에 연결할 수 없어 GitLab 인스턴스를 사용하도록 되돌아갑니다:
Direct connection for code suggestions failed.
Code suggestion requests will be sent to your GitLab instance.
GitLab 인스턴스를 통한 간접 연결은 약 100ms 느리지만 그 외에는 동일하게 작동합니다. 이 문제는 LAN 방화벽이나 프록시 설정 등의 네트워크 연결 문제로 인해 자주 발생합니다.
JetBrains IDE 트러블슈팅#
다음 설명서는 JetBrains IDE에 대한 Code Suggestions 관련 트러블슈팅입니다.
JetBrains IDE의 Code Suggestions 외 트러블슈팅은 JetBrains 트러블슈팅을 참조하세요.
JetBrains IDE에서 제안이 표시되지 않음#
- Tools > GitLab Duo 메뉴에서 Verify setup을 선택합니다. 상태 확인이 통과하는지 확인합니다.
- JetBrains IDE가 작업 중인 파일의 언어를 기본적으로 지원하는지 확인합니다. Settings > Languages & Frameworks로 이동하여 JetBrains IDE에서 지원하는 언어 및 프레임워크의 전체 목록을 확인합니다.
오류: unable to find valid certification path to requested target#
GitLab Duo 플러그인은 GitLab 인스턴스에 연결하기 전에 TLS 인증서 정보를 확인합니다. 사용자 정의 SSL 인증서를 추가할 수 있습니다.
오류: Failed to check token#
이 오류는 GitLab Language Server 프로세스에 전달된 연결 인스턴스 URL과 인증 토큰이 유효하지 않을 때 발생합니다. Code Suggestions를 다시 활성화하려면:
- IDE의 상단 표시줄에서 IDE 이름을 선택한 다음 Settings를 선택합니다.
- 왼쪽 사이드바에서 Tools > GitLab Duo를 선택합니다.
- Connection 아래에서 Verify setup을 선택합니다.
- 필요에 따라 Connection 세부 정보를 업데이트합니다.
- Verify setup을 선택하고 인증이 성공하는지 확인합니다.
- OK 또는 Save를 선택합니다.
Microsoft Visual Studio 트러블슈팅#
다음 설명서는 Microsoft Visual Studio에 대한 Code Suggestions 관련 트러블슈팅입니다.
Microsoft Visual Studio의 Code Suggestions 외 트러블슈팅은 Visual Studio 트러블슈팅을 참조하세요.
IntelliCode 누락#
Code Suggestions는 Visual Studio의 IntelliCode 구성 요소가 필요합니다. 구성 요소가 없으면 Visual Studio를 시작할 때 다음과 같은 오류가 표시될 수 있습니다:
SetSite failed for package [VisualStudioPackage]Source: 'Microsoft.VisualStudio.Composition'
Description: Expected 1 export(s) with contract name "Microsoft.VisualStudio.Language.Suggestions.SuggestionServiceBase"
but found 0 after applying applicable constraints.
Microsoft.VisualStudio.Composition.CompositionFailedException:
Expected 1 export(s) with contract name "Microsoft.VisualStudio.Language.Suggestions.SuggestionServiceBase"
but found 0 after applying applicable constraints.
at Microsoft.VisualStudio.Composition.ExportProvider.GetExports(ImportDefinition importDefinition)
at Microsoft.VisualStudio.Composition.ExportProvider.GetExports[T,TMetadataView](String contractName, ImportCardinality cardinality)
at Microsoft.VisualStudio.Composition.ExportProvider.GetExport[T,TMetadataView](String contractName)
at Microsoft.VisualStudio.Composition.ExportProvider.GetExportedValue[T]()
at Microsoft.VisualStudio.ComponentModelHost.ComponentModel.GetService[T]()
[...]
이 문제를 해결하려면 IntelliCode 구성 요소를 설치합니다:
- Windows 시작 메뉴에서 Visual Studio Installer를 검색하여 엽니다.
- Visual Studio 인스턴스를 선택한 다음 Modify를 선택합니다.
- Individual components 탭에서 IntelliCode를 검색합니다.
- 구성 요소의 체크박스를 선택한 다음 오른쪽 하단에서 Modify를 선택합니다.
- Visual Studio Installer가 설치를 완료할 때까지 기다립니다.
Microsoft Visual Studio에서 제안이 표시되지 않음#
- 확장을 올바르게 설정했는지 확인합니다.
- Tools > Options 메뉴에서 GitLab 옵션을 찾습니다. Log Level이 Debug로 설정되어 있는지 확인합니다.
- View > Output에서 확장 로그를 엽니다. 로그 필터로 드롭다운 목록을 GitLab Extension으로 변경합니다.
- 디버그 로그에 다음과 유사한 출력이 포함되어 있는지 확인합니다:
14:48:21:344 GitlabProposalSource.GetCodeSuggestionAsync
14:48:21:344 LsClient.SendTextDocumentCompletionAsync("GitLab.Extension.Test\TestData.cs", 34, 0)
14:48:21:346 LS(55096): time="2023-07-17T14:48:21-05:00" level=info msg="update context"
다른 확장이 유사한 제안 또는 완성 기능을 제공하면 확장이 제안을 반환하지 않을 수 있습니다. 이를 해결하려면:
- 다른 모든 Visual Studio 확장을 비활성화합니다.
- 이제 Code Suggestions를 받을 수 있는지 확인합니다.
- 충돌하는 확장을 찾기 위해 확장을 하나씩 다시 활성화하면서 매번 Code Suggestions를 테스트합니다.
Neovim 트러블슈팅#
다음 설명서는 Neovim에 대한 Code Suggestions 관련 트러블슈팅입니다.
Neovim의 Code Suggestions 외 트러블슈팅은 Neovim 트러블슈팅을 참조하세요.
코드 완성 실패#
-
Neovim에서
omnifunc이 설정되어 있는지 확인합니다::verbose set omnifunc? -
Neovim에서 다음 명령을 실행하여 Language Server가 활성화되어 있는지 확인합니다:
:lua =vim.lsp.get_active_clients() -
~/.local/state/nvim/lsp.log에서 Language Server 로그를 확인합니다. -
Neovim에서 다음 명령을 실행하여 오류에 대한
vim.lsp로그 경로를 검사합니다::lua =vim.cmd('view ' .. vim.lsp.get_log_path())
코드 완성의 지연 시간 문제#
코드 완성을 위해 특정 모델이 선택된 프로젝트에서 시트가 할당된 경우:
- IDE 확장이 AI Gateway에 대한 직접 연결을 비활성화합니다.
- 코드 완성 요청은 GitLab 모놀리스를 통해 전달되며, 그런 다음 이러한 요청에 응답할 지정된 모델을 선택합니다.
이로 인해 코드 완성 요청의 지연 시간이 증가할 수 있습니다.
