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 の一般的な知識の中でドキュメントを見つけるために使用される自由なテキストです。

基本的な使用法

# 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