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 の共通知識内でドキュメントを検索するために使用される自由形式のテキストです。

基本的な使用法

# 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の略です。これは、対話型システムの応答を強化するために外部の知識ベースから事実を取得するAIフレームワークであり、大規模言語モデル(LLM)が最新かつ正確な情報を提供できるようにします。このフレームワークは、LLMの生成プロセスを理解するのに役立ち、モデルが信頼できる情報源にアクセスできることを保証します。 

-> **質問**: 大規模言語モデルはどのように機能しますか? 

**回答**: 大規模言語モデル(LLM)は、言語の膨大なデータセットを分析して人間の言語テキストを理解し生成することで機能します。これらは機械学習、特に深層学習に基づいており、人間の介入なしにデータの特徴を認識するプログラムを訓練することを含みます。LLMは、特にトランスフォーマーモデルとして知られるニューラルネットワークを使用して人間の言語の文脈を理解し、あいまいまたは新しい文脈でも言語を解釈するのが得意です。開発者は、複数のデータセットにアクセスし、CloudflareのVectorizeやCloudflare Workers AIプラットフォームのようなサービスを使用することで、自分自身のLLMの構築を迅速に開始できます。

このドキュメントページについてのフィードバックを提供して、助けてください:

Last updated