[7기 랭체인방] 이토록 쉬운 AutoGPT




LangChain을 이용한 AutoGPT 구현

LangChain 라이브러리를 활용하면 PT의 검색, 메모리 기억, 자체 검증과 같은 기능을 간결한 코드로 구현할 수 있습니다. 아래는 LangChain을 사용하여 AutoGPT를 설정하고 실행하는 예제입니다.

1. 라이브러리와 환경 설정

필요한 라이브러리와 모듈을 불러온 후, 환경 변수를 설정합니다.

from langchain.utilities import SerpAPIWrapper
from langchain.agents import Tool
from langchain.tools.file_management.write import WriteFileTool
from langchain.tools.file_management.read import ReadFileTool
import os
from dotenv import load_dotenv

load_dotenv()
serpapi_api_key = os.getenv('SERPAPI_API_KEY')


2. 검색 도구 설정

SerpAPIWrapper를 이용하여 검색 도구를 설정하고, 이를 tools 리스트에 추가합니다.

search = SerpAPIWrapper(serpapi_api_key=serpapi_api_key)
tools = [
    Tool(
        name="search",
        func=search.run,
        description="useful for when you need to answer questions about current events. You should ask targeted questions",
    ),
    WriteFileTool(),
    ReadFileTool(),
]


3. 임베딩과 벡터 스토어 설정

OpenAI의 임베딩 모델과 FAISS 벡터 스토어를 설정합니다.

from langchain.vectorstores import FAISS
from langchain.docstore import InMemoryDocstore
from langchain.embeddings import OpenAIEmbeddings

# 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({}), {})


4. AutoGPT 에이전트 설정 및 실행

AutoGPT 에이전트를 설정하고, 특정 질문에 대한 실행을 요청합니다.

from langchain_experimental.autonomous_agents import AutoGPT
from langchain.chat_models import ChatOpenAI

agent = AutoGPT.from_llm_and_tools(
    ai_name="Tom",
    ai_role="Assistant",
    tools=tools,
    llm=ChatOpenAI(temperature=0),
    memory=vectorstore.as_retriever(),
)
# Set verbose to be true
agent.chain.verbose = True

agent.run(["2023년 10월 31일 발표된 애플 신제품에 관한 내용을 정리해 주세요."])


5. 채팅 히스토리 메모리 설정

채팅 히스토리를 파일로 저장할 수 있는 설정을 추가합니다.

from langchain.memory.chat_message_histories import FileChatMessageHistory

agent = AutoGPT.from_llm_and_tools(
    ai_name="Tom",
    ai_role="Assistant",
    tools=tools,
    llm=ChatOpenAI(temperature=0),
    memory=vectorstore.as_retriever(),
    chat_history_memory=FileChatMessageHistory("chat_history.txt"),
)



더 자세한 내용과 추가적인 예제는 아래에서 확인할 수 있습니다.

langchain/cookbook/autogpt/autogpt.ipynb at master · langchain-ai/langchain


5
2개의 답글

👉 이 게시글도 읽어보세요