다음을 통해 공유


코필로트 채팅이 컨텍스트를 이해하고 사용하는 방법

Visual Studio의 코필로트 채팅은 컨텍스트를 인식하도록 설계되었으며 프로젝트의 구조와 콘텐츠를 깊이 이해하여 관련성이 높고 맞춤형 응답을 제공합니다. 이 문서에서는 코필로트 채팅이 컨텍스트를 생성하고 활용하여 코딩 워크플로를 향상시키는 방법에 대한 비하인드 스토리를 제공합니다.

코필로트 채팅이 솔루션 컨텍스트를 수집하는 방법

코필로트 채팅은 코드베이스 내에서 컨텍스트 빌드에 대한 다층적인 접근 방식을 사용하여 제안 및 답변이 관련성이 있고 정확한지 확인합니다.

코드베이스 인덱싱

리포지토리가 GitHub 또는 Azure DevOps에서 호스트되는 경우 Copilot는 코드베이스의 원격 인덱스를 만들고 코드의 패턴과 관계를 캡처하는 포함을 계산합니다. GitHub의 원격 인덱싱에 대해 자세히 알아봅니다.

코드가 다른 곳에서 호스트되는 경우 Copilot는 로컬 인덱스를 빌드합니다.

프롬프트에 따라 Copilot는 정확하게 응답하기 위해 더 많은 프로젝트 컨텍스트가 필요하다고 판단할 수 있습니다. 이러한 경우 원격 또는 로컬 인덱스에 대한 의미 체계 검색을 수행합니다.

정확한 단어와 일치하는 기존 검색과 달리 의미 체계 검색은 의미에 중점을 둡니다. Copilot는 고급 벡터 포함을 사용하여 요청과 가장 높은 의미 체계 유사성을 가진 파일을 식별하고 해당 컨텍스트에 추가합니다.

이러한 파일은 시스템 프롬프트, 지침, 암시적 컨텍스트(예: 채팅 기록 및 열린 파일) 및 사용자가 제공하는 명시적 콘텐츠(예: 오류)를 보완합니다.

채팅에서 컨텍스트로 참조를 추가하는 방법을 알아봅니다.

코필로트 채팅에서 코드 제안을 적용하는 방법

부조종사 채팅은 응답에서 코드 제안을 자주 제공합니다. 이러한 제안을 적용하고 테스트하려면 코드베이스에 정확하게 매핑되어야 합니다.

모델 기반 코드 매핑

부조종사 채팅은 추측 디코딩을 사용하여 제안을 기존 파일에 정확하게 삽입하여 오류 위험을 줄입니다. 에이전트 모드에서는 코필로트가 코드를 독립적으로 빌드, 디버깅 및 테스트할 수 있도록 신뢰할 수 있는 편집을 수행할 수 있습니다.

Copilot 메모리

코파일럿의 메모리 기능은 프로젝트의 특정한 코딩 표준과 모범 사례를 학습하여 코파일럿이 세션 전체에서 프로젝트 인식을 유지하고 일관성을 갖출 수 있게 지원합니다.

Copilot 메모리 작동 방식

메모리는 지능형 감지를 사용하여 채팅에서 입력할 때 팀의 선호도를 이해합니다. 사용자가 요청할 때, Copilot는 사용자가 행동을 수정하도록 요구하거나, 표준을 제시하거나, 기억할 것을 요청하는 상황을 감지합니다.

이러한 인스턴스가 감지되면 기본 설정을 저장할지를 확인하는 메시지가 표시됩니다.

코필로트가 추억에 추가할 기본 설정을 검색하는 경우의 스크린샷.

그런 다음, 코필로트는 기본 설정을 다음 세 파일 중 하나로 분류합니다.

  • 코딩 표준용 .editorconfig
  • CONTRIBUTING.md 모범 사례, 지침 및 아키텍처 표준을 위한 것입니다.
  • README.md 고급 수준의 프로젝트 정보

Copilot에 계속 명령을 내리면, 요구 사항에 보다 효과적으로 대응할 수 있도록 Copilot의 반응이 개선되고, 팀을 돕기 위해 개발 모범 사례를 문서화하여 향후 Copilot 상호 작용을 향상시킬 수 있습니다.