내 잡다한 노트

Cursor 동작 원리 본문

AI

Cursor 동작 원리

peanutwalnut 2024. 11. 24. 00:30

출처 : https://chucoding.tistory.com/143

 

 

다이어그램의 구성

1. 주요 구성 요소

  • Actor: 일반적인 사용자입니다. 코딩 작업을 수행하거나, 질문(Query)을 입력하여 도움을 받으려고 합니다.
  • 클라이언트: 사용자(Actor)가 작업을 수행하는 로컬 환경입니다. 코드 작성, 코드베이스 조회, 쿼리 입력 등을 처리합니다.
  • 서버: 코드를 분석하고, 임베딩을 생성하여 벡터 데이터베이스(Vector DB)에 저장하거나 검색을 수행하는 백엔드 서버입니다.

 

2. 주요 흐름과 동작

1) 일반적인 코딩 작업

  • 사용자가 코딩을 수행합니다.
  • 프라이버시 모드 ON/OFF:
    • ON: 코드를 벡터 DB에 전송하거나 저장하지 않음(사용자 데이터가 보호됨).
    • OFF: 코드를 분석(Chunking)하여 서버로 전송, 벡터 DB에 인덱싱.

2) 코드 분석 및 저장

(a) Chunking

  • 코드를 분석하여 **작은 단위(Chunk)**로 나눕니다.
  • 예를 들어, 함수, 클래스, 주석 단위로 분리.
  • 이 과정은 효율적인 검색과 임베딩 생성을 위해 필요합니다.

(b) Embedding (임베딩 생성)

  • 각 코드 Chunk를 숫자 벡터로 변환합니다.
  • OpenAI API 같은 자연어 처리 모델을 활용하여 의미를 담은 벡터를 생성.
    • 예: 함수 "add(a, b)" → [0.23, 0.87, 0.11...]와 같은 벡터.

(c) Indexing

  • 생성된 벡터를 **Vector DB(Pinecone)**에 저장.
  • 함께 저장되는 정보:
    1. 코드 조각의 벡터 값.
    2. 파일 이름 및 줄 번호.
    3. 파일의 메타정보.

 

3) 코드베이스를 활용한 검색

(a) 쿼리 입력

  • 사용자는 질문이나 요청(Query)을 입력합니다.
    • 예: "Python에서 파일 읽는 함수 찾기".

(b) Privacy Mode

  • 프라이버시 모드 ON:
    • 코드베이스에서 쿼리 결과를 검색 가능.
    • 하지만 민감한 데이터는 서버에 전송되지 않음(기능이 제한적).
  • 프라이버시 모드 OFF:
    • 쿼리를 서버로 전송하여 검색 결과를 반환받음.
    • 벡터 DB에서 유사도를 계산하고 관련 결과를 제공.

(c) Retrieval

  • 입력된 쿼리(자연어)를 벡터로 변환.
  • Vector DB에서 유사한 벡터를 검색하여, 해당 코드 조각을 반환.

 

4) 검색 결과와 코드 생성

(a) Prompt 생성 (make prompt)

  • 검색된 코드 조각들을 기반으로 AI 모델에 전달할 **프롬프트(prompt)**를 생성.
  • 프롬프트는 사용자의 요청과 검색된 코드 조각의 맥락을 포함.

(b) Code Generating by LLM (Large Language Model)

  • GPT-4, GPT-3.5, Cursor-small 같은 대형 언어 모델(LLM)이 프롬프트를 바탕으로 코드를 생성하거나 문제를 해결.
  • 결과물:
    • 질문에 대한 코드 제안.
    • 코드 수정 또는 개선.
    • 관련 코드 파일 및 메타정보를 제공.

 

3. 용어 설명

  1. Chunking:
    • 대규모 코드베이스를 작은 단위로 분할하는 작업.
    • 효율적인 검색 및 임베딩 생성을 위해 필수.
  2. Embedding:
    • 코드나 텍스트 데이터를 **벡터(숫자로 이루어진 배열)**로 변환.
    • 이 벡터는 데이터의 의미나 맥락을 포함.
  3. Indexing:
    • 생성된 벡터와 메타데이터를 데이터베이스(Vector DB)에 저장.
    • 빠른 검색을 위해 데이터 구조화.
  4. Retrieval:
    • 벡터 데이터베이스에서 유사한 데이터를 검색.
  5. Prompt:
    • AI 모델에게 작업을 요청하는 텍스트 입력.
    • 검색 결과와 사용자의 요청을 조합하여 모델이 더 정확한 답을 생성하도록 도와줌.

'AI' 카테고리의 다른 글

생성형 AI란  (2) 2024.11.23