LangChain의 에이전트를 사용하여 MRKL 시스템을 복제하는 방법은 무엇입니까?

Langchain Ui Eijeonteuleul Sayonghayeo Mrkl Siseutem Eul Bogjehaneun Bangbeob Eun Mueos Ibnikka



MRKL(Modular Reasoning, Knowledge, and Language) 시스템은 검증 이유와 함께 답변을 추출할 수 있는 아키텍처입니다. 언어 모델, 이산 추론 및 외부 지식 소스를 통합합니다. 언어 모델은 사용자가 요청한 쿼리에 따라 인간 언어로 텍스트를 생성합니다. MRKL(기적이라고 발음)은 답변을 정확하고 타당하게 만들기 위해 답변을 생성하는 동안 추론을 추가합니다.

빠른 개요

이 게시물에서는 다음을 보여줍니다.







LangChain에서 에이전트를 사용하여 MRKL 시스템을 복제하는 방법



결론



LangChain의 에이전트를 사용하여 MRKL 시스템을 복제하는 방법은 무엇입니까?

LangChain을 사용하면 사용자는 언어 모델이나 챗봇에 대한 여러 작업을 수행하는 데 사용할 수 있는 에이전트를 구축할 수 있습니다. 에이전트는 언어 모델에 연결된 메모리의 모든 단계와 함께 작업을 저장합니다. 에이전트는 이러한 템플릿을 사용하여 MRKL과 같은 시스템의 작동을 복제하여 다시 구축할 필요 없이 최적화된 결과를 얻을 수 있습니다.





LangChain의 에이전트를 사용하여 MRKL 시스템을 복제하는 프로세스를 알아보려면 나열된 단계를 따르십시오.

1단계: 프레임워크 설치

우선, langchain-experimental 명령과 함께 pip를 사용하여 LangChain 실험 모듈을 설치하십시오.



pip 설치 langchain-실험

MRKL 시스템용 언어 모델을 구축하려면 OpenAI 모듈을 설치합니다.

pip 설치 openai

2단계: OpenAI 환경 설정

사용자에게 OpenAI 및 SerpAPi 계정에 대한 API 키를 제공하라는 메시지를 표시하는 운영 체제에 액세스하려면 os 및 getpass 라이브러리를 가져옵니다.

수입

수입 getpass

. [ 'OPENAI_API_KEY' ] = getpass . getpass ( 'OpenAI API 키:' )

. [ 'SERPAPI_API_KEY' ] = getpass . getpass ( '세르파피 API 키:' )

3단계: 라이브러리 가져오기

LangChain의 종속성을 사용하여 언어 모델, 도구 및 에이전트를 구축하는 데 필요한 라이브러리를 가져옵니다.

~에서 랭체인. 쇠사슬 수입 LLMMathChain

~에서 랭체인. LLMS 수입 오픈AI

~에서 랭체인. 유용 수입 SerpAPI래퍼

~에서 랭체인. 유용 수입 SQL데이터베이스

~에서 langchain_experimental. SQL 수입 SQLDatabaseChain

~에서 랭체인. 자치령 대표 수입 초기화_에이전트 , 도구

~에서 랭체인. 자치령 대표 수입 에이전트 유형

4단계: 데이터베이스 구축

MRKL은 외부 지식 소스를 사용하여 데이터에서 정보를 추출합니다. 이 게시물은 다음을 사용하여 다운로드할 수 있는 SQLite를 사용합니다. 가이드 데이터베이스를 구축합니다. 다음 명령은 설치된 버전을 표시하여 SQLite 다운로드 프로세스를 확인합니다.

SQLite3

명령 프롬프트를 사용하여 데이터베이스를 생성하려면 디렉토리 내부에서 다음 명령 헤드를 사용하십시오.

CD 데스크탑

CD mydb

sqlite3 치누크. 디비

다운로드 데이터 베이스 파일을 생성하고 다음 명령을 사용하여 디렉터리에 저장합니다. .db ” 파일:

. 읽다 치누크_Sqlite. SQL

선택 * 아티스트 제한에서 선택 10 ;

5단계: 데이터베이스 업로드

데이터베이스가 성공적으로 생성되면 Google 공동 작업실에 파일을 업로드합니다.

~에서 Google. 수입 파일

업로드됨 = 파일. 업로드 ( )

사용자는 노트북에 업로드된 파일에 액세스하여 드롭다운 메뉴에서 경로를 복사할 수 있습니다.

6단계: 도구 구성

데이터베이스를 구축한 후 에이전트의 언어 모델, 도구 및 체인을 구성합니다.

찾다 = SerpAPI래퍼 ( )
ㅋㅋㅋ = 오픈AI ( 온도 = 0 )
llm_math_chain = LLMMathChain ( ㅋㅋㅋ = ㅋㅋㅋ , 말 수가 많은 = 진실 )
디비 = SQLDatabase. from_uri ( 'sqlite:///../../../../../content/Chinook.db' )
db_chain = SQLDatabaseChain. from_llm ( ㅋㅋㅋ , 디비 , 말 수가 많은 = 진실 )
도구 = [
도구 (
이름 = '찾다' ,
기능 = 찾다. 달리다 ,
설명 = '최근 문제에 대한 답변을 얻으려면 타겟 프롬프트를 요청하세요'
) ,
도구 (
이름 = '계산자' ,
기능 = llm_math_chain. 달리다 ,
설명 = '수학적 문제에 답하거나 해결하는 데 유용합니다.'
) ,
도구 (
이름 = '푸바 DB' ,
기능 = db_chain. 달리다 ,
설명 = '데이터베이스의 쿼리에 응답하는 데 유용하며 입력 질문에는 완전한 컨텍스트가 있어야 합니다.'
)
]
  • 정의 ㅋㅋㅋ 변수를 사용하여 오픈AI() 언어 모델을 얻는 방법.
  • 그만큼 찾다 호출하는 도구입니다. SerpAPIWrapper() 환경에 접근하는 방법.
  • 그만큼 LLMMathChain() 방법은 수학 문제와 관련된 답을 얻는 데 사용됩니다.
  • 정의 디비 변수 내부의 파일 경로 SQL데이터베이스() 방법.
  • 그만큼 SQLDatabaseChain() 메소드를 사용하여 데이터베이스에서 정보를 가져올 수 있습니다.
  • 다음과 같은 도구를 정의하십시오. 찾다 , 계산자 , 그리고 푸바 DB 다양한 소스에서 데이터를 추출하기 위한 에이전트 구축:

7단계: 에이전트 구축 및 테스트

사용자가 묻는 질문에 대한 답변을 얻기 위해 도구, llm 및 에이전트를 사용하여 MRKL 시스템을 초기화합니다.

므르클 = 초기화_에이전트 ( 도구 , ㅋㅋㅋ , 대리인 = 에이전트 유형. ZERO_SHOT_REACT_DESCRIPTION , 말 수가 많은 = 진실 )

질문을 인수로 사용하여 run() 메소드를 사용하여 MRKL 시스템을 실행합니다.

mrkl. 달리다 ( '레오 디카프리오와 여자친구의 현재 나이는 나이차도 말해준다' )

산출

에이전트는 최종 답변을 추출하기 위해 시스템에서 사용하는 전체 경로를 사용하여 최종 답변을 생성했습니다.

8단계: MRKL 시스템 복제

이제 간단히 므르클 데이터베이스와 같은 다양한 소스에서 답변을 얻으려면 run() 메소드와 함께 키워드를 사용하세요.

mrkl. 달리다 ( '최근 발매된 'The Storm Before the Calm'이라는 앨범의 아티스트 이름은 무엇이며 FooBar 데이터베이스에 있는지, 어떤 앨범이 데이터베이스에 있는지' )

에이전트는 데이터베이스에서 답변을 가져오기 위해 자동으로 질문을 SQL 쿼리로 변환했습니다. 에이전트는 올바른 소스를 검색하여 답변을 얻은 다음 쿼리를 조합하여 정보를 추출합니다.

9단계: ChatModel 사용

사용자는 ChatOpenAI() 메서드를 사용하여 ChatModel을 만들고 MRKL 시스템을 사용하여 언어 모델을 간단히 변경할 수 있습니다.

~에서 랭체인. chat_models 수입 채팅오픈AI

찾다 = SerpAPI래퍼 ( )
ㅋㅋㅋ = 채팅오픈AI ( 온도 = 0 )
llm1 = 오픈AI ( 온도 = 0 )
llm_math_chain = LLMMathChain ( ㅋㅋㅋ = llm1 , 말 수가 많은 = 진실 )
디비 = SQLDatabase. from_uri ( 'sqlite:///../../../../../content/Chinook.db' )
db_chain = SQLDatabaseChain. from_llm ( llm1 , 디비 , 말 수가 많은 = 진실 )
도구 = [
도구 (
이름 = '찾다' ,
기능 = 찾다. 달리다 ,
설명 = '최근 문제에 대한 답변을 얻으려면 타겟 프롬프트를 요청하세요'
) ,
도구 (
이름 = '계산자' ,
기능 = llm_math_chain. 달리다 ,
설명 = '수학적 문제에 답하거나 해결하는 데 유용합니다.'
) ,
도구 (
이름 = '푸바 DB' ,
기능 = db_chain. 달리다 ,
설명 = '데이터베이스의 쿼리에 응답하는 데 유용하며 입력 질문에는 완전한 컨텍스트가 있어야 합니다.'
)
]

10단계: MRKL 에이전트 테스트

그런 다음 에이전트를 빌드하고 초기화_agent() 메서드를 사용하여 mrkl 변수에서 초기화합니다. 도구, llm, 에이전트 및 자세한 정보 표시와 같은 구성 요소를 통합하여 출력에 전체 프로세스를 가져오는 메서드의 매개 변수를 추가합니다.

므르클 = 초기화_에이전트 ( 도구 , ㅋㅋㅋ , 대리인 = 에이전트 유형. CHAT_ZERO_SHOT_REACT_DESCRIPTION , 말 수가 많은 = 진실 )

다음 스크린샷에 표시된 대로 mrkl 시스템을 실행하여 질문을 실행합니다.

mrkl. 달리다 ( '레오 디카프리오 여자친구는 누구인가요? 현재 나이는 몇살인가요?' )

산출

다음 스니펫은 에이전트가 추출한 최종 답변을 표시합니다.

11단계: MRKL 시스템 복제

데이터베이스에서 정보를 추출하려면 자연어로 된 질문과 함께 run() 메소드를 호출하여 MRKL 시스템을 사용하십시오.

mrkl. 달리다 ( '최근 발매된 'The Storm Before the Calm'이라는 앨범의 아티스트 이름은 무엇이며 FooBar 데이터베이스에 있는지, 어떤 앨범이 데이터베이스에 있는지' )

산출

에이전트는 다음 스크린샷과 같이 데이터베이스에서 추출된 최종 답변을 표시했습니다.

이것이 LangChain의 에이전트를 사용하여 MRKL 시스템을 복제하는 프로세스에 관한 모든 것입니다.

결론

LangChain의 에이전트를 사용하여 MRKL 시스템을 복제하려면 모듈을 설치하여 라이브러리 가져오기에 대한 종속성을 가져옵니다. 라이브러리는 도구를 사용하여 여러 소스에서 답변을 얻기 위해 언어 모델 또는 채팅 모델을 구축하는 데 필요합니다. 에이전트는 인터넷, 데이터베이스 등과 같은 다양한 소스에서 출력을 추출하는 도구를 사용하도록 구성됩니다. 이 가이드는 LangChain의 에이전트를 사용하여 MRKL 시스템을 복제하는 프로세스에 대해 자세히 설명했습니다.