LangChain에 사용자 정의 메모리 유형을 추가하는 방법은 무엇입니까?

Langchain E Sayongja Jeong Ui Memoli Yuhyeong Eul Chugahaneun Bangbeob Eun Mueos Ibnikka



LangChain은 채팅처럼 인간과 상호 작용할 수 있는 언어 모델 또는 챗봇을 구성/설계하는 데 사용됩니다. 이러한 채팅 메시지는 LangChain이라는 이름에서 알 수 있듯이 체인을 통해 연결되며 사용자는 이를 메모리에 저장할 수도 있습니다. LangChain을 사용하면 개발자는 내장 클래스 사용이나 자체 메모리 사용자 정의를 제공하는 메모리 라이브러리를 사용할 수 있습니다.

빠른 개요

이 게시물에는 다음이 표시됩니다.







LangChain에 사용자 정의 메모리 유형을 추가하는 방법



결론



LangChain에 사용자 정의 메모리 유형을 추가하는 방법은 무엇입니까?

LangChain에 맞춤형 메모리 유형을 추가하면 사용자는 메모리로서 최고의 성능을 얻을 수 있습니다. 사용자는 자신의 요구 사항에 따라 메모리 유형을 구성할 수 있습니다. LangChain에 사용자 정의 메모리 유형을 추가하려면 다음 단계를 따르십시오.





1단계: 프레임워크 설치

먼저 LangChain 프레임워크를 설치하여 사용자 정의 메모리 유형을 추가하는 프로세스를 시작합니다.

pip 설치 랭체인

Python Notebook에서 위 명령을 실행하면 다음 코드 조각에 표시된 대로 LangChain에 대한 종속성이 설치됩니다.



OpenAI 모듈을 설치하여 LLM을 구성하는 데 사용할 수 있는 라이브러리를 가져옵니다.

pip 설치 openai

이 가이드에서는 spaCy 프레임워크를 사용하여 LangChain의 사용자 정의 메모리 유형을 설계하고 다음 코드를 사용하여 모듈을 설치합니다.

pip 설치 spacy

spaCy 모델은 해시 테이블을 사용하여 이전 채팅 메시지와 같은 관찰로 정보를 저장합니다. 다음 코드는 spaCy 라이브러리에서 LLM(Large Language Model)을 다운로드하여 고급 NLP 모델을 구축하는 데 사용됩니다.

! python -m spacy 다운로드 en_core_web_lg

가져오기 “ ' 그리고 ' getpass ” 라이브러리는 OpenAI 계정에서 API 키를 입력하기 위한 것입니다. 환경 설정 :

수입
수입 getpass

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

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

다음 단계는 채팅 모델에 따라 메모리 유형을 사용자 정의하는 데 필요한 라이브러리를 가져오는 것입니다.

~에서 랭체인. 개요 수입 기본 메모리

~에서 랭체인. 쇠사슬 수입 컨버세이션체인

~에서 피단틱한 수입 기본 모델

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

~에서 타자 수입 목록 , 사전 , 어느

' 가져오기 스파시 ” 라이브러리를 로드하여 “ en_core_web_lg ' 모델을 선택하고 이를 ' nlp ” 변수는 자연어 처리 모델이므로 다음과 같습니다.

수입 적응력이 있는

nlp = spacy. ( 'en_core_web_lg' )

3단계: 맞춤형 메모리 구축

그런 다음 Memory 클래스의 BaseMemory 및 BaseModel 인수를 사용하여 사용자 정의 메모리를 구축하기만 하면 됩니다. 그런 다음 메모리에 완전한 정보 또는 단일 단위로 저장할 수 있는 엔터티(데이터에서 수집/저장)를 구성합니다. 메모리는 메모리와 모델의 성능을 최적화하기 위해 문서의 모든 엔터티를 포함하도록 구성됩니다.

수업 SpacyEntityMemory ( 기본 메모리 , 기본 모델 ) :
''' 엔터티에 대한 정보를 저장하기 위한 메모리 클래스'''
엔터티: 딕셔너리 = { }
메모리_키: str = '엔티티'
데프 분명한 ( 본인 ) :
본인 . 엔터티 = { }
@ 재산
데프 메모리_변수 ( 본인 ) - > 목록 [ str ] :
''' 쿼리에 제공된 변수를 초기화합니다.'''
반품 [ 본인 . 메모리_키 ]
#인수를 사용하여 메모리 변수를 정의합니다.
데프 로드_메모리_변수 ( 본인 , 입력: 사전 [ str , 어느 ] ) - > 사전 [ str , str ] :
''' 메모리용 변수, 즉 엔터티 키를 호출합니다.'''
문서 = nlp ( 입력 [ 목록 ( 입력. 열쇠 ( ) ) [ 0 ] ] )
#개별 유닛의 메모리에 저장될 엔터티를 구성합니다.
엔터티 = [
본인 . 엔터티 [ str ( 엔트 ) ] ~을 위한 엔트 ~에 문서. 엔트 만약에 str ( 엔트 ) ~에 본인 . 엔터티
]
반품 { 본인 . 메모리_키 : ' \N ' . 가입하다 ( 엔터티 ) }
#메모리를 사용하기 위해 save_context()를 정의합니다.
데프 save_context ( 본인 , 입력: 사전 [ str , 어느 ] , 출력: 사전 [ str , str ] ) - > 없음 :
'''이 채팅에서 관찰한 내용을 메모리에 저장합니다'''
텍스트 = 입력 [ 목록 ( 입력. 열쇠 ( ) ) [ 0 ] ]
문서 = nlp ( 텍스트 )
~을 위한 엔트 ~에 문서. 엔트 :
ent_str = str ( 엔트 )
만약에 ent_str ~에 본인 . 엔터티 :
본인 . 엔터티 [ ent_str ] + = 에프 ' \N {텍스트}'
또 다른 :
본인 . 엔터티 [ ent_str ] = 텍스트

4단계: 프롬프트 템플릿 구성

그런 다음 사용자/사람이 제공한 입력 구조를 설명하는 프롬프트 템플릿을 구성하면 됩니다.

~에서 랭체인. 프롬프트 . 즉각적인 수입 프롬프트 템플릿

주형 = '''다음은 기계와 인간의 상호작용이다. 모른다고 한다. 기계가 답을 모르는 경우 기계(AI)는 문맥에서 세부 정보를 제공하고 질문에 대한 답을 이해하지 못하는 경우 그냥 미안하다고만 해

법인 정보:

{엔티티}

의사소통:

인간: {입력}

일체 포함:'''


즉각적인 = 프롬프트 템플릿 ( 입력_변수 = [ '엔티티' , '입력' ] , 주형 = 주형 )

5단계: 모델 테스트

모델을 테스트하기 전에 OpenAI() 메서드를 사용하여 LLM을 구성하고 인수를 사용하여 ConversationChain() 함수를 설정하면 됩니다.

ㅋㅋㅋ = 오픈AI ( 온도 = 0 )

대화 = 컨버세이션체인 (

ㅋㅋㅋ = ㅋㅋㅋ , 즉각적인 = 즉각적인 , 말 수가 많은 = 진실 , 메모리 = SpacyEntityMemory ( )

)

대화 변수로 예측() 메서드를 호출하는 동안 입력 인수를 사용하여 모델에 정보를 제공합니다.

대화. 예측하다 ( 입력 = '해리슨은 머신러닝을 좋아해요' )

산출

모델은 정보를 흡수하여 메모리에 저장하고 대화를 진행하기 위한 정보와 관련된 질문도 제기했습니다.

사용자는 모델의 질문에 응답하여 메모리에 더 많은 정보를 추가하거나 정보에 대한 질문을 하여 메모리를 테스트할 수 있습니다.

대화. 예측하다 (

입력 = '해리슨이 가장 좋아하는 과목은 무엇입니까'

)

모델은 이전 정보를 기반으로 출력을 제공하고 다음 스니펫과 같이 화면에 표시합니다.

LangChain에 사용자 정의 메모리 유형을 추가하는 것이 전부입니다.

결론

LangChain에 사용자 정의 메모리 유형을 추가하려면 사용자 정의 메모리를 구축하기 위해 라이브러리를 가져오는 데 필요한 모듈을 설치하기만 하면 됩니다. spaCy는 NLP 모델을 사용하여 사용자 정의 메모리를 추가하기 위해 이 가이드에서 사용되는 중요한 라이브러리입니다. 그런 다음 사용자 정의 메모리와 프롬프트 템플릿을 구성하여 채팅 인터페이스의 구조를 제공합니다. 구성이 완료되면 저장된 데이터와 관련된 정보를 요청하여 모델의 메모리를 간단히 테스트하십시오.