LangChain 統合 RememberizerをLangChainリトリーバーとして統合することで、あなたの LangChainアプリケーションに強力なベクターデータベース検索へのアクセスを提供できます。
このノートブックでは、下流で使用されるドキュメント形式であるRememberizer
からドキュメントを取得する方法を示します。
準備
APIキーが必要です:一般的な知識を作成した後に取得できます。一般的な知識の作成方法についての詳細な手順は、APIキーの登録と使用 を参照してください。
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の略です。これは、外部の知識ベースから事実を取得して、大規模言語モデル(LLM)が生成する応答を最新かつ正確な情報で強化するAIフレームワークです。このフレームワークは、ユーザーがLLMの生成プロセスを理解するのを助け、モデルが信頼できる情報源にアクセスできることを保証します。
-> **質問**: 大規模言語モデルはどのように機能しますか?
**回答**: 大規模言語モデル(LLM)は、膨大な言語データセットを分析して人間の言語テキストを理解し生成します。これらは機械学習、特に深層学習に基づいており、人間の介入なしにデータの特徴を認識するプログラムをトレーニングすることを含みます。LLMは、特にトランスフォーマーモデルを使用して人間の言語の文脈を理解し、あいまいまたは新しい文脈でも言語を解釈する能力を向上させます。開発者は、複数のデータセットにアクセスし、CloudflareのVectorizeやCloudflare Workers AIプラットフォームのようなサービスを利用することで、自分自身のLLMを迅速に構築できます。
このドキュメントページに関するフィードバックを提供して、私たちを助けてください: