
Code Mirrorer는 Greptile AI 및 LLM (Large Language Models)을 활용하여 개발자가 이상적인 코드베이스의 기능을 자신의 프로젝트로 배우고 통합 할 수 있도록 고급 코드 분석 및 기능 추출 도구입니다. 이 도구는 사용자 코드베이스의 특정 컨텍스트를 고려하면서 코드를 탐색, 이해 및 조정하는 대화식 방법을 제공합니다.
저장소 인덱싱
기능 추출
호환성 분석
구현 제안
대화식 채팅 인터페이스
지속적인 세션
저장소 제출 : 사용자는 두 개의 GitHub 리포지토리에 대한 링크 (이상적인 저장소 및 자체 저장소)에 링크를 제출합니다.
인덱싱 : 시스템은 두 리포지토리를 모두 인덱싱하여 컨텐츠를 검색 가능하고 분석 할 수 있도록합니다.
기능 추출 : 사용자는 제목 및 설명을 제공하여 특정 기능을 추출하도록 요청할 수 있습니다. 이 시스템은 AI를 사용하여 이상적인 저장소에서 관련 코드를 찾아서 추출합니다.
호환성 점검 : 추출 된 기능은 사용자 저장소와의 호환성을 위해 분석됩니다. 여기에는 호환성 점수와 잠재적 문제에 대한 자세한 설명이 포함됩니다.
구현 제안 : 시스템은 각 접근 방식에 대한 장단점이있는 사용자의 코드베이스에서 추출 된 기능을 구현하는 여러 가지 방법을 생성합니다.
대화식 채팅 : 사용자는 채팅 인터페이스에 참여하여 질문을하거나 설명을하거나 추출 된 기능 또는 제안 된 구현의 모든 측면에 대한 자세한 내용을 얻을 수 있습니다.
Code Mirrorer는 기술적으로 인상적인 몇 가지 기능을 보여줍니다.
지능형 채팅 기록 관리 : 벡터 데이터베이스 인 Pinecone을 사용하여 정교한 채팅 기록 시스템을 구현했습니다. 이를 통해 컨텍스트 관련 정보를 효율적으로 저장하고 검색하여 연장 된 대화에 대한 일관되고 문맥 상 반응을 제공 할 수있는 AI의 능력을 향상시킬 수 있습니다.
고급 프롬프트 엔지니어링 : AI 생성 응답의 관련성과 품질을 향상시키기 위해 일련의 신중하게 제작 된 프롬프트를 개발했습니다. 이 프롬프트는 AI가 광범위한 쿼리에 대한 유연성을 유지하면서 적절한 답변을 제공하도록 AI를 안내하도록 설계되었습니다. 이를 위해서는 특이성과 일반성의 균형을 맞추려면 여러 반복과 미세 조정이 필요했습니다.
교차 고정 기능 추출 : 한 저장소에서 기능을 추출하고 다른 저장소와의 호환성을 분석하는 시스템의 기능이 고유 한 과제를 제시합니다. 우리는 관련 코드 섹션을 식별 할뿐만 아니라 다른 코드베이스 컨텍스트 내에서의 적합성을 평가하기 위해 알고리즘을 개발했습니다.
동적 코드 분석 : Greptile API를 활용하여 실시간 코드 분석 기능을 구현했습니다. 이를 통해 코드 호환성 및 구현 제안 생성에 대한 온라인 평가가 가능하여 현재 코드 분석 도구로 가능한 것의 경계를 넓힐 수 있습니다.
확장 가능한 아키텍처 : 응용 프로그램은 효율적인 서버 측 렌더링 및 API 경로를 위해 Next.js를 사용하여 확장 성을 염두에두고 설계되었습니다. 이 아키텍처를 통해 성능을 유지하면서 여러 사용자 세션을 동시에 처리 할 수 있습니다.
이러한 기능은 코드 미러러의 기술적 깊이를 보여 주지만 시스템이 여전히 개발 중이라는 점에 주목할 가치가 있습니다. 일부 측면, 특히 채팅 기능 및 프롬프트 엔지니어링은 지속적으로 개선되고 있습니다. 우리는 다양한 사용 사례에 적응할 수있는 유연한 시스템을 만드는 것을 목표로했지만 사용자는 특정 저장소 및 관련된 쿼리에 따라 결과가 다를 수 있음을 알고 있어야합니다.
다음 단계에 따라 프로젝트를 로컬로 설정하고 실행하십시오.
git clone https://github.com/kabir276/GreptileCodeMirrorer.git
cp .env.example .env
.env 파일을 열고 필요한 서비스에 대한 API 키를 입력하십시오 (Greptile, Pinecone, MongoDB 등). npm install
npm run dev
http://localhost:3000 으로 이동합니다.이제 애플리케이션이 로컬 컴퓨터에서 실행 중입니다. 저장소 링크를 제출하고 기능을 탐색하여 CodeCompare를 사용해야합니다.
참고 :이 단계를 시작하기 전에 시스템에 NPM을 설치했는지 확인하십시오.