Spaces:
Sleeping
Translations:
๋ชฉํ
์ด Python ์คํฌ๋ฆฝํธ๋ AI ๊ธฐ๋ฐ ์์ ๊ด๋ฆฌ ์์คํ ์ ์์์ ๋๋ค. ์ด ์์คํ ์ OpenAI ๋ฐ Pinecone API๋ฅผ ์ฌ์ฉํ์ฌ ์์ ์ ์์ฑํ๊ณ , ์ฐ์ ์์๋ฅผ ์ง์ ํ๊ณ , ์คํํฉ๋๋ค. ์ด ์์คํ ์ ๊ธฐ๋ณธ ์์ด๋์ด๋ ์ด์ ์์ ์ ๊ฒฐ๊ณผ์ ๋ฏธ๋ฆฌ ์ ์๋ ๋ชฉํ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์ ์ ์์ฑํ๋ค๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์คํฌ๋ฆฝํธ๋ OpenAI์ ์์ฐ์ด ์ฒ๋ฆฌ(NLP) ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ฌ ๋ชฉํ์ ๋ฐ๋ผ ์ ์์ ์ ์์ฑํ๊ณ Pinecone์ ์ปจํ ์คํธ์ ๋ง๊ฒ ์์ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅ ๋ฐ ๊ฒ์ํฉ๋๋ค. ์ด๊ฒ์ ์๋์ ์์ ๊ธฐ๋ฐ ์์จ ์์ด์ ํธ (2023๋ 3์ 28์ผ)๋ฅผ ์ถ์ํ ๋ฒ์ ์ ๋๋ค.
์ด README์์๋ ๋ค์ ๋ด์ฉ์ ๋ค๋ฃน๋๋ค:
์๋ ๋ฐฉ์
์คํฌ๋ฆฝํธ๋ ๋ค์ ๋จ๊ณ๋ฅผ ์ํํ๋ ๋ฌดํ ๋ฃจํ๋ฅผ ์คํํ์ฌ ์๋ํฉ๋๋ค:
- ์์ ๋ชฉ๋ก์์ ์ฒซ ๋ฒ์งธ ์์ ์ ๊ฐ์ ธ์ต๋๋ค.
- ์คํ ์์ด์ ํธ๋ก ์์ ์ ์ ์กํ๊ณ , ์คํ ์์ด์ ํธ๋ OpenAI์ API๋ฅผ ์ฌ์ฉํ์ฌ ์ปจํ ์คํธ์ ๋ฐ๋ผ ์์ ์ ์๋ฃํฉ๋๋ค.
- ๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ฐํ์ฌ Pinecone์ ์ ์ฅํฉ๋๋ค.
- ์ ์์
์ ์์ฑํ๊ณ ๋ชฉํ์ ์ด์ ์์
์ ๊ฒฐ๊ณผ์ ๋ฐ๋ผ ์์
๋ชฉ๋ก์ ์ฐ์ ์์๋ฅผ ๋ค์ ์ง์ ํฉ๋๋ค.
execution_agent() ํจ์๋ OpenAI API๊ฐ ์ฌ์ฉ๋๋ ๊ณณ์ ๋๋ค. ์ด ํจ์๋ ๋ชฉํ์ ์์ ์ด๋ผ๋ ๋ ๊ฐ์ง ๋งค๊ฐ ๋ณ์๋ฅผ ๋ฐ์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ OpenAI์ API์ ํ๋กฌํํธ๋ฅผ ์ ์กํ์ฌ ์์ ์ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํฉ๋๋ค. prompt๋ AI ์์คํ ์ ์์ , ๋ชฉํ ๋ฐ ์์ ์์ฒด์ ๋ํ ์ค๋ช ์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ๊ฒฐ๊ณผ๋ ๋ฌธ์์ด๋ก ๋ฐํ๋ฉ๋๋ค.
task_creation_agent() ํจ์๋ OpenAI์ API๋ฅผ ์ฌ์ฉํ์ฌ ๋ชฉํ์ ์ด์ ์์ ์ ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ ์์ ์ ์์ฑํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ด ํจ์๋ ๋ชฉํ, ์ด์ ์์ ์ ๊ฒฐ๊ณผ, ์์ ์ค๋ช , ํ์ฌ ์์ ๋ชฉ๋ก์ ๋ค ๊ฐ์ง ๋งค๊ฐ ๋ณ์๋ฅผ ๋ฐ์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ด ํจ์๋ ์ ์์ ๋ชฉ๋ก์ ๋ฌธ์์ด๋ก ๋ฐํํ๋ OpenAI์ API์ ํ๋กฌํํธ๋ฅผ ๋ณด๋ ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ด ํจ์๋ ์ ์์ ์ ์ฌ์ ๋ชฉ๋ก์ผ๋ก ๋ฐํํ๋ฉฐ, ๊ฐ ์ฌ์ ์๋ ์์ ์ ์ด๋ฆ์ด ํฌํจ๋ฉ๋๋ค.
prioritization_agent() ํจ์๋ ์์ ๋ชฉ๋ก์ ์ฐ์ ์์๋ฅผ ์ฌ์ง์ ํ๊ธฐ ์ํด OpenAI์ API๋ฅผ ์ฌ์ฉํ๋ ๊ณณ์ ๋๋ค. ์ด ํจ์๋ ํ๋์ ๋งค๊ฐ๋ณ์, ์ฆ ํ์ฌ ์์ ์ ID๋ฅผ ๋ฐ์ต๋๋ค. ์ด ํจ์๋ OpenAI์ API์ ํ๋กฌํํธ๋ฅผ ์ ์กํ์ฌ ์ฐ์ ์์๊ฐ ์ฌ์ง์ ๋ ์์ ๋ชฉ๋ก์ ๋ฒํธ๊ฐ ๋งค๊ฒจ์ง ๋ชฉ๋ก์ผ๋ก ๋ฐํํฉ๋๋ค.
๋ง์ง๋ง์ผ๋ก, ์ด ์คํฌ๋ฆฝํธ๋ Pinecone์ ์ฌ์ฉํ์ฌ ์ปจํ ์คํธ์ ๋ง๋ ์์ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ๊ณ ๊ฒ์ํฉ๋๋ค. ์ด ์คํฌ๋ฆฝํธ๋ YOUR_TABLE_NAME ๋ณ์์ ์ง์ ๋ ํ ์ด๋ธ ์ด๋ฆ์ ๊ธฐ๋ฐ์ผ๋ก Pinecone ์ธ๋ฑ์ค๋ฅผ ์์ฑํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ Pinecone์ ์ฌ์ฉํ์ฌ ์์ ๊ฒฐ๊ณผ๋ฅผ ์์ ์ด๋ฆ ๋ฐ ์ถ๊ฐ ๋ฉํ๋ฐ์ดํฐ์ ํจ๊ป ์ธ๋ฑ์ค์ ์ ์ฅํฉ๋๋ค.
์ฌ์ฉ ๋ฐฉ๋ฒ
์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ๋ฐ๋ผ์ผ ํฉ๋๋ค:
git clone https://github.com/yoheinakajima/babyagi.git
๊ณผcd
๋ฅผ ํตํด ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ๋ณต์ ํ๊ณ ๋ณต์ ๋ ๋ฆฌํฌ์งํ ๋ฆฌ์ ์ ์ฅํฉ๋๋ค.- ํ์ํ ํจํค์ง๋ฅผ ์ค์นํฉ๋๋ค:
pip install -r requirements.txt
- .env.example ํ์ผ์ .env์ ๋ณต์ฌํฉ๋๋ค:
cp .env.example .env
. ์ฌ๊ธฐ์์ ๋ค์ ๋ณ์๋ฅผ ์ค์ ํฉ๋๋ค. - OPENAI_API_KEY, OPENAPI_API_MODEL, PINECONE_API_KEY ๋ณ์์ OpenAI ๋ฐ Pinecone API ํค๋ฅผ ์ค์ ํฉ๋๋ค.
- PINECONE_ENVIRONMENT ๋ณ์์์ Pinecone ํ๊ฒฝ์ ์ค์ ํฉ๋๋ค.
- ์์ ๊ฒฐ๊ณผ๊ฐ ์ ์ฅ๋ ํ ์ด๋ธ์ ์ด๋ฆ์ TABLE_NAME ๋ณ์์ ์ค์ ํฉ๋๋ค.
- (์ ํ ์ฌํญ) OBJECTIVE ๋ณ์์ ์์ ๊ด๋ฆฌ ์์คํ ์ ๋ชฉ์ ์ ์ค์ ํฉ๋๋ค.
- (์ ํ ์ฌํญ) ์์คํ ์ ์ฒซ ๋ฒ์งธ ์์ ์ INITIAL_TASK ๋ณ์์ ์ค์ ํฉ๋๋ค.
- ์คํฌ๋ฆฝํธ๋ฅผ ์คํํฉ๋๋ค.
์์ ๋ชจ๋ ์ต์ ๊ฐ์ ์ปค๋งจ๋ ๋ผ์ธ์์๋ ์ง์ ํ ์ ์์ต๋๋ค.
๋์ปค ์ปจํ ์ด๋๋ก ์คํํ๊ธฐ
์ ์ ์กฐ๊ฑด์ผ๋ก ๋์ปค์ ๋์ปค-์ปดํฌ์ฆ๊ฐ ์ค์น๋์ด ์์ด์ผ ํฉ๋๋ค. Docker ๋ฐ์คํฌํฑ์ด ๊ฐ์ฅ ๊ฐ๋จํ ์ต์ ์ ๋๋ค(https://www.docker.com/products/docker-desktop/).
๋์ปค ์ปจํ ์ด๋๋ก ์์คํ ์ ์คํํ๋ ค๋ฉด ์์ ๋จ๊ณ์ ๋ฐ๋ผ .env ํ์ผ์ ์ค์ ํ ๋ค์ ๋ค์์ ์คํํฉ๋๋ค:
docker-compose up
์ง์๋๋ ๋ชจ๋ธ
์ด ์คํฌ๋ฆฝํธ๋ ๋ชจ๋ OpenAI ๋ชจ๋ธ๊ณผ Llama.cpp๋ฅผ ํตํ Llama์์ ์๋ํฉ๋๋ค. ๊ธฐ๋ณธ ๋ชจ๋ธ์ gpt-3.5-turbo์ ๋๋ค. ๋ค๋ฅธ ๋ชจ๋ธ์ ์ฌ์ฉํ๋ ค๋ฉด OPENAI_API_MODEL์ ํตํด ์ง์ ํ๊ฑฐ๋ ์ปค๋งจ๋ ๋ผ์ธ์ ์ฌ์ฉํ์ธ์.
Llama
์ต์ ๋ฒ์ ์ Llama.cpp๋ฅผ ๋ค์ด๋ก๋ํ๊ณ ์ง์นจ์ ๋ฐ๋ผ ์ ์ํ์ธ์. ๋ํ Llama ๋ชจ๋ธ ์ถ๊ฐ ํ์ํฉ๋๋ค.
- ์ด๋ ํ ๊ฒฝ์ฐ์๋ ์ด์, ํ ๋ก ๋๋ ํ ๋ฆฌํ์คํธ๋ฅผ ํฌํจํ์ฌ ์ด ๋ฆฌํฌ์งํ ๋ฆฌ์ ์ด๋ ๊ณณ์์๋ IPFS, ๋ง๊ทธ๋ท ๋งํฌ ๋๋ ๋ชจ๋ธ ๋ค์ด๋ก๋์ ๋ํ ๊ธฐํ ๋งํฌ๋ฅผ ๊ณต์ ํด์๋ ์ ๋ฉ๋๋ค. ์ฆ์ ์ญ์ ๋ฉ๋๋ค.
๊ทธ ํ llama/main
์ llama.cpp/main์ ์ฐ๊ฒฐํ๊ณ models
์ Llama ๋ชจ๋ธ ๊ฐ์ค์น๊ฐ ์๋ ํด๋์ ์ฐ๊ฒฐํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ OPENAI_API_MODEL=llama
๋๋ -l
์ธ์๋ฅผ ์ฌ์ฉํ์ฌ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํฉ๋๋ค.
๊ฒฝ๊ณ
์ด ์คํฌ๋ฆฝํธ๋ ์์ ๊ด๋ฆฌ ์์คํ ์ ์ผ๋ถ๋ก์ ๊ณ์์ ์ผ๋ก ์คํ๋๋๋ก ๋์์ธ๋์์ต๋๋ค. ์ด ์คํฌ๋ฆฝํธ๋ฅผ ๊ณ์ ์คํํ๋ฉด API ์ฌ์ฉ๋์ด ๋์์ง ์ ์์ผ๋ฏ๋ก ์ฑ ์๊ฐ ์๊ฒ ์ฌ์ฉํ์๊ธฐ ๋ฐ๋๋๋ค. ๋ํ ์ด ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๋ ค๋ฉด OpenAI ๋ฐ Pinecone API๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์ค์ ๋์ด ์์ด์ผ ํ๋ฏ๋ก ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๊ธฐ ์ ์ API๋ฅผ ์ค์ ํ๋์ง ํ์ธํ์ธ์.
๊ธฐ์ฌ
๋งํ ํ์๋ ์์ด, BabyAGI๋ ์์ง ์ด๊ธฐ ๋จ๊ณ์ ์์ผ๋ฏ๋ก ์์ง ๋ฐฉํฅ๊ณผ ๋จ๊ณ๋ฅผ ๊ฒฐ์ ํ๊ณ ์์ต๋๋ค. ํ์ฌ BabyAGI์ ํต์ฌ ์ค๊ณ ๋ชฉํ๋ ์ดํดํ๊ธฐ ์ฝ๊ณ ๊ตฌ์ถํ๊ธฐ ์ฝ๋๋ก ๋จ์ํ๊ฒ ๋ง๋๋ ๊ฒ์ ๋๋ค. ์ด๋ฌํ ๋จ์์ฑ์ ์ ์งํ๊ธฐ ์ํด PR์ ์ ์ถํ ๋ ๋ค์ ๊ฐ์ด๋๋ผ์ธ์ ์ค์ํด ์ฃผ์๊ธฐ ๋ฐ๋๋๋ค:
- ๊ด๋ฒ์ํ ๋ฆฌํฉํ ๋ง๋ณด๋ค๋ ์๊ท๋ชจ์ ๋ชจ๋์ ์์ ์ ์ง์คํ์ธ์.
- ์๋ก์ด ๊ธฐ๋ฅ์ ์๊ฐํ ๋๋ ๊ตฌ์ฒด์ ์ธ ์ฌ์ฉ ์ฌ๋ก์ ๋ํ ์์ธํ ์ค๋ช ์ ์ ๊ณตํ์ธ์.
@yoheinakajima์ ๋ฉ๋ชจ (Apr 5, 2023):
PR์ด ์ ์ ๋ง์์ง๊ณ ์๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค. ์ ๋ GitHub/์คํ์์ค๋ฅผ ์ฒ์ ์ ํ๊ณ , ์ด๋ฒ ์ฃผ์๋ ๊ทธ์ ๋ฐ๋ผ ์๊ฐ ๊ณํ์ ์ธ์ฐ์ง ๋ชปํ์ต๋๋ค. ๊ธฐ๋ค๋ฆฌ๊ณ ์ํดํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ๋ฐฉํฅ์ ๋ํด ๋ง์๋๋ฆฌ์๋ฉด, ์ ๋ ๋จ์ํ๊ฒ ์ ์งํ๋ ๊ฒ๊ณผ ํ์ฅํ๋ ๊ฒ ์ฌ์ด์์ ๊ฐ๋ฑ์ ๊ฒช์ด์์ต๋๋ค. ํ์ฌ๋ BabyAGI์ ์ฝ์ด๋ฅผ ๋จ์ํ๊ฒ ์ ์งํ๊ณ , ์ด๋ฅผ ํ๋ซํผ์ผ๋ก ์ผ์ ์ด๋ฅผ ํ์ฅํ๊ธฐ ์ํ ๋ค์ํ ์ ๊ทผ ๋ฐฉ์์ ์ง์ํ๊ณ ํ๋ณดํ๋ ๋ฐฉํฅ์ผ๋ก ๊ธฐ์ธ๊ณ ์์ต๋๋ค(์: BabyAGIxLangchain์ด ํ๋์ ๋ฐฉํฅ์ ๋๋ค). ์ ๋ ํ๊ตฌํ ๊ฐ์น๊ฐ ์๋ ๋ค์ํ ์๊ฒฌ ์ ๊ทผ ๋ฐฉ์์ด ์๋ค๊ณ ์๊ฐํ๋ฉฐ, ์ด๋ฅผ ๋น๊ตํ๊ณ ํ ๋ก ํ ์ ์๋ ์ค์ฌ์ ์ธ ์ฅ์๋ฅผ ๊ฐ๋ ๊ฒ์ด ๊ฐ์น๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ณง ๋ ๋ง์ ์ ๋ฐ์ดํธ๊ฐ ์์ ์์ ์ ๋๋ค.
์ ๋ GitHub์ ์คํ์์ค๋ฅผ ์ฒ์ ์ฌ์ฉํ๋ฏ๋ก ์ด ํ๋ก์ ํธ๋ฅผ ์ ๋๋ก ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ฐ๋ ๋์ ์กฐ๊ธ๋ง ๊ธฐ๋ค๋ ค์ฃผ์ธ์. ์ ๋ ๋ฎ์๋ ๋ฒค์ฒ์บํผํธ ํ์ฌ๋ฅผ ์ด์ํ๊ธฐ ๋๋ฌธ์ ๋ณดํต ์์ด๋ค์ ์ฌ์ด ํ ๋ฐค์ PR๊ณผ ์ด์๋ฅผ ํ์ธํ๊ณ ์๊ณ , ๋งค์ผ ๋ฐค ํ์ธํ๋ ๊ฒ์ ์๋ ์๋ ์์ต๋๋ค. ์ง์์ ๊ตฌํ๋ ์์ด๋์ด์ ์ด๋ ค ์์ผ๋ฉฐ ๊ณง ์ด ์น์ ์ ์ ๋ฐ์ดํธํ ์์ ์ ๋๋ค(๊ธฐ๋, ๋น์ ๋ฑ). ๋ง์ ์ฌ๋๋ค๊ณผ ์ด์ผ๊ธฐ๋ฅผ ๋๋๋ฉฐ ๋ฐฐ์ฐ๊ณ ์์ผ๋ ์ ๋ฐ์ดํธ๋ฅผ ๊ธฐ๋ํด์ฃผ์ธ์!
์๊ฐ์ ๋ฐ์ ํ๋ก์ ํธ
์ถ์ ์ดํ ์งง์ ์๊ฐ ๋์ BabyAGI๋ ๋ง์ ํ๋ก์ ํธ์ ์๊ฐ์ ์ฃผ์์ต๋๋ค. ์ฌ๊ธฐ์์ ๋ชจ๋ ํ์ธํ ์ ์์ต๋๋ค.
๋ฐฐ๊ฒฝ ์คํ ๋ฆฌ
BabyAGI๋ ํธ์ํฐ์ ๊ณต์ ๋ ์๋ณธ ์์ ๊ธฐ๋ฐ ์์จ ์์ด์ ํธ(2023๋ 3์ 28์ผ)์ ์ถ์ ๋ฒ์ ์ ๋๋ค. ์ด ๋ฒ์ ์ 140์ค๋ก ์ค์์ต๋๋ค: ์ฃผ์ 13์ค, ๊ณต๋ฐฑ 22์ค, ์ฝ๋ 105์ค์ ๋๋ค. ์ด ๋ฆฌํฌ์งํ ๋ฆฌ์ ์ด๋ฆ์ ์ค๋ฆฌ์ง๋ ์์จ ์์ด์ ํธ์ ๋ํ ๋ฐ์์์ ๋์จ ๊ฒ์ผ๋ก, ์์ฑ์๊ฐ ์ด๊ฒ์ด AGI๋ผ๋ ๊ฒ์ ์์ํ๋ ค๋ ์๋๋ ์๋๋๋ค.
๋ฒค์ฒ์บํผํธ๋ฆฌ์คํธ์ธ @yoheinakajima๊ฐ ์ ์ ์ ๋ด์ ๋ง๋ค์์ต๋๋ค(์ฌ๋ฌ๋ถ์ด ๋ง๋ค๊ณ ์๋ ๊ฒ์ ๋ณด๊ณ ์ถ์ต๋๋ค!).