[Part 1] 2시간 안에 업무 자동화 AI Agent 만들기
본 글은 제가 4월에 직접 만든 AI Agent를 개발하는 과정을 공유하는 글입니다. 비전공자, 비개발자여도 누구나 직접 개발할 수 있도록 도움을 드리고자 씁니다.
세 파트로 나뉘어져 있습니다.
Part 1: 전체 프로그램 셋업, OpenAI API 연결, Vector Store 연결
Part 2: 커스텀 LLM 체인 직접 만들고나서 실행하기
Part 3: Agent가 나 대신 실제 구글 검색하는 기능 만들기
파트 3까지 모두하면 달성할 수 있는 것:
자동으로 기본 업무 처리를 해주는 AI 에이전트 직접 만들기
구글 검색 기능
step-by-step 개발 과정 알아가기
앞으로 추후 AI 관련 프로젝트 개발 아티클들은 10X AI Club에서 지속적으로 올라올 예정이니 클럽 가입 부탁드리겠습니다! 정기적 오프라인 모임 및 세미나도 열 계획이니 많은 관심 부탁드리겠습니다 :)
이 프로젝트는 Langchain BbyAGI User Gide docs를 참고하며 만든 에이전트입니다. https://python.langchain.com/docs/use_cases/agents/baby_agi
코드부터 프로젝트가 웹사이트에서 실제 작동되는 것까지 모든 단계들을 이 글에서 확인할 수 있습니다.
제 노트북이 맥이다보니 맥북 화면 구성으로 설명드리는 점 참고 부탁드립니다!
VSCode 다운로드 및 코드 셋업
코딩 프로젝트를 만들기 위해서는 VSCode라는 코딩 에디터 프로그램을 사용합니다.
https://code.visualstudio.com/ 사이트에 들아가신 후 다운로드합니다.
프로그램을 다운로드 후 실행하면 첫 화면이 보입니다.
여기서 “Open”이라는 버튼을 누른 후 프로젝트를 저장할 새로운 파일을 만듭니다. “New Folder” > “ai-agent”라는 폴더를 만듭니다 (파일 이름은 상관없습니다!).
폴더 “Open”을 누르면 다음과 같은 화면이 됩니다.
그 다음 agent.py라는 새로운 파일을 만듭니다. AI-AGENT라는 탭 위에 허버하시면 New File + 버튼 보이시죠? 그걸 누른후 파일 이름을 agent.py라고 하시면 됩니다.
agent.py 파일은 파이썬 코드 파일입니다. 파이썬 코드를 돌리기 위해서는 가상의 환경을 셋업해줘야합니다. 전혀 어렵지 않고 코드 몇줄만 실행하면 됩니다!
먼저 맥북 상단 탭에서 “Terminal”을 누른 후 “New Terminal”을 누릅니다. 기본 명령어들을 이 터미널이라는 곳에서 입력할 수 있어요.
그럼 이런 화면이 뜨게 될겁니다. 터미널에
cailynyongyong@MacBook-Pro-2 ai-agent라고 보이시죠? 내가 만든 ai-agent라는 폴더 안에 들어가 있다는 뜻입니다.
여기서 이제 파이썬 코드를 실행하기 위해 가상의 환경을 만들어줄거에요. 터미널에
python -m venv venv라는 명령어를 입력 후 엔터를 눌러주세요. 생성이 되면 왼쪽에 “venv”라는 폴더가 만들어진걸 확인할 수 있습니다.
이 가상의 환경을 만들었으니, 이제 이 환경을 실행시켜줄거에요. 이 환경을 실행해야만 파이썬 코드를 돌릴 수 있습니다.
터미널에 source venv/bin/activate라는 명령어를 입력해주세요.
그럼 성공적으로 터미널에
(venv) cailynyongyong@MacBook-Pro-2 ai-agent 라는게 뜹니다. 가상 환경에 들어왔다는 뜻입니다.
다음으로 터미널에 다음의 명령들을 순서대로 실행합니다.
pip install langchain
pip install openai
pip install faiss-cpu > /dev/null
pip install tiktoken예를 들어 pip install langchain을 실행하면 다음과 같이 다운로드가 진행되는게 보일겁니다.
이제 코드를 작성해봅시다!
OpenAI API key 연결, Vector Store 연결
이제 본격적으로 에이전트를 코딩하기 위한 모든 셋업을 할겁니다. 한번에 다 이해 못해셔도 괜찮으니, 코드를 그대로 복붙하시면서 일단 해보는걸 추천드립니다! 저도 그렇게 배웠거든요 ㅎㅎ
처음에는 에이전트를 만들기 위해 필요한 툴들을 불러와야 해요. 이걸 module, 혹은 library라고 푸릅니다. 항상 개발을 할때에는 프로젝트에 필요한 적절한 모듈들을 불러옵니다. 레고처럼 필요한 부품들만 갖고와서 맞추는 것 처럼요.
저희는 OpenAI의 모듈들을 쓸거여서 OpenAI API Key라는 것을 써야합니다. OpenAI 웹사이트에서 계정을 만든 후 https://platform.openai.com/overview 이 곳에 들어갑니다. 상단 오른쪽에서 Personal 버튼 위에 허버하고 View API Keys를 눌러주세요.
이 페이지에 들어오면 “Create new secret key”를 누르세요.
ai-agent라는 이름으로 만들고 초록색 버튼을 누르세요. 버튼을 누르면 새로운 secret key가 생성되는데, 바로 복사해서 다른 곳에 저장해두세요. 다시 열어서 볼 수 없거든요. 이 키는 꼭 다른 사람과 공유하지 마세요! 일종의 OpenAI 비밀번호입니다.
이 키를 이제 어디다가 쓸거냐, 밑에 코드 두번째 줄에
os.environ[”OPENAI_API_KEY”] = “ “ 보이시죠? “ “ 안에 방금 복사한 secret key를 넣습니다.
import os
os.environ["OPENAI_API_KEY"] = " "
from collections import deque
from typing import Dict, List, Optional, Any
from langchain.llms import OpenAI
from langchain.chains import LLMChain
from langchain.prompts import PromptTemplate
from langchain.embeddings import OpenAIEmbeddings
from langchain.llms import BaseLLM
from langchain.vectorstores.base import VectorStore
from pydantic import BaseModel, Field
from langchain.chains.base import Chain이 코드를 그대로 복사해서 agent.py에 붙입니다.
각 줄별로 어떤 것을 뜻하는지 이해하기보다는, ‘아 이 에이전트를 만들기 위해서는 이런 모듈들을 불러와야하는구나’라고 알기만 하면 됩니다. 기본적으로 우리는 랭체인을 써서 LLM 체인을 직접 커스터마이징해서 쓸거기 때문에 from langchain import LLMChain, OpenAI 라는 코드가 있습니다. 이 말은 langchain이라는 곳에서 LLMChain, OpenAI 모듈들을 불러와서 쓸거다 라는 뜻이죠.
Vector Store 셋업
다음 스텝은 Vector Store라는 것을 쓰기 위해 추가적으로 불러와야할 모듈들이 있습니다. Vector Store라는 것은 커스텀 LLM을 쓸 때 효율적으로 데이터를 저장하고 불러올 수 있는 공간을 마련해주는 것입니다.
저희는 FAISS라는 Vector Store를 쓸거에요.
from langchain.vectorstores import FAISS
from langchain.docstore import InMemoryDocstore필요한 모듈들을 불러옵니다. 복사해서 agent.py에 붙여넣으세요.
다음 이 vector store를 내 코드와 연결시키기 위해 이 코드를 작성합니다.
# Define your embedding model
embeddings_model = OpenAIEmbeddings()
# Initialize the vectorstore as empty
import faiss
embedding_size = 1536
index = faiss.IndexFlatL2(embedding_size)
vectorstore = FAISS(embeddings_model.embed_query, index, InMemoryDocstore({}), {})Vector embedding은 텍스트, 이미지, 오디오와 같은 숫자가 아닌 데이터들을 컴퓨터가 알아듣기 쉽게 숫자화한 형태입니다. 이 embedding들이 vector store에 저장되는거구요.
저희는 embedding model을 OpenAIEmbeddings()라는 모델을 쓸겁니다.
그 다음 vector store를 초기 셋업합니다.
import faiss: faiss 벡터 스토어 불러오기embedding_size = 1536: embedding size를 1536으로 합니다.index = faiss.IndexFlatL2(embedding_size): faiss에 이 사이즈로 셋업을 할거라고 알려줍니다.vectorstore = FAISS(embeddings_model.embed_query, index, InMemoryDocstore({}), {}): 이런 기초 작업들을 거친 후 맨 마지막 줄에서 vectorstore를 성공적으로 셋업합니다.
다 복붙하면 코드는 이렇습니다.
Part 1 마무리
이로써 Part 1은 끝났습니다! 전체적인 셋업을 했으니 이제 다음 파트에서는 직접 커스텀 LLM 체인들을 만들어줄거에요.
하면서 어려움을 겪었거나 질문이 있으시면 포스트에 댓글 남겨주시거나 커피챗 요청주세요. 그 외 앞으로 올라왔으면 하는 AI 주제들이 있으면 댓글 남겨주세요!
10X AI Club의 첫번째 글 읽어주셔서 감사합니다.
더 많은 AI 사이드프로젝트들의 개발 방법에 대해 배우고 싶다면 10X AI University 신청을 해주세요!
댓글
로그인 후 댓글을 남길 수 있습니다.
중간중간 개념설명까지 너무 좋네요 감사합니다! 😀
감사합니다 ㅎㅎ 잘 설명되었으면 좋겠네요
스크린샷과 텍스트로 구성하시면 영상으로 찍는 것 보다 훨씬 손이 많이 갈 것 같은데, 좋은 정보 공유 감사드려요.
정말 동의합니다! 그래서 영상도 업로드 하려구요 ㅎㅎ
먼저 영상을 찍으시고 Traw.ai 같은 툴을 써서 자동으로 문서화 해보는 건 어떨까요.
오 대박... 추천해주셔서 감사합니다 당장 써봐야겠어요
이용하는 도구들에서 발생하는 비용이 있나요? Open AI api를 이용할 때 비용이 발생하는 걸로 아는데, 이것 외에도 다른 비용이 있는지 궁금해요~
안녕하세요! OpenAI api 외에는 다른 코드에서는 비용이 발생하지 않습니다 :) 기본적으로 api key를 쓸때에만 비용이 발생해요
답변 감사합니다.
좋은 글 감사합니다!!!
감사합니다 :)
혜림님 메이커로그가 Must Reads #246에 선정되었어요! https://stib.ee/f4s8
윈도우 환경에서 python -m venv venv 실행하면 아무 폴더도 생성되지 않네요 ㅠ 혹시 맥이랑 환경이 달라서 그런걸까요?
안녕하세요, 윈도우 환경이라 다를 수도 있습니다! 제가 윈도우로 해보지 않아서 잘 모르겠지만 이 스텝들을 해보실 수 있나요? 1. pip install virtualenv 2. python -m venv venv 3. venv\Scripts\activate
잘안되네요 ㅠㅠ 뭐! 구글 서칭 좀 더 해볼게요!! ㅎㅎ 좋은 글 감사합니다~
챗GPT한테 물어보셨나요? :) 더 빠른 대답을 얻으실수도.. 도움을 드리지 못해 죄송하네요ㅠㅠ
파일 생성은 챗 GPT 통해 해결했어요! 파일 설치 경로 문제였던거 같아요 ㅠㅠ 근데 명령 프롬프트에서는 스크립트가 동작하는데 VSCODE 터미널을 통해 입력하는 명령어 스크립트를 계속 실행할 수 없다고 나오네요.. 아마 제가 원격으로 작업을 해서 권한 문제 같기도하구요.. 이것도 잘 해결해볼게요! ㅎㅎ 감사합니다~
어렵게만 생각했는데.. 도전하고 싶은 의욕이 생기네요. 감사합니다.
화이팅입니다!!
따라서 완료했습니다~
따라해보고싶습니다. -2024-01-24- *P.S 올해 안에 따라 할 수 있을까요? 😂
무조건 가능입니다. 지금 10분만 투자해서 따라해보시면 됩니다
유툽 영상에서 봤던 글을 찾았네요.. ^^
감사합니다 ! 너무나 좋습니다
오 그 다음 part 2 는 언제 게시되나요~?
앗 찾았네요~! 양질의 글 감사해요!