시맨틱 코드 검색
키워드 매칭이 아닌 의미를 기반으로 저장소에서 관련 코드 스니펫을 찾습니다.
히스토리 GitLab 18.7에서 베타 로 도입됨 . GitLab 18.8에서 GitLab Duo Core에 추가됨 . GitLab 18.9에서 GitLab Premium에 추가됨 . 시맨틱 코드 검색은 AI를 사용하여 키워드 매칭이 아닌 의미를 기반으로 저장소에서 관련 코드 스니펫을 찾습니다. 시맨틱 코드 검색은 코드베이스를 벡터 임베딩으로 변환하고 이 임베딩을 벡터 데이터베이스에 저장합니다. 검색 쿼리도 임베딩으로 변환된 다음 코드 임베딩과 비교하여 의미적으로 가장 유사한 결과를 찾습니다. 이 접근 방식은 키워드가 일치하지 않더라도 관련 코드를 찾습니다. 이 기능의 개선 사항은 에픽 18018 과 에픽 20110 에서 제안됩니다. 사전 조건 # GitLab이 운영하는 AI Gateway 에 액세스. 다음 기능이 켜져 있어야 합니다: GitLab.com의 경우 최상위 그룹에 대한 실험 기능. GitLab Self-Managed의 경우 인스턴스에 대한 GitLab Duo 실험 및 베타 기능. 프로젝트에 대해 GitLab Duo 가 켜져 있어야 합니다. 다음 벡터 스토어 중 하나가 구성되어 있어야 합니다: Elasticsearch 8.0 이상. OpenSearch 2.0 이상. pgvector 확장을 사용하는 PostgreSQL. 관리자 액세스. 시맨틱 코드 검색 활성화 # UI로 # GitLab 인스턴스가 고급 검색을 위해 Elasticsearch 또는 OpenSearch를 사용하는 경우 동일한 클러스터에 연결하여 시맨틱 코드 검색을 활성화할 수 있습니다: 오른쪽 상단 모서리에서 관리자 를 선택합니다. 설정 > 검색 을 선택합니다. 시맨틱 검색 을 확장합니다. 고급 검색 클러스터에 연결 을 선택합니다. Rails 콘솔로 # Elasticsearch, OpenSearch 또는 PostgreSQL의 사용자 정의 벡터 스토어 연결을 만들려면 Rails 콘솔에서 adapter 와 options 를 사용하여 연결을 만드세요. Note 중간 규모에서 대규모 저장소에는 Elasticsearch 또는 OpenSearch를 사용해야 합니다. 소수의 작은 저장소가 있는 설정에만 pgvector 와 함께 PostgreSQL을 사용하세요. pgvector 를 사용하면 인덱싱 및 쿼리 성능이 제한될 수 있습니다. Elasticsearch # connection = Ai : :ActiveContext : :Connection .create!( name: "elasticsearch" , options: options, adapter_class: "ActiveContext::Databases::Elasticsearch::Adapter" ) connection.activate! 연결 옵션: 옵션 유형 필수 기본값 설명 url 문자열 배열 예 없음 Elasticsearch 클러스터의 URL 배열 (예: ["http://localhost:9200"] ). client_adapter 문자열 아니오 typhoeus 사용할 HTTP 어댑터. 가능한 값: typhoeus , n
