장안의 화제!! Github 별 130000개 Auto-GPT 10분만에 써보기
Pre. 서론
AWS Summit을 다녀왔습니다.
Chatgpt 영향력이 엄청나다는 걸 체감한게 AI 관련 부스들이 많더라고요.
그 중에서 AI/ML을 통해 자기가 좋아하는 분위기의 그림을 자동 생성해주는 그런 부스가 있었는데..
솔직히 미드져니가 더 나은 느낌! 이었습니다.
Chatgpt를 실 업무에 활용하시는 분들은 아래와 같습니다.
실제로 자신의 업무를 대체하기에는 무리가 있지만 명확하고 디테일한 설명과 함께 깔끔한 문법구사와 설득력이 놀랍습니다.
보통 gpt를 이용할때 질문-확인-자기의 생각 추가와 같은 단계를 거치게 됩니다.
최근 Chatgpt의 대성공으로 이를 바리에이션하여 많은 비즈니스가 탄생하고 있습니다.
그 중 가장 핫티스트 한 것이 Auto-gpt입니다.
이 글을 작성하는 5월 15일기준으로 Github Stars 13만개를 돌파하였습니다.
openai의 모델 gpt3가 15000개의 stars를 가지고 있으니 고무적인 숫자라고 할 수 있습니다.
그렇다면 Auto-GPT가 무엇이길래 지금 장안의 화제일까요?
그 제작자는 이렇게 소개합니다.
An experimental open-source attempt to make GPT-4 fully autonomous.
GPT-4를 완전히 자율적으로 만들기 위한 실험적인 오픈 소스 시도.
Auto-GPT는 자연어로 된 목표를 받아 하위 작업으로 나누고 인터넷과 기타 도구를 자동으로 활용하여 달성하는
AI 에이전트
아래부터는 실제로 제 맥북 로컬환경에서 실행해보았습니다.
사전준비로는 OpenAI Paid Account가 필요합니다. GPT-4는 많은 리소스와 API 통신을 사용해서 많은 Paid가 발생할 수 있다고 합니다. 저는 가입했을 시 주었던 5달러의 크레딧으로 작업해보았습니다.
1. 준비물
a. Visual Studio Code DevContainer Env
b. Docker
c. Python 3.10 or later
a,b,c 중에 하나만 있으면 된다고 해서 c로 선택해 터미널에서 실행하려 했습니다.
brew 패키지 매니지먼트로 python을 설치해 사용하려 했으나 python3.11이후 버젼부터는 python@3.11이라는 이름으로
directory자체가 bin이 아닌 /usr/local/Cellar 아래에 위치했습니다.
그렇기에 pyenv를 활용해 가상환경에서 진행하였습니다.
➜ ~ brew install pyenv
MacBook-Air pytest % pyenv virtualenv 3.11.3 auto-gpt
MacBook-Air pytest % pyenv local auto-gpt
MacBook-Air pytest % pyenv active auto-gpt
(auto-gpt) MacBook-Air pytest %
### c조건인 python 3.10 later 완료
2. Auto-gpt 설치
(auto-gpt) MacBook-Air pytest % git clone https://github.com/Significant-Gravitas/Auto-GPT.git
Cloning into 'Auto-GPT'...
remote: Enumerating objects: 11819, done.
remote: Counting objects: 100% (830/830), done.
remote: Compressing objects: 100% (577/577), done.
remote: Total 11819 (delta 436), reused 572 (delta 244), pack-reused 10989
Receiving objects: 100% (11819/11819), 6.82 MiB | 10.34 MiB/s, done.
Resolving deltas: 100% (7886/7886), done.
(auto-gpt) MacBook-Air pytest % cd Auto-GPT
(auto-gpt) MacBook-Air Auto-GPT % git fetch --all
(auto-gpt) MacBook-Air Auto-GPT % git checkout stable
branch 'stable' set up to track 'origin/stable'.
Switched to a new branch 'stable'
3. 파이썬 종속성 설치 및 auto-gpt 환경설정 (필수적으로 OpenAI API Key를 연결해주어야 합니다)
자신의 OpenAI API Key는 https://platform.openai.com/account/api-keys 여기서 발급받아 쓸 수 있습니다. (한번 발급받으면 볼수 없으니 발급받을때 복붙해놔야합니다.)
(auto-gpt) MacBook-Air Auto-GPT %pip install -r requirements.txt
Installing collected packages: urllib3-secure-extra, sortedcontainers, py-cpuinfo, playsound, distlib, cymem, wrapt, websocket-client, watchdog, wasabi, urllib3, uritemplate, typing-extensions, tqdm, spacy-loggers, spacy-legacy, soupsieve, sniffio, smmap, smart-open, six, shellingham, regex, redis, pyyaml, python-dotenv, pytest-integration, PySocks, pyrsistent, pyparsing, pyflakes, pycparser, pycodestyle, pyasn1, protobuf, pluggy, platformdirs, Pillow, pathspec, packaging, orjson, oauthlib, numpy, nodeenv, mypy-extensions, murmurhash, multidict, mergedeep, mccabe, MarkupSafe, markdown, lxml, loguru, langcodes, isort, iniconfig, idna, identify, h11, frozenlist, filelock, execnet, exceptiongroup, dnspython, distro, diskcache, cssselect, coverage, colorama, click, charset-normalizer, chardet, cfgv, certifi, catalogue, cachetools, attrs, asynctest, async-timeout, async-generator, abstract-singleton, yarl, wsproto, virtualenv, typer, srsly, rsa, requests, readability-lxml, pyyaml-env-tag, python-dateutil, pytest, pymdown-extensions, pydantic, pyasn1-modules, preshed, outcome, jsonschema, jinja2, httplib2, googleapis-common-protos, gitdb, flake8, cffi, blis, black, beautifulsoup4, autoflake, auto-gpt-plugin-template, anyio, aiosignal, webdriver-manager, vcrpy, trio, tiktoken, requests-oauthlib, pytest-xdist, pytest-mock, pytest-cov, pytest-benchmark, pytest-asyncio, pre-commit, pinecone-client, pathy, httpcore, gTTS, google-auth, gitpython, ghp-import, duckduckgo-search, docker, cryptography, confection, aiohttp, tweepy, trio-websocket, thinc, pytest-recording, pyOpenSSL, openai, mkdocs, httpx, google-auth-httplib2, google-api-core, spacy, openapi-python-client, google-api-python-client, selenium, en-core-web-sm
### 엄청나게 설치한다
(auto-gpt) MacBook-Air Auto-GPT % vi .env.template
### .env.template에서 OPENAI의 API Key를 연결해줌
(auto-gpt) MacBook-Air Auto-GPT % cp .env.template .env
### 위에 템플릿값을 복사해서 실제로 참조하는 .env값으로 복사해줌
4. 실행
벌써 준비는 완료되었습니다. 인제 돌려보면 됩니다!
(auto-gpt) MacBook-Air Auto-GPT % ./run.sh
과연 실제로 생활에서 사용가능성이 있는지 보기 위해 3가지 정도의 프로젝트를 두고 확인해보겠습니다.
주제는 추상적인 질문, 구체적인 기획안, 코딩 정도로 해보겠습니다.
반복은 각각 10번씩으로 진짜 지혼자 자동화 되는지 보겠습니다.
A. 한국에서 연애와 결혼을 하려면 어떻게 해야해?
일단 이 주제로 질문하자 Goals 설정을 해줍니다.
- 한국의 연애, 연애, 결혼에 대해 문화적으로 민감한 조언과 지도를 제공하며, 독특한 사회 규범과 기대를 고려합니다.
- 개인의 필요와 선호도에 따라 건전한 관계를 구축하고 유지하기 위한 개인화된 권장 사항과 전략을 제공합니다.
- 장애물을 극복하기 위한 실질적인 해결책과 지원을 제공함으로써 개인이 관계에서 어려움과 갈등을 극복할 수 있도록 도와줍니다.
- 혼인신고, 비자요건 및 기타 관련 정보를 포함하여 한국 결혼의 법적, 물류적 측면에 대한 자원 및 정보를 제공합니다.
- 지속적으로 배우고 적응하여 한국의 관계와 결혼에 대한 가장 최신의 관련 조언과 지도를 제공합니다.
환경분석, 미시분석, 실질적 해결책 제공, 법적 관련 정보제공, 최신 트렌드를 제공하겠다고 합니다.
그리고 자기의 Plan도 나에게 이야기를 해준다.
- 사용자에게 질문하여 자세한 정보 수집
- 한국의 문화규범과 사회적 기대에 관한 연구
- 파일에 중요한 정보 저장
이렇게 3가지 Plan으로 자기의 Goals를 달성하겠다고 합니다.
그래서 내 정보와 한국의 환경을 조금 적어주었습니다.
입력: 저는 내성적인 성격입니다. 한국 사회는 결혼과 육아에 많은 비용이 듭니다.
이런 개인적 질문에 대해 auto-gpt는 조심스러웠습니다. 아무래도 OpenAI의 API를 따와서 사용하므로 그렇게 느껴졌습니다.
이후로도 내 MBTI와 같은 개인적 정보를 주었습니다.
그러자 이렇게 글을 써주고 파일을 저장시켜주었습니다.
NEXT ACTION: COMMAND = write_to_file ARGUMENTS = {'filename': '/Users/pytest/Auto-GPT/autogpt/auto_gpt_workspace/relationship_advice.txt', 'text': "1. Take time to recharge: As an introverted person, it's important to take time to recharge your energy levels after social interactions. Make sure to schedule time for yourself to do activities that you enjoy and that help you recharge.\n2. Be honest about your needs: In relationships, it's important to be honest about your needs and to communicate them clearly to your partner. As an introverted person, you may need more alone time or quiet time than your partner, and it's important to communicate this in a way that is respectful and clear.\n3. Focus on quality over quantity: As an introverted person, you may prefer deeper, more meaningful connections with fewer people rather than shallow connections with many people. Focus on building quality relationships with people who share your values and interests.\n4. Understand your MBTI type: As an INTP, you may be analytical and logical in your approach to relationships. It's important to understand your own personality traits and how they may impact your approach to relationships, as well as to be open to learning about your partner's personality traits and how they may differ from your own."}
1. 재충전의 시간을 갖자.
2. 요구 사항에 대해 정직하게 생각해라
3. 양보다 질에 초점을 맞춰라.
4. INTP로써 관계에 대한 접근 방식이 분석적이고 논리적일 수 있으므로 그에 맞춰 행동해라.
이런 추상적인 질문에 대한 답변으로 auto-gpt의 답변은 놀라웠습니다...
팩트폭격과 적절한 피드백...
B. 삼성전자에 하이브리드 클라우드 사업제안을 하고 싶어, 구체적인 기획안과 파워포인트를 만들어 줄 수 있을까?
역시 첫번째로 Goals를 설정해 주었습니다.
- 하이브리드 클라우드 기술과 삼성전자의 잠재적 이점에 대한 철저한 연구를 수행합니다.
- 제안된 프로젝트의 목표, 이점 및 구현 계획을 효과적으로 전달하는 포괄적이고 시각적으로 매력적인 PowerPoint 프레젠테이션을 개발합니다.
- 타임라인, 예산 및 리소스 할당 계획을 포함하는 상세 프로젝트 제안서를 작성합니다.
- 제안서와 프레젠테이션이 삼성전자의 구체적인 요구사항과 요구사항에 맞게 작성되었는지 확인합니다.
- 제안 및 프레젠테이션 프로세스 전반에 걸쳐 지속적인 지원과 지침을 제공하여 최종 제품의 품질이 최고가 되도록 보장합니다.
그리고 자신의 계획에 대해 말해줍니다.
- 프로젝트의 목표와 목표를 논의하기 위해 삼성전자와의 미팅 일정을 잡습니다
- 삼성전자의 하이브리드 클라우드 기술 및 잠재적 이점에 대한 연구 수행
- 제안된 프로젝트의 목표, 이점 및 구현 계획을 효과적으로 전달하는 포괄적이고 시각적으로 매력적인 PowerPoint 프레젠테이션 개발
- 타임라인, 예산 및 리소스 할당 계획을 포함하는 상세 프로젝트 제안서 작성
- 제안 및 프레젠테이션 프로세스 전반에 걸쳐 지속적인 지원 및 지침을 제공하여 최종 제품이 최고 품질임을 보장합니다
1. 소개: 하이브리드 클라우드 기술과 삼성전자가 얻을 수 있는 잠재적 이점에 대한 주제를 간략하게 소개합니다.
2. 주요 결과: 확장성, 유연성 및 비용 효율성을 개선하는 능력을 포함하여 하이브리드 클라우드 기술에 대한 연구에서 얻은 주요 결과와 통찰력을 요약합니다.
3. 삼성전자의 이점:
a. 향상된 데이터 관리: 데이터 스토리지 및 관리를 위한 중앙 집중식 플랫폼을 제공하고, 실시간 데이터 분석을 지원하며, 데이터 보안 및 규정 준수를 보장함으로써 삼성전자의 데이터 관리를 개선할 수 있는 하이브리드 클라우드 기술에 대해 설명합니다.
b. 향상된 협업: 직원들이 어디서든 데이터와 애플리케이션에 액세스하고 공유할 수 있도록 지원하고, 실시간 커뮤니케이션과 협업을 촉진하며, 프로젝트 관리와 워크플로우를 개선함으로써 삼성전자에서 하이브리드 클라우드 기술이 협업을 강화하는 방법을 설명합니다.
c. 민첩성 향상: 새로운 애플리케이션과 서비스를 신속하게 구현하고, 온디맨드 확장성과 리소스 할당을 제공하며, 새로운 제품과 서비스의 시장 출시 시간을 단축함으로써 삼성전자에서 하이브리드 클라우드 기술이 어떻게 민첩성을 높일 수 있는지 설명하십시오.
4. 구현 계획: 필요한 인프라, 리소스 및 일정을 포함하여 삼성전자에서 제안하는 하이브리드 클라우드 기술 구현 계획을 개략적으로 설명합니다. 구현 계획이 삼성전자의 구체적인 요구사항과 요구사항을 어떻게 해결할 것인지에 대한 구체적인 세부사항을 제공합니다.
5. 사례 연구: 하이브리드 클라우드 기술을 성공적으로 구현한 다른 기업의 사례와 그들이 경험한 이점을 제공하고, 이러한 이점을 삼성전자에 어떻게 적용할 수 있는지 구체적으로 강조합니다.
6. 결론: 프레젠테이션의 주요 요점을 요약하고 삼성전자에 하이브리드 클라우드 기술이 제공하는 잠재적 이점을 강조합니다. 제안된 프로젝트의 목표, 이점 및 구현 계획을 반복합니다.
4. 슬라이드에 대한 목차도 짜주었습니다.
슬라이드 1: 소개
- 제목: 삼성전자에 하이브리드 클라우드 기술의 이점
- 하이브리드 클라우드 기술과 삼성전자의 잠재적 이점에 대한 주제 소개
- 프레젠테이션 내용의 간략한 개요
슬라이드 2: 주요 결과
- 제목: 하이브리드 클라우드 기술에 대한 주요 결과
- 하이브리드 클라우드 기술에 대한 연구에서 얻은 주요 결과 및 통찰력 요약
- 향상된 확장성, 유연성 및 비용 효율성을 비롯한 하이브리드 클라우드 기술의 이점 강조
슬라이드 3: 향상된 데이터 관리
- 제목: 하이브리드 클라우드 기술로 데이터 관리 개선
- 삼성전자에서 하이브리드 클라우드 기술이 데이터 관리를 개선하는 방법에 대한 설명
- 하이브리드 클라우드 기술이 데이터 스토리지 및 관리를 위한 중앙 집중식 플랫폼을 제공하고 실시간 데이터 분석을 지원하며 데이터 보안 및 규정 준수를 보장하는 방법에 대한 구체적인 예
슬라이드 4: 향상된 협업
- 제목: 하이브리드 클라우드 기술을 통한 향상된 협업
- 삼성전자에서 하이브리드 클라우드 기술이 협업을 강화하는 방법에 대한 설명
- 하이브리드 클라우드 기술을 통해 직원들이 어디서든 데이터 및 애플리케이션에 액세스 및 공유하고, 실시간 커뮤니케이션 및 협업을 촉진하며, 프로젝트 관리 및 워크플로우를 개선하는 방법에 대한 구체적인 예
슬라이드 5: 민첩성 향상
- 제목: 하이브리드 클라우드 기술로 민첩성 향상
- 삼성전자에서 하이브리드 클라우드 기술이 민첩성을 높이는 방법에 대한 설명
- 하이브리드 클라우드 기술을 통해 새로운 애플리케이션 및 서비스를 신속하게 구현하고, 온디맨드 확장성 및 리소스 할당을 제공하며, 새로운 제품 및 서비스의 출시 기간을 단축하는 방법에 대한 구체적인 예
슬라이드 6: 구현 계획
- 제목: 삼성전자의 하이브리드 클라우드 기술 구현 계획
- 삼성전자 하이브리드 클라우드 기술 구현 방안 제안 개요
- 구현 계획에 필요한 인프라, 리소스 및 일정에 대한 구체적인 세부 정보
- 구현 계획이 삼성전자의 구체적인 요구사항과 요구사항을 어떻게 해결할 것인지 강조
슬라이드 7: 사례 연구
- 제목: 하이브리드 클라우드 기술에 대한 사례 연구
- 하이브리드 클라우드 기술을 성공적으로 구현한 다른 기업의 사례 및 그들이 경험한 이점
- 이러한 이점을 삼성전자에 적용할 수 있는 방법에 대한 구체적인 강조
슬라이드 8: 결론
- 제목: 결론: 삼성전자에 하이브리드 클라우드 기술의 이점
- 프레젠테이션의 핵심 요점 요약
- 삼성전자에 하이브리드 클라우드 기술의 잠재적 이점 강조
- 제안된 프로젝트의 목표, 이점 및 구현 계획의 반복
여기서 퍼포먼스에 대해 놀랐습니다;;
C. 로그인과 쓰기 기능을 가진 웹사이트를 만들어줘
결론적으로 이 작업은 실패했습니다.
Auto-gpt의 기본 모델자체가 구글링 -> 크롤링 -> 정리 -> Command 수행이기에 많은 양의 작업이 필요한 사이트의 경우는 Wix나 Shopify와 같은 홈페이지 제작사이트를 이용하고 그것을 효율적으로 이용 하는 방법에 대해서 정리해주었습니다.
나는 그런 것 보다 간단한 기능이 구현된 사이트를 만들어보고 싶다고 했더니 test_server.py라는 파이썬 파일을 만들어 주었습니다.
몇가지 코드를 알려주긴 했지만 Stackoverflow에서 아주 쉽게 찾아볼 수 있는 레벨의 코드였습니다.
gpt 4.0의 경우는 maillist에 있어야만 사용이 가능하기에 사용할 수 없었지만 4.0의 레벨로도 안될 것 같았습니다.
5. 결론
나온지 2개월 된 auto-gpt는 쉽고 재미있고 강력한 솔루션임에는 분명해보이지만 구글링 -> 크롤링 -> 정리 -> txt파일과 같은 형식, elevenlabs와 같은 text to speech형태를 이용하는 것이 아직까지는 강력해보입니다.
이를 활용한다면 유튜브의 정보전달이나 명언 유튜브 같은건 아주 쉽게 제작할 수 있을 것이라 생각하고 이미 그것을 이용해 수익창출을 해내는 사람들이 많은 것 같습니다.
하지만 깊이가 깊고 전문적인 수준을 요구하는 작업에서는 아직까지는 큰 도움을 주지 못할 것이라 생각됩니다.
제가 생각한 활용방식은 다음과 같습니다.
1. 기획안 만들기
2. 연구/개발 전체적 흐름도 짜기
3. 비즈니스 모델 추천받기
4. 기사작성
5. 추상적인 말들에 대한 구체화
6. 유튜브 컨텐츠 제작
만약 실제로 써보는 과정에서 어려움이 있다면 알려주세요!