Yoheina Kajima의 Babyagi에서 영감을 얻었습니다
Babyagi-Chroma 저장소는 로컬로 실행되는 무료 벡터 저장 솔루션 인 Chroma를 제공합니다. 이는 Pinecone과 같은 다른 벡터 저장 옵션과 관련된 잠재적 비용을 피하려는 사용자에게 특히 유리합니다.
이 Python 스크립트는 Langchain, OpenAI 및 Chroma의 벡터 데이터베이스를 활용하여 작업을 작성, 우선 순위를 정하고 실행하는 AI 기반 작업 관리 시스템의 예를 보여줍니다. 이 시스템은 이전 작업의 결과와 사전 정의 된 목표를 기반으로 작업을 만듭니다. 그런 다음 스크립트는 Langchain의 OpenAI Natural Language Processing (NLP) 툴킷 및 검색 기능을 사용하여 목표를 기반으로 새로운 작업을 작성하는 한편 Chroma는 컨텍스트에 대한 작업 결과를 저장하고 검색합니다. 이것은 원래의 작업 중심의 자율 에이전트의 단순화 된 버전입니다 (2023 년 3 월 28 일).
이 readme은 다음 주제를 다룹니다.
스크립트는 다음 단계를 무한 루프로 수행합니다.
실행 체인은 목표와 컨텍스트를 고려하여 주어진 작업을 처리합니다. Langchain의 llmchain을 사용하여 작업을 실행합니다. execute_task 함수는 Chroma vectorstore, 실행 체인, 목표 및 작업 정보를 입력으로 사용합니다. 목표에 따라 벡터 스토어에서 상단 K 작업 목록을 검색 한 다음 실행 체인을 사용하여 작업을 실행하여 결과를 벡터 스토어에 저장합니다. 함수는 결과를 반환합니다.
이 코드 블록에는 실행 체인이 명시 적으로 정의되지 않습니다. 그러나 execute_task 의 매개 변수로 전달되며 코드에서 별도로 정의 할 수 있습니다. Langchain의 Llmchain 클래스의 인스턴스로, 제공된 입력 변수를 기반으로 프롬프트를 받아들이고 응답을 생성합니다.
TaskCreationHain 클래스는 llmchain을 사용하여 새로운 작업을 만듭니다. from_llm 함수는 Langchain의 Prusttemplate를 사용하여 매개 변수를 사용하여 새로운 작업 목록을 문자열로 반환합니다. 그런 다음 사용자 지정 입력 변수 및 지정된 동작과 함께 TaskCreationHain 인스턴스를 만듭니다.
Task -PrioritizationHain 클래스는 llmchain을 사용하여 작업을 우선 순위로 삼습니다. from_llm 함수는 Langchain의 PromptTemplate를 통해 매개 변수를 수락하여 새로운 작업 목록을 문자열로 반환합니다. 그런 다음 사용자 지정 입력 변수 및 지정된 동작과 함께 Task -FrioritizationChain 인스턴스를 만듭니다.
스크립트는 Chroma를 활용하여 저장, 유사성 검색 및 컨텍스트에 대한 작업 결과를 검색합니다. TABLE_NAME 변수에 지정된 테이블 이름을 기반으로 Chroma 인덱스를 만듭니다. Chroma는 이후 작업 이름 및 추가 메타 데이터와 함께 작업 결과를 인덱스에 저장합니다.
스크립트를 사용하려면 다음 단계를 수행하십시오.
git clone https://github.com/alexdphan/babyagi-chroma.git 및 cd 복제 된 디렉토리로 연결하십시오.pip install -r requirements.txt.env.example 파일을 .env : cp .env.example .env 로 복사하십시오. 이 파일에서 다음 변수를 설정하십시오.OPENAI_API_KEY 및 SERPAPI_API_KEY 에 API 키를 제공하십시오.TABLE_NAME 변수에 저장되는 테이블 이름을 설정하십시오.OBJECTIVE 변수로 설정하십시오.INITIAL_TASK 변수에서 시스템의 첫 번째 작업을 설정합니다.python babyagi-chroma.py 명령을 사용하여 스크립트를 실행하십시오.위의 모든 선택적 값은 명령 줄에 지정할 수도 있습니다.
이 스크립트는 모든 OpenAI 모델과 함께 작동합니다. 기본 모델은 GPT-3.5 (Text-Davinci-003) 입니다. 다른 모델을 사용하려면 그에 따라 코드를 자유롭게 수정하십시오.
이 스크립트는 작업 관리 시스템의 일부로 지속적으로 실행되도록 설계되었습니다. 스크립트를 지속적으로 실행하면 API 사용이 높을 수 있으므로 책임감있게 사용하십시오. 또한 스크립트는 OpenAI API 및 SERP를 올바르게 설정해야하므로 스크립트를 실행하기 전에 API를 구성해야합니다.
단순성을 유지하려면 PR을 제출할 때 다음 지침을 친절하게 준수하십시오.
벡터 저장 비용이 비싸기 때문에 Babyagi를 사용할 때 무료 스토리지 옵션을 제공하는 것이 목표였습니다. 따라서이 템플릿 예제는 Chroma와 Babyagi를 사용하는 것을 보여줍니다.
Babyagi-Chroma는 Babyagi의 구조적 버전으로, 2023 년 3 월 28 일 Twitter에서 공유 된 원래의 작업 중심의 자율 에이전트의 단순화 된 버전이기도합니다.