안녕하세요! 오늘은 Open Interpreter라는 새로운 컴퓨터 인터페이스를 소개해 드리겠습니다. Open Interpreter는 언어 모델이 코드를 실행할 수 있게 함으로써, 컴퓨터의 일반적인 능력에 대한 자연어 인터페이스를 제공합니다. 예를 들면 Chrome 브라우저 제어, 파일형식 변환, 대용량 데이터셋 플로팅, 정리 및 분석 등 다양한 작업에 대한 자연어 기반 명령을 통해 Open Interpreter가 코드 실행 및 작업 수행을 가능하게 합니다. 이 블로그에서는 Open Interpreter 설치방법과 오픈소스 대규모 언어모델인 Ollama를 활용한 컴퓨터 작업수행 방법 등에 대해서 확인하실 수 있습니다.
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
프로젝트 개요 및 Open Interpreter
Open Interpreter는 깃허브에서 별을 4만회 가까이 받고 있는 인기 있는 오픈소스이며, ChatGPT와 대화하듯이 내 컴퓨터에서 이루어지는 브라우저 제어, 파일 제어, 문서 내용 분석 등 다양한 작업을 자연어 기반 명령으로 실행할 수 있습니다.
예를 들면 "Open Chrome and go to YouTube"라고 명령어를 입력하면 브라우저가 실행되고, 유튜브가 열립니다. 또는 "Convert sample.png to jpeg"라고 입력하면 파일형식을 변환할 수 있으며, "Summerize this document E:\sample.pdf"라고 입력하면 pdf 문서의 내용을 요약해서 표시해 줍니다.
다음은 깃허브의 Open Interpreter 소개 페이지입니다.
https://github.com/KillianLucas/open-interpreter
Open Interpreter는 로컬에서 코드를 실행할 수 있는 도구로, 자연어 기반 대화 형태로 컴퓨터의 다양한 작업에 접근할 수 있도록 해주는 것이 주된 목적입니다. 이 도구를 사용하면 터미널에서 ChatGPT와 유사한 인터페이스를 통해 Open Interpreter와 대화하고 여러 작업을 수행할 수 있습니다. 주요 기능 및 특징은 다음과 같습니다.
- 로컬 코드 실행: Open Interpreter는 Python, Javascript, Shell 등 여러 언어로 작성된 코드를 로컬에서 실행할 수 있습니다.
- 사진, 비디오, PDF 생성 및 편집: Open Interpreter를 사용하여 사진, 비디오, PDF 등의 다양한 미디어를 생성하고 편집할 수 있습니다.
- Chrome 브라우저 제어: 연구 목적으로 Chrome 브라우저를 제어하여 웹 탐색 등을 수행할 수 있습니다.
- 대용량 데이터셋 플로팅 및 분석: 큰 데이터셋을 플로팅 하고 정리하며 분석하는 작업을 수행할 수 있습니다.
- 대화 형 인터페이스: 자연어로 작성된 명령을 사용하여 컴퓨터의 일상적인 작업을 수행할 수 있습니다.
Open Interpreter는 오픈소스로 제공되며 로컬 환경에서 실행되고, 온라인 서비스와는 달리 인터넷 접근이 가능하며, 제한된 패키지나 용량에 구애받지 않고 자유롭게 사용할 수 있습니다. 또한 OpenAI의 Code Interpreter와 비교하여 몇 가지 장점이 있습니다.
- 인터넷 액세스 가능
- 제한 없는 라이브러리 및 패키지 액세스
- 파일 크기 및 실행 시간제한 없음
- 로컬 환경에서 실행되므로 환경이 종료되면 상태가 초기화되지 않음
환경설정 및 종속성 설치
다음은 환경설정 및 종속성 설치단계입니다. 먼저 아래 화면과 같이 아나콘다 파워쉘 프롬프트에서 "conda create -n name" 명령어로 새로운 가상환경을 만듭니다. 저는 가상환경 이름을 openip로 설정하였습니다.
다음은 아래 화면과 같이 "conda activate openip" 명령어로 가상환경을 활성화한 후, "pip install open-interpreter" 명령어로 종속성을 설치해 줍니다. 종속성 설치는 이 명령어 한 줄로 완료됩니다.
Open Interpreter 실행
다음은 Open Interpreter 실행단계입니다. Open Interpreter를 실행하기 전 WSL 프롬프트 상에서 "ollama serve" 명령어를 입력하여 ollama를 입력하여 http://127.0.0.1:11434의 주소에서 ollama가 실행되고 있는지 확인합니다. 그리고 "ollama run mistral" 명령어를 입력하고 대규모 언어 모델 Mistral 7B를 구동합니다.
다음은 가상환경이 활성화된 명령어 프롬프트 상에서 "interpreter --model ollama/mistral"을 입력하여 Open Interpreter를 실행합니다. 정상적으로 실행되면 아래 화면과 같이 대규모 언어 모델이 ollama/mistral로 설정되었다는 안내 메시지가 나오며 프롬프트가 ">"로 변경됩니다.
브라우저 실행 및 사이트 제어
이제 Open Interpreter에게 크롬을 열고 유튜브에 접속해 달라고 명령을 입력해 보겠습니다. Mistral 7B 언어 모델은 한글이 원활하게 인식되지 안되므로 영어로 "Open Chrome and go to YouTube"를 입력합니다.
명령을 인식한 Open Interpreter는 어떻게 명령을 실행할 것인지 계획을 세웠는데요. 저에게는 Selenium webdriver를 이용해서 크롬을 열고, 유튜브를 접속하는 방법을 사용할 것이라고 알려주었습니다. Selenium는 웹 브라우저를 제어하고, 사용자와 웹 사이트 간의 상호작용을 자동으로 수행할 수 있도록 도와주는 라이브러리입니다. 대표적으로 Chrome, Firefox, Safari 등을 지원하며, 이를 통해 웹 페이지를 열고, 클릭, 텍스트 입력, 폼 제출 등의 작업을 수행할 수 있습니다.
그다음 Open Interpreter는 Selenium webdriver가 가상환경에 설치되었는지 확인한 후, 아래화면과 같이 크롬을 열고 유튜브에 자동으로 접속하기 위한 파이썬 코드를 스스로 작성합니다. 참고로 언어 모델이 명령어에 응답하는 내용은 같은 언어 모델이라도 매번 달라집니다.
파이썬 코드 작성이 완료되면 코드의 실행여부를 사용자에게 물어보며, 이때 "y"를 입력하면 코드가 실행되고 아래 화면과 같이 유튜브 크롬창이 자동으로 뜨게 됩니다.
이미지 파일형식 변환
다음은 이미지 파일의 포맷을 변경해 보겠습니다. png 형식의 이미지를 jpg 형식으로 변경하기 위해 "change the image format from png to jpg E:\240126\Figure_1.png"라고 명령어를 입력하면 아래 화면과 같이 ImageMagick이라는 프로그램을 통해서 명령어를 실행하는 방법을 알려주고 명령어를 실행할지 물어봅니다. ImageMagick 프로그램이 설치되지 않은 경우에는 설치 사이트를 안내해 줍니다.
여기서 한 가지 아쉬운 점은 Open Interpreter는 "convert" 명령어를 제안하지만, ImageMagick 프로그램의 명령어는 "magick" 이기 때문에 이 명령은 동작하지 않는다는 것입니다. 제가 명령어를 수정해서 알려주었지만 Open Interpreter Mistral 7B는 자동화 명령어 제안을 변경하지 않았습니다. 저는 ImageMagick이 설치된 폴더의 magick.exe의 이름을 convert.exe로 변경하여 이미지 파일의 형식을 변환할 수 있었습니다. 사용자 명령어 부분은 더 개선이 필요한 것 같습니다.
PDF 파일 요약 및 대화
다음은 pdf 파일을 요약해 보겠습니다. 이전과 동일하게 ollama serve 실행 후, 가상환경이 활성화된 명령어 프롬프트 상에서 "interpreter --model ollama/mistral"을 입력하여 Open Interpreter를 실행합니다. pdf 파일 요약을 위해 "Summerize this document E:\sample.pdf" 형식으로 명령어를 입력합니다.
명령을 인식한 Open Interpreter는 pdf파일 요약을 위한 파이썬 코드를 자동으로 작성하였습니다. 코드 실행여부에 "y"를 입력하면 아래 화면과 같이 pdf 파일의 요약이 생성되며, pdf 내용에 대한 질문에도 자세하게 응답해 주었습니다.
논문의 저자들은 1억 건 이상의 합성 정리와 해당 증명을 추출했습니다. 그 중 많은 증명은 200개 이상의 증명단계를
포함하고 있습니다. 그들은 합성적인 증명 생성에서 의존성 차이 개념을 정의하며, 이는 순수한 기호적 추론을 넘어서
외부 지점을 구성하는 것을 허용합니다. 그들은 생성된 모든 데이터에서 언어 모델을 사전 훈련하고 증명 검색 중에
보조 구성물을 위해 이를 세밀하게 조정합니다. 제안된 기하학 정리 증명기인 AlphaGeometry는 인간이 이해할 수 있는
증명을 생성하며, 이전 최첨단 기하학 정리 증명 프로그램을 능가하여 평균 IMO 금메달 수준의 성능에 가까워집니다.
다음은 pdf 내용 질문에 대해 Open Interpreter가 응답한 내용입니다.
이 문서에 따르면 AlphaGeometry는 대규모 언어 모델과 기호 엔진의 기능을 결합한 기하학적 정리 증명기로서 소개됩니다.
AlphaGeometry는 사전 훈련된 언어 모델을 사용하여 외생적인 증명 용어(보조 구성물)를 생성하면서, 타당성 추론에 대해서는
전문화된 기호 엔진을 의존합니다. 이 접근 방식은 AlphaGeometry가 복잡한 기하학적 문제를 더 효율적으로 처리하고
가독성 있는 증명을 생성할 수 있게 합니다.
문서는 또한 언어 모델이 합성 증명 용어를 생성하는 능력이 순수한 기호적 방법만으로는 달성하기 어려운 것을 넘어선다고
설명합니다. 이 모델은 정리의 범위를 확장하는 새로운 점, 구성물, 그리고 관계를 만들어내며, 이는 순수한 기호적 방법
만으로는 충분하지 않은 복잡한 기하학적 문제를 다루는 데 중요합니다.
문서에서는 AlphaGeometry에 대한 구체적인 구현 세부 정보나 코드 조각은 제공되지 않았습니다. 이 문서는 주로 시스템의
아키텍처, 각 구성 요소(언어 모델, 기호 엔진, 인터페이스/제어)의 역할, 그리고 기하학적 정리 증명에서의 장점, 개요 및
설명을 제공하였습니다.
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
마치며
이 블로그에서는 Open Interpreter를 활용하여 자연어로 컴퓨터를 제어하는 방법과 주요 기능에 대한 소개를 살펴보았습니다. Open Interpreter는 로컬에서 코드를 실행하고 다양한 작업을 자연어 명령으로 수행할 수 있는 강력한 도구입니다. 환경 설정 및 종속성 설치, Open Interpreter 실행, 브라우저 제어, 이미지 파일 형식 변환, PDF 파일 요약 등 다양한 예시를 통해 Open Interpreter의 활용 방법을 확인하였습니다.
또한, 오픈소스 대규모 언어 모델인 Mistral 7B를 활용하여 자연어 처리 작업을 수행하는 모습도 확인할 수 있었습니다. 여러분도 한번 Open Interpreter를 활용해서 다양한 작업을 자연어로 컴퓨터에게 시켜보시면 어떨까요? 저는 그럼 다음시간에 더욱 유익하고 흥미로운 정보를 가지고 다시 찾아뵙겠습니다. 감사합니다!
2024.01.19 - [분류 전체보기] - Ollama, Langchain, Streamlit으로 대규모 언어 모델 기반 PDF 챗봇 만들기
'AI 도구' 카테고리의 다른 글
오픈 API로 날씨 미세먼지 정보 자동업데이트 디스플레이 만들기 (4) | 2024.01.29 |
---|---|
Ollama Python 라이브러리와 RAG으로 웹 사이트 요약하기 (4) | 2024.01.28 |
대규모 언어 모델을 활용한 고객리뷰 분석(feat. Solar, Mistral) (0) | 2024.01.10 |
텍스트 임베딩을 이용한 벡터검색 Q&A 시스템 만들기 (5) | 2024.01.07 |
고성능 그래픽카드 없이도 실시간 이미지 생성 가능! KREA AI (4) | 2023.12.11 |