IBM watsonx.ai Studio로 코드 저장소 인덱싱하기

watsonx Code Assistant 표준 요금제

IBM watsonx.ai Studio를 사용하여 코드 리포지토리를 색인화하여 검색 증강 생성(RAG)을 활성화할 수 있습니다.

시작하기 전에

  • 노트북을 실행하기 전에 IBM Cloud 에서 Milvus 또는 Elasticsearch DB의 인스턴스를 프로비저닝합니다.
  • 노트북을 실행할 watsonx.ai Studio의 인스턴스를 프로비저닝합니다. watsonx.ai Studio 인스턴스를 만들려면 watsonx.ai Studio 카탈로그를 참조하세요.
  • 코드의 함수에 대한 설명을 생성하기 위해 watsonx Code Assistant 에 액세스할 수 있는 API 키가 있는지 확인하세요. 설명은 더 나은 검색 결과를 위해 코드와 함께 색인화되어 있습니다. 자세한 내용은 IBM Cloud API 키 만들기를 참조하세요.

색인 계획

RAG를 사용할 때 watsonx Code Assistant 의 성능을 최적화하려면 효과적인 인덱싱이 필수적입니다. 리포지토리 또는 문서를 색인할 때 다음 요소를 고려하세요:

  • 디스크의 저장 공간이 색인되는 콘텐츠 크기의 두 배인지 확인합니다.

  • 기존 코드를 재사용하여 새 코드를 생성하고, 특정 기능의 구현을 찾고, 코드 베이스와 관련된 방법 관련 질문에 답할 때 코드 리포지토리를 색인화하세요. 주요 코드 프로젝트와 API 구현과 같은 종속성을 포함할 수 있습니다.

  • 제품 또는 프로젝트 문서, 기술 가이드, 디자인 문서 등의 문서 리포지토리를 색인화하여 watsonx Code Assistant 이러한 문서를 기반으로 쿼리에 응답해야 하는 경우 해당 문서에 대한 색인을 생성합니다.

  • 거의 사용하지 않는 코드 저장소나 문서는 색인하지 않음으로써 저장소 사용량을 줄이고 색인 생성 및 유지 관리에 필요한 시간을 최소화하세요.

  • 특히 소스 코드의 경우 리포지토리당 하나의 인덱스를 사용하여 컨텍스트 검색을 특정 리포지토리로 제한하세요.

  • 모든 문서에서 공통적으로 검색하는 경우 여러 문서 저장소를 단일 색인으로 결합하세요. 리포지토리와 다른 팀 또는 사용자 간에 중요한 키워드가 겹치거나 특정 문서 리포지토리에서 컨텍스트를 검색해야 하는 경우 별도의 인덱스를 만들 수 있습니다.

  • 같은 인덱스에 있는 다른 리포지토리의 코드를 병합하지 마세요. 병합된 코드는 프롬프트에 대한 응답 생성의 정확성을 떨어뜨리고 사용자에 대한 액세스 제한이 제대로 구현되지 않은 경우 코드의 무단 액세스로 이어질 수 있습니다.

  • 인덱싱 프로세스 중에 보안 및 권한 부여를 올바르게 관리해야 합니다. 다양한 사용 시나리오에 대해서는 사용 사례 시나리오를 참조하세요.

  • 기밀 또는 민감한 콘텐츠를 색인화하기 전에 필요한 모든 조직 승인을 받았는지 확인하세요. RAG에 사용되는 소스 코드와 문서는 GitHub 리포지토리 외부의 벡터 저장소에 일반 텍스트 및 벡터화된 형식으로 저장됩니다.

코드 리포지토리 인덱싱

  1. 이 프로젝트에 로그인하세요: watsonx Code Assistant 에 대한 RAG 벡터 저장소를 만듭니다.

  2. 프로젝트 작성을 클릭하십시오.

  3. 저장소 필드에서 Cloud Object Storage 인스턴스를 선택합니다. 드롭다운 목록에서 Cloud Object Storage 인스턴스를 사용할 수 없는 경우 인스턴스를 생성합니다.

  4. 작성을 클릭하십시오.

  5. 프로젝트의 자산 탭으로 가서 벡터 스토어 노트북 채우기를 클릭합니다.

  6. Populate vector store 노트북의 지침에 따라 코드 또는 문서의 색인을 생성하세요.