Skip to content

flging/terminal_assistant

Repository files navigation

터미널 어시스턴트

프로젝트 개요

터미널 어시스턴트는 LLM(Large Language Model)을 활용한 대화형 터미널 제어 시스템입니다. 이 프로그램은 사용자가 자연어로 입력한 명령을 해석하여 적절한 터미널 명령어로 변환하고 실행합니다. RAG(Retrieval-Augmented Generation) 기술을 활용하여 유사한 명령어를 추천하며, 실행 결과를 사용자 친화적인 방식으로 제공합니다.

주요 특징:

  • 자연어 기반 터미널 명령 실행
  • RAG를 이용한 명령어 추천 시스템
  • 직관적인 그래픽 사용자 인터페이스(GUI)
  • 실시간 명령어 실행 및 결과 표시

주의: 이 프로그램은 현재 macOS 운영 체제에서만 동작합니다.

설치 방법

  1. 시스템 요구사항 확인:

    • macOS 운영 체제
    • Python 3.8 이상
    • pip (Python 패키지 관리자)
  2. 프로젝트 클론:

    git clone https://github.com/flging/terminal_assistant.git
    cd terminal_assistant
    
  3. 가상 환경 생성 및 활성화:

    python3 -m venv venv
    source venv/bin/activate
    
  4. 필요한 패키지 설치:

    pip install -r requirements.txt
    
  5. UPSTAGE API 키 준비:

    • https://www.upstage.ai/ 에서 API 키를 발급받으세요.
    • 발급받은 API 키를 안전한 곳에 보관하세요.

사용 방법

  1. 프로그램 실행:

    python main.py
    
  2. API 키 설정:

    • 프로그램 창 상단의 "API Key" 입력 필드에 UPSTAGE API 키를 입력합니다.
    • "Set API Key" 버튼을 클릭하여 키를 설정합니다.
  3. 명령어 입력:

    • 하단의 입력 필드에 원하는 작업을 자연어로 입력합니다.
    • 예: "현재 디렉토리의 파일 목록을 보여줘"
  4. 명령어 실행:

    • 입력 후 "Send" 버튼을 클릭하거나 Enter 키를 누릅니다.
    • 시스템이 입력을 해석하고 적절한 터미널 명령어를 실행합니다.
  5. 결과 확인:

    • 실행된 명령어와 그 결과가 오른쪽 "Command Execution Results" 창에 표시됩니다.
    • 시스템의 응답과 추가 설명은 왼쪽 채팅창에 표시됩니다.
  6. RAG 기능 사용:

    • "Use RAG" 체크박스를 통해 RAG 기능을 켜거나 끌 수 있습니다.
    • RAG가 활성화되면, 시스템은 유사한 명령어를 추천하고 더 정확한 결과를 제공합니다.
  7. 대화 지속:

    • 이전 명령의 컨텍스트를 유지하며 연속적인 작업을 수행할 수 있습니다.
    • 예: "이 중에서 txt 파일만 보여줘"와 같은 후속 명령 가능
  8. 프로그램 종료:

    • 창을 닫거나 터미널에서 Ctrl+C를 눌러 프로그램을 종료합니다.

주의사항:

  • 시스템 명령을 실행하므로, 신뢰할 수 있는 작업만 수행하세요.
  • API 사용에 따른 비용이 발생할 수 있으니 사용량을 모니터링하세요.

DB 파일 설명

이 프로젝트는 RAG(Retrieval-Augmented Generation) 기능을 위해 다음과 같은 DB 관련 파일들을 사용합니다:

UpdateDB.py

이 Python 스크립트는 RAG 데이터베이스를 업데이트하는 데 사용됩니다.

사용 방법:

python UpdateDB.py

이 스크립트를 실행하면 PureDB.json 파일의 내용을 읽어 임베딩을 생성하고, 그 결과를 RAG.json 파일에 저장합니다.

PureDB.json

이 파일은 원본 명령어 데이터베이스입니다. 각 명령어에 대한 설명과 예시를 포함하고 있습니다. UpdateDB.py 스크립트의 입력으로 사용됩니다.

RAG.json

이 파일은 UpdateDB.py 스크립트에 의해 생성되며, 각 명령어의 임베딩 정보를 포함하고 있습니다. 터미널 어시스턴트의 RAG 기능에서 실제로 사용되는 데이터베이스 파일입니다.

주의: RAG.json 파일은 자동으로 생성되므로 직접 수정하지 마세요. 명령어 데이터베이스를 업데이트하려면 PureDB.json 파일을 수정한 후 UpdateDB.py 스크립트를 실행하세요.

저작권 및 사용 조건

이 프로젝트는 [명품인재×업스테이지] LLM Innovators challenge 출품을 위해 제작되었습니다. 모든 저작권은 제작자에게 있으며, 공모전 평가 목적 외의 무단 사용, 복제, 배포를 금지합니다. 본 프로젝트에 대한 문의사항은 아래 연락처로 문의 바랍니다.

About

LLM-based Terminal Assistant for LLM Innovators challenge

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages