LangChain 통합

Rememberizer를 LangChain 검색기로 통합하여 귀하의 LangChain 애플리케이션에 강력한 벡터 데이터베이스 검색 기능을 제공합니다.

이 노트북은 하류에서 사용되는 문서 형식인 Rememberizer에서 문서를 검색하는 방법을 보여줍니다.

준비

API 키가 필요합니다: https://rememberizer.ai에서 일반적인 지식을 생성한 후에 얻을 수 있습니다. API 키를 얻으면 이를 환경 변수 REMEMBERIZER_API_KEY로 설정하거나 RememberizerRetriever를 초기화할 때 rememberizer_api_key로 전달해야 합니다.

RememberizerRetriever에는 다음과 같은 인수가 있습니다:

- 선택적 top_k_results: 기본값=10. 반환되는 문서 수를 제한하는 데 사용합니다.

- 선택적 rememberizer_api_key: 환경 변수 REMEMBERIZER_API_KEY를 설정하지 않으면 필수입니다.

get_relevant_documents()에는 하나의 인수, query: Rememberizer.ai의 일반 지식에서 문서를 찾는 데 사용되는 자유 텍스트입니다.

예시

기본 사용법

# API 키 설정
from getpass import getpass

REMEMBERIZER_API_KEY = getpass()
import os

from langchain_community.retrievers import RememberizerRetriever

os.environ["REMEMBERIZER_API_KEY"] = REMEMBERIZER_API_KEY
retriever = RememberizerRetriever(top_k_results=5)
docs = retriever.get_relevant_documents(query="대형 언어 모델은 어떻게 작동하나요?")
docs[0].metadata  # 문서의 메타 정보
{'id': 13646493,
 'document_id': '17s3LlMbpkTk0ikvGwV0iLMCj-MNubIaP',
 'name': '대형 언어 모델(LLM)이란 무엇인가? _ _ Cloudflare.pdf',
 'type': 'application/pdf',
 'path': '/langchain/대형 언어 모델(LLM)이란 무엇인가? _ _ Cloudflare.pdf',
 'url': 'https://drive.google.com/file/d/17s3LlMbpkTk0ikvGwV0iLMCj-MNubIaP/view',
 'size': 337089,
 'created_time': '',
 'modified_time': '',
 'indexed_on': '2024-04-04T03:36:28.886170Z',
 'integration': {'id': 347, 'integration_type': 'google_drive'}}
print(docs[0].page_content[:400])  # 문서 내용
이전 또는 새로운 방식으로 맥락화됩니다. 어떤 수준에서는 그들이 의미에 의해 단어와 개념을 연관 지을 수 있기 때문에 "이해"합니다. 그들은 수백만 또는 수십억 번 그 방식으로 그룹화된 것을 보았기 때문입니다. 개발자들이 자신의 LLM을 신속하게 구축하여 LLM 애플리케이션을 만들 수 있도록 하려면, 여러 데이터 세트에 쉽게 접근할 수 있어야 하며, 데이터 세트를 위한 장소가 필요합니다. 

체인에서 사용하기

OPENAI_API_KEY = getpass()
os.environ["OPENAI_API_KEY"] = OPENAI_API_KEY
from langchain.chains import ConversationalRetrievalChain
from langchain_openai import ChatOpenAI

model = ChatOpenAI(model_name="gpt-3.5-turbo")
qa = ConversationalRetrievalChain.from_llm(model, retriever=retriever)
questions = [
    "RAG란 무엇인가요?",
    "대규모 언어 모델은 어떻게 작동하나요?",
]
chat_history = []

for question in questions:
    result = qa.invoke({"question": question, "chat_history": chat_history})
    chat_history.append((question, result["answer"]))
    print(f"-> **질문**: {question} \n")
    print(f"**답변**: {result['answer']} \n")
-> **질문**: RAG란 무엇인가요? 

**답변**: RAG는 Retrieval-Augmented Generation의 약자입니다. 이는 외부 지식 기반에서 사실을 검색하여 대규모 언어 모델(LLM)이 생성하는 응답을 향상시키기 위한 AI 프레임워크로, 최신의 정확한 정보를 제공하는 역할을 합니다. 이 프레임워크는 사용자들이 LLM의 생성 프로세스를 이해하는 데 도움이 되며, 모델이 신뢰할 수 있는 정보 출처에 접근할 수 있도록 보장합니다. 

-> **질문**: 대규모 언어 모델은 어떻게 작동하나요? 

**답변**: 대규모 언어 모델(LLM)은 방대한 언어 데이터 세트를 분석하여 인간의 언어 텍스트를 이해하고 생성합니다. 이들은 머신 러닝, 특히 딥 러닝에 기반하여 구성되며, 이는 데이터의 특징을 인식하도록 프로그램을 훈련하는 과정에서 인간의 개입 없이 이루어집니다. LLM은 신경망, 특히 트랜스포머 모델을 사용하여 인간 언어의 맥락을 이해함으로써 명확하지 않거나 새로운 맥락에서도 언어를 해석하는 데 더욱 능숙합니다. 개발자들은 여러 데이터 세트에 접근하고 Cloudflare의 Vectorize 및 Cloudflare Workers AI 플랫폼과 같은 서비스를 사용하여 자신의 LLM을 빠르게 구축할 수 있습니다. 

이 문서 페이지에 대한 피드백을 제공하여 도와주세요:

Last updated