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()
には1つの引数 query
があり、Rememberizer.ai
の共通知識内でドキュメントを検索するために使用される自由形式のテキストです。
例
Copy # APIキーの設定
from getpass import getpass
REMEMBERIZER_API_KEY = getpass()
Copy import os
from langchain_community.retrievers import RememberizerRetriever
os.environ["REMEMBERIZER_API_KEY"] = REMEMBERIZER_API_KEY
retriever = RememberizerRetriever(top_k_results=5)
Copy docs = retriever.get_relevant_documents(query="大規模言語モデルはどのように機能しますか?")
Copy docs[0].metadata # ドキュメントのメタ情報
Copy {'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'}}
Copy print(docs[0].page_content[:400]) # ドキュメントの内容
Copy 以前、または新しい方法で文脈付けされました。あるレベルでは、彼らは「意味」を「理解」しており、何百万回または何十億回もそのようにグループ化された単語や概念を関連付けることができます。開発者が自分のLLMを構築してLLMアプリケーションを構築し始めることができるようにするためには、複数のデータセットに簡単にアクセスできる必要があり、それらのデータセットのための場所も必要です。
チェーン内での使用
Copy OPENAI_API_KEY = getpass()
Copy os.environ["OPENAI_API_KEY"] = OPENAI_API_KEY
Copy 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)
Copy 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")
Copy -> **質問**: RAGとは何ですか?
**回答**: RAGはRetrieval-Augmented Generationの略です。これは、対話型システムの応答を強化するために外部の知識ベースから事実を取得するAIフレームワークであり、大規模言語モデル(LLM)が最新かつ正確な情報を提供できるようにします。このフレームワークは、LLMの生成プロセスを理解するのに役立ち、モデルが信頼できる情報源にアクセスできることを保証します。
-> **質問**: 大規模言語モデルはどのように機能しますか?
**回答**: 大規模言語モデル(LLM)は、言語の膨大なデータセットを分析して人間の言語テキストを理解し生成することで機能します。これらは機械学習、特に深層学習に基づいており、人間の介入なしにデータの特徴を認識するプログラムを訓練することを含みます。LLMは、特にトランスフォーマーモデルとして知られるニューラルネットワークを使用して人間の言語の文脈を理解し、あいまいまたは新しい文脈でも言語を解釈するのが得意です。開発者は、複数のデータセットにアクセスし、CloudflareのVectorizeやCloudflare Workers AIプラットフォームのようなサービスを使用することで、自分自身のLLMの構築を迅速に開始できます。
このドキュメントページについてのフィードバックを提供して、助けてください: