LangChain 통합
Rememberizer를 LangChain 검색기로 통합하여 LangChain 애플리케이션에 강력한 벡터 데이터베이스 검색 기능을 제공하는 방법을 배우세요.
Last updated
Rememberizer를 LangChain 검색기로 통합하여 LangChain 애플리케이션에 강력한 벡터 데이터베이스 검색 기능을 제공하는 방법을 배우세요.
Last updated
Rememberizer는 RememberizerRetriever
클래스를 통해 LangChain과 통합되어, Rememberizer의 의미 검색 기능을 LangChain 기반 애플리케이션에 쉽게 통합할 수 있습니다. 이 가이드는 지식 기반에 접근하여 고급 LLM 애플리케이션을 구축하기 위한 이 통합 설정 및 사용 방법을 설명합니다.
LangChain은 대형 언어 모델(LLM)을 사용하여 애플리케이션을 구축하기 위한 인기 있는 프레임워크입니다. Rememberizer를 LangChain과 통합하면 다음을 수행할 수 있습니다:
RAG(검색 증강 생성) 애플리케이션에서 Rememberizer 지식 기반을 사용할 수 있습니다.
문서 및 데이터에 접근할 수 있는 챗봇을 생성할 수 있습니다.
귀하의 지식을 활용하는 질문-답변 시스템을 구축할 수 있습니다.
귀하의 정보를 검색하고 추론할 수 있는 에이전트를 개발할 수 있습니다.
통합은 langchain_community.retrievers
모듈에서 사용할 수 있습니다.
시작하기 전에 다음이 필요합니다:
Common Knowledge가 생성된 Rememberizer 계정
Common Knowledge에 접근하기 위한 API 키
LangChain이 설치된 Python 환경
필요한 패키지를 설치합니다:
아래 예제에서 보여지는 것처럼 OpenAI 모델을 사용할 계획이라면:
RememberizerRetriever
를 인증하는 두 가지 방법이 있습니다:
환경 변수: REMEMBERIZER_API_KEY
환경 변수를 설정합니다.
직접 매개변수: 검색기를 초기화할 때 API 키를 직접 전달합니다.
RememberizerRetriever
클래스는 다음 매개변수를 수용합니다:
top_k_results
int
10
검색에서 반환할 문서 수
rememberizer_api_key
str
None
인증을 위한 API 키 (환경 변수로 설정된 경우 선택 사항)
백그라운드에서, 리트리버는 추가 구성 가능한 매개변수와 함께 Rememberizer의 검색 엔드포인트에 API 호출을 합니다:
prev_chunks
포함할 일치하는 청크 이전의 청크 수 (기본값: 2)
next_chunks
포함할 일치하는 청크 이후의 청크 수 (기본값: 2)
return_full_content
전체 문서 내용을 반환할지 여부 (기본값: true)
다음은 LangChain을 사용하여 Rememberizer에서 문서를 검색하는 간단한 예입니다:
os.environ["REMEMBERIZER_API_KEY"] = "rem_ck_your_api_key"
retriever = RememberizerRetriever(top_k_results=5)
docs = retriever.get_relevant_documents(query="벡터 임베딩은 어떻게 작동하나요?")
if docs: print(f"문서: {docs[0].metadata['name']}") print(f"내용: {docs[0].page_content[:200]}...")
이 예제는 Rememberizer에서 정보를 검색하고 GPT-3.5를 사용하여 답변을 작성하는 질문-응답 시스템을 생성합니다:
os.environ["REMEMBERIZER_API_KEY"] = "rem_ck_your_api_key" os.environ["OPENAI_API_KEY"] = "your_openai_api_key"
retriever = RememberizerRetriever(top_k_results=5) llm = ChatOpenAI(model_name="gpt-3.5-turbo", temperature=0)
qa_chain = RetrievalQA.from_chain_type( llm=llm, chain_type="stuff", # 가장 간단한 방법 - 모든 문서를 프롬프트에 넣기 retriever=retriever, return_source_documents=True )
response = qa_chain.invoke({"query": "AI의 맥락에서 RAG란 무엇인가요?"})
print(f"답변: {response['result']}") print("\n출처:") for idx, doc in enumerate(response['source_documents']): print(f"{idx+1}. {doc.metadata['name']}")
os.environ["REMEMBERIZER_API_KEY"] = "rem_ck_your_api_key" os.environ["OPENAI_API_KEY"] = "your_openai_api_key"
retriever = RememberizerRetriever(top_k_results=5) llm = ChatOpenAI(model_name="gpt-3.5-turbo") memory = ConversationBufferMemory( memory_key="chat_history", return_messages=True )
conversation = ConversationalRetrievalChain.from_llm( llm=llm, retriever=retriever, memory=memory )
questions = [ "RAG란 무엇인가요?", "대형 언어 모델은 이를 어떻게 사용하나요?", "이 접근 방식의 한계는 무엇인가요?", ]
for question in questions: response = conversation.invoke({"question": question}) print(f"질문: {question}") print(f"답변: {response['answer']}\n")
rememberizer_retriever = RememberizerRetriever(top_k_results=3) web_retriever = WebResearchRetriever(...) # 다른 검색기 구성
ensemble_retriever = EnsembleRetriever( retrievers=[rememberizer_retriever, web_retriever], weights=[0.7, 0.3] # Rememberizer 결과는 더 높은 가중치를 가집니다 )
LLM에 전달하기 전에 원시 검색 결과를 검사하여 검색 문제를 식별합니다
Common Knowledge를 생성하고 API 키를 생성하는 방법에 대한 자세한 지침은 을 참조하세요.
LangChain
LangChain
Rememberizer
Rememberizer의
- AI 통합을 위한 대안 접근법