国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目次
サンプルベクトルデータベースを作成します
簡単な使用
カスタムヒント
コンテキスト圧縮の概要
実裝手順
カスタム検索者を作成します
インタフェース
結(jié)論は
よくある質(zhì)問
ホームページ テクノロジー周辺機器 AI ラングチェーンのレトリーバーのための3つの高度な戦略

ラングチェーンのレトリーバーのための3つの高度な戦略

Mar 19, 2025 am 11:16 AM

Langchainの検索:ドキュメントへの効率的かつ柔軟なアクセス

Langchainフレームワークの検索者は重要な役割を果たし、構(gòu)造化されていないクエリに基づいてドキュメントを返すための柔軟なインターフェイスを提供します。 Vectorデータベースとは異なり、検索者はドキュメントを保存する必要はありません。ベクトルデータベースはレットリアの基礎(chǔ)として機能することができますが、さまざまなタイプのレットリアがあり、それぞれが特定のユースケースにカスタマイズ可能です。

ラングチェーンのレトリーバーのための3つの高度な戦略

學習目標

  • Langchainにおける検索者の重要な役割を理解し、さまざまなアプリケーションのニーズを満たすために効率的で柔軟なドキュメント取得を?qū)g現(xiàn)します。
  • Langchainの検索者(VectorデータベースからマルチQueries、コンテキスト圧縮まで)が関連情報へのアクセスを簡素化する方法を?qū)Wびます。
  • このガイドは、Langchainのさまざまな検索者タイプをカバーし、クエリ処理とデータアクセスを最適化するために各検索者がどのようにカスタマイズされているかを説明します。
  • Langchainの検索機能を掘り下げ、ドキュメントの検索の精度と関連性を高めるためのツールをチェックしてください。
  • Langchainのカスタムレトリバーが特定のニーズにどのように適応するかを?qū)Wび、開発者が非常にレスポンシブなアプリケーションを作成できるようにします。
  • 言語モデルとベクトルデータベースを統(tǒng)合して、より正確で効率的な検索結(jié)果を取得するLangchainの検索手法を調(diào)べます。

目次

  • 學習目標
  • Langchainの検索者
  • Vectorデータベースを検索者として使用します
  • Multiquerretrieverを使用します
    • サンプルベクトルデータベースを作成します
    • 簡単な使用
    • カスタムヒント
  • コンテキスト圧縮を使用して検索する方法
    • コンテキスト圧縮の概要
  • カスタム検索者を作成します
    • インタフェース
  • 結(jié)論は
  • よくある質(zhì)問

Langchainの検索者

検索者は、入力として文字列クエリを受信し、ドキュメントオブジェクトのリストを出力します。このメカニズムにより、アプリケーションは関連情報を効率的に取得し、大規(guī)模なデータセットまたは知識ベースとの高度な相互作用を可能にします。

  1. Vectorデータベースを検索者として使用します

ベクトルデータベースレトリバーは、ベクトル表現(xiàn)を利用してドキュメントを効率的に取得します。ベクトルストレージクラスの軽量ラッパーとして機能し、検索者インターフェイスに準拠し、類似性検索や最大周辺相関(MMR)などの方法を使用します。

ベクトルデータベースから取得者を作成するには、 .as_retrieverメソッドを使用します。たとえば、顧客レビューに基づいたPinecone Vectorデータベースの場合、次のように設(shè)定できます。

 langchain_community.document_loadersからcsvloaderをインポートします
langchain_community.vectorstoresからインポートPineconeから
langchain_openaiからOpenAiembedingsをインポートします
langchain_text_splittersからImport charateTextSplitter

Loader = csvloader( "customer_reviews.csv")
documents = roader.load()
text_splitter = charateTextSplitter(chunk_size = 500、chunk_overlap = 50)
texts = text_splitter.split_documents(documents)
埋め込み= openAiembedings()
vectorStore = pinecone.from_documents(テキスト、埋め込み)
retriever = vectorStore.as_retriever()

この検索者を使用して関連するコメントを照會できるようになりました。

 docs = retriever.invoke(「顧客はバッテリー壽命についてどう思いますか?」)

デフォルトでは、検索者は類似性検索を使用しますが、検索タイプとしてMMRを指定できます。

 retriever = vectorStore.as_retriever(search_type = "mmr")

さらに、類似性スコアのしきい値などのパラメーターを渡すか、TOP-Kを使用して結(jié)果の數(shù)を制限できます。

 retriever = vectorStore.AS_RETRIEVER(search_kwargs = {"k":2、 "score_threshold":0.6})

出力:

ラングチェーンのレトリーバーのための3つの高度な戦略

Vectorデータベースを検索者として使用すると、関連情報への効率的なアクセスを保証することにより、ドキュメントの取得を強化できます。

  1. Multiquerretrieverを使用します

Multiquerretrieverは、クエリの言葉遣いや次の埋め込みの変更などの一般的な制限に対処することにより、距離ベースのベクターデータベースの検索を強化します。大規(guī)模な言語モデル(LLM)自動化プロンプト調(diào)整を使用して、異なる角度からの特定のユーザー入力に対して複數(shù)のクエリを生成できます。このプロセスにより、各クエリに関連するドキュメントの検索が可能になり、結(jié)果を組み合わせて潛在的なドキュメントのより豊富なセットを作成します。

サンプルベクトルデータベースを作成します

MultiquerreTrieverを?qū)g証するには、CSVファイルから製品の説明を使用してベクターストアを作成しましょう。

 langchain_community.document_loadersからcsvloaderをインポートします
langchain_community.vectorstoresからImport faissから
langchain_openaiからOpenAiembedingsをインポートします
langchain_text_splittersからImport charateTextSplitter

#製品の説明loader = csvloader( "product_descriptions.csv")
data = roader.load()

#テキストをブロックに分割したtext_splitter = charateTextSplitter(chunk_size = 300、chunk_overlap = 50)
documents = text_splitter.split_documents(data)

#ベクトルストレージ埋め込み= openAiembeddings()を作成します
vectordb = faiss.from_documents(documents、embeddeds)

簡単な使用

MultiquerreTrieverを使用するには、クエリ生成に使用されるLLMを指定します。

 langchain.retrievers.multi_queryからImport multiquerretrieverから
langchain_openaiからChatopenaiをインポートします

質(zhì)問= "顧客はスマートフォンでどのような機能を大切にしていますか?」
LLM = Chatopenai(溫度= 0)
retriever_from_llm = multiqueryretriever.from_llm(
    retriever = vectordb.as_retriever()、llm = llm
))
anible_docs = retriever_from_llm.invoke(question)
len(sinque_docs)#取得した一意のドキュメントの數(shù)

出力:

ラングチェーンのレトリーバーのための3つの高度な戦略

Multiquerretrieverは複數(shù)のクエリを生成し、検索されたドキュメントの多様性と関連性を高めます。

カスタムヒント

生成されたクエリを調(diào)整するには、カスタムプロンプトテンプレートと出力パーサーを作成できます。

 langchain_core.output_parsersからImport BaseOutputParserから
langchain_core.promptsからImport PromptTemplateから
インポートリストの入力から

#カスタム出力パーサークラスlinElistOutputPuparser(baseOutputPurser [list [str]]):
    def parse(self、text:str) - > list [str]:
        return list(filter(none、text.strip()。split( "\ n")))

output_parser = lineListOutputParser()

#query生成query_prompt = prompttemplateのカスタムプロンプト
    input_variables = ["question"]、
    template = "" "質(zhì)問の5つの異なるバージョンを生成:{question}" ""
))

llm_chain = query_prompt |

#Retriver Retrieverを初期化= MultiqueryRetriever(
    retriever = vectordb.as_retriever()、llm_chain = llm_chain、parser_key = "lines"
))

anible_docs = retriever.invoke( "顧客はスマートフォンでどのような機能を大切にしていますか?")
len(sinque_docs)#取得した一意のドキュメントの數(shù)

出力

ラングチェーンのレトリーバーのための3つの高度な戦略

MultiquerreTrieverを使用すると、より効率的な検索プロセスを?qū)g現(xiàn)し、ユーザークエリに基づいて多様で包括的な結(jié)果を確保できます。

  1. コンテキスト圧縮を使用して検索する方法

特に、ユーザーが行う特定のクエリについてデータの摂取がわからない場合、ドキュメントの大規(guī)模なコレクションから関連情報を取得することは困難です。多くの場合、貴重な洞察は長い文書に隠されており、その結(jié)果、言語モデル(LLM)への非効率的で費用のかかる呼び出しが行われ、理想よりも応答性が低くなります。コンテキスト圧縮は、検索プロセスを改善し、関連情報がユーザーのクエリに基づいてのみ返されるようにすることにより、この問題を解決します。この圧縮には、単一のドキュメントの內(nèi)容を減らし、無関係なドキュメントを除外することが含まれます。

コンテキスト圧縮の概要

コンテキスト圧縮検索者は、基本的な検索者をドキュメントコンプレッサーと統(tǒng)合することにより実行されます。この方法では、ドキュメント全體を返すものではありませんが、クエリによって提供されるコンテキストに基づいてドキュメントを圧縮します。この圧縮には、単一のドキュメントの內(nèi)容を減らし、無関係なドキュメントを除外することが含まれます。

実裝手順

  1. 基本検索者の初期化:最初に通常のベクトルストレージ検索者を設(shè)定します。たとえば、気候変動政策に関するニュース記事を検討してください。
 langchain_community.document_loadersからtextloaderをインポートします
langchain_community.vectorstoresからImport faissから
langchain_openaiからOpenAiembedingsをインポートします
langchain_text_splittersからImport charateTextSplitter

#記事をロードして分割しますdocuments = textloader( "climate_change_policy.txt")。load()
text_splitter = charateTextSplitter(chunk_size = 1000、chunk_overlap = 0)
texts = text_splitter.split_documents(documents)

#ベクターストレージレトリバーレトリバー= faiss.from_documents(texts、openaiembeddings())。as_retriever()を初期化する
  1. 初期クエリを?qū)g行します:クエリを?qū)g行して、関連する情報と無関係な情報を含む可能性のある基本的なレトリバーによって返された結(jié)果を表示します。
 docs = retriever.invoke(「気候変動と戦うためにどのような行動が提案されていますか?」)
  1. コンテキスト圧縮を使用した強化された検索:基本的な検索者をContextCompressionRretrieverでラップし、LLMChainExtractorを使用して関連するコンテンツを抽出します。
 langchain.retrieversからContextCompressionretrieverをインポートします
langchain.retrievers.document_compressorsからllmchainextractorをインポートします
langchain_openaiインポートOpenaiから

llm = openai(溫度= 0)
Compressor = llmchainextractor.from_llm(LLM)
compression_retriever = contextualCompressionretriever(
    base_compressor = compressor、base_retriever = retriever
))

#compressed_docs = compression_retriever.invokeを?qū)g行する( "気候変動と戦うためにどのような行動が提案されているのか?")

圧縮結(jié)果を表示する: ContextualCompressionRretrieverの最初のドキュメントを処理し、クエリに関連する関連情報のみを抽出し、それにより応答を最適化します。

カスタム検索者を作成します

多くのLLMアプリケーションで検索が不可欠です。そのタスクは、ユーザークエリに基づいて関連するドキュメントを取得することです。これらのドキュメントはLLMプロンプトとしてフォーマットされており、適切な応答を生成できるようにします。

インタフェース

カスタムレトリバーを作成するには、BaseReTrieverクラスを拡張し、以下を?qū)g裝してください。

方法 説明する 必須/オプション
_get_relevant_documents クエリに関連するドキュメントを検索します。 必須
_aget_relevant_documents ネイティブサポートのための非同期実裝。 オプション

BaseReTrieverから継承されたものは、レトリバーに標準の実行可能な機能を提供します。

これが簡単なレトリバーの例です。

インポートリストの入力から
langchain_core.documentsからインポートドキュメントから
langchain_core.retrieversからImport Baseretrieverから

クラスToyretriever(Baseretriever):
    "" "ユーザーのクエリを含む最初のkドキュメントを返すシンプルなレトリバー" "" "
    ドキュメント:リスト[ドキュメント]
    K:int

    def _get_relevant_documents(self、query:str) - > list [document]:
        matching_documents = [self.documentsのdoc for doc for self.documents query.lower()in doc.page_content.lower()]
        return matching_documents [:self.k]

#例の使用文書= [
    document( "犬は素晴らしい會社です。"、{"Type": "dog"})、
    document( "貓は獨立したペットです。"、{"タイプ": "cat"})、
]

retriever = toyretriever(documents = documents、k = 1)
result = retriever.invoke( "dog")
print(result [0] .page_content)

出力

ラングチェーンのレトリーバーのための3つの高度な戦略

この実裝は、ユーザー入力に基づいてドキュメントを取得する簡単な方法を提供し、Langchainのカスタム検索者のコア機能を示しています。

結(jié)論は

Langchainフレームワークでは、検索者は、さまざまなドキュメントタイプとユースケースで関連情報に効果的にアクセスできる強力なツールです。さまざまな検索者タイプ(ベクトルストレージレトリバー、マルチクリーレットリリーバー、コンテキスト圧縮リトリーバーなど)を理解および実裝することにより、開発者はアプリケーションの特定のニーズに基づいてドキュメント取得をカスタマイズできます。

各レトリバータイプには、マルチクリーレットリリーバーの使用からコンテキスト圧縮の使用まで、応答を最適化することまで、獨自の利點があります。さらに、カスタム検索者を作成すると、組み込みのオプションが満たされない可能性のある特別な要件に対応するための柔軟性が高まります。これらの検索手法を習得することで、開発者は言語モデルと大規(guī)模なデータセットの可能性を活用するより効率的で応答性の高いアプリケーションを構(gòu)築できます。

よくある質(zhì)問

Q1。 A1検索者の主な機能は、クエリに基づいて関連するドキュメントを取得することです。これにより、ドキュメント自體を保存せずに、アプリケーションが大規(guī)模なデータセットで必要な情報に効果的にアクセスできます。

Q2。 A2は、類似性ベースの検索を可能にする方法でドキュメントを保存するために使用されます。ベクトルデータベースは検索者の一部になりますが、検索者のタスクは関連情報の取得に焦點を當てています。

Q3。 A3言語モデルを使用して複數(shù)のクエリのバリエーションを作成することにより、MultiquerreTrieverが検索結(jié)果を改善します。この方法は、さまざまな文言の問題に関連する可能性のあるより広い範囲のドキュメントをキャプチャし、それにより検索情報の豊かさを高めます。

Q4。 A4コンテキストは、ドキュメントのコンテンツを関連する部品のみに削減し、無関係な情報を除外することにより、検索結(jié)果を最適化します。これは、完全なドキュメントには無関係な詳細が含まれており、リソースを節(jié)約し、より集中化された応答を提供する可能性があるため、大規(guī)模なコレクションで特に役立ちます。

Q5。 a5マルチクリーレットレバーをセットアップするには、ドキュメントストレージのためのベクトルデータベース、複數(shù)のクエリの視點を生成するための言語モデル(LLM)、およびクエリ生成をさらに最適化するためのオプションのカスタムプロンプトテンプレートが必要です。

以上がラングチェーンのレトリーバーのための3つの高度な戦略の詳細內(nèi)容です。詳細については、PHP 中國語 Web サイトの他の関連記事を參照してください。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當する法的責任を負いません。盜作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

寫真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中國語版

SublimeText3 中國語版

中國語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Kimi K2:最も強力なオープンソースエージェントモデル Kimi K2:最も強力なオープンソースエージェントモデル Jul 12, 2025 am 09:16 AM

今年初めにゲナイ産業(yè)を混亂させたオープンソースの中國モデルの洪水を覚えていますか? Deepseekはほとんどの見出しを取りましたが、Kimi K1.5はリストの著名な名前の1つでした。そして、モデルはとてもクールでした。

Grok 4 vs Claude 4:どちらが良いですか? Grok 4 vs Claude 4:どちらが良いですか? Jul 12, 2025 am 09:37 AM

2025年半ばまでに、AIの「武器競爭」は熱くなり、Xaiと人類は両方ともフラッグシップモデルであるGrok 4とClaude 4をリリースしました。これら2つのモデルは、設(shè)計哲學と展開プラットフォームの反対側(cè)にありますが、

今日、今日私たちの間を歩いている10の驚くべきヒューマノイドロボット 今日、今日私たちの間を歩いている10の驚くべきヒューマノイドロボット Jul 16, 2025 am 11:12 AM

しかし、おそらく1つを見るのに10年も待つ必要はありません。実際、本當に有用で人間のような機械の最初の波と考えられるものは、すでにここにあります。 近年、多くのプロトタイプと生産モデルがTから抜け出しています

コンテキストエンジニアリングは' new'迅速なエンジニアリング コンテキストエンジニアリングは' new'迅速なエンジニアリング Jul 12, 2025 am 09:33 AM

前年まで、迅速なエンジニアリングは、大規(guī)模な言語モデル(LLMS)と対話するための重要なスキルと見なされていました。しかし、最近、LLMは推論と理解能力を大幅に進めています。當然、私たちの期待

LeiaのImmersityモバイルアプリは、毎日の寫真に3D深さをもたらします LeiaのImmersityモバイルアプリは、毎日の寫真に3D深さをもたらします Jul 09, 2025 am 11:17 AM

レイア獨自のニューラル深度エンジンの上に構(gòu)築されたアプリは、靜止畫像を処理し、シミュレートされた動き(パン、ズーム、視差効果など)とともに自然な深さを追加し、SCEに踏み込む印象を與える短いビデオリールを作成します。

7種類のAIエージェントは何ですか? 7種類のAIエージェントは何ですか? Jul 11, 2025 am 11:08 AM

AIエンジンなど、ミラノからの新しい衣料品コレクションに関する詳細なフィードバックや、世界中で事業(yè)を展開しているビジネスの自動市場分析、または大規(guī)模な車両艦隊を管理するインテリジェントシステムなど、洗練されたものを想像してください。

これらのAIモデルは言語を?qū)Wぶことができず、戦略を?qū)Wびました これらのAIモデルは言語を?qū)Wぶことができず、戦略を?qū)Wびました Jul 09, 2025 am 11:16 AM

キングスカレッジロンドンとオックスフォード大學の研究者からの新しい研究は、Openai、Google、および人類が反復囚のジレンマに基づいた激しい鳴き聲競爭で一緒に投げ込まれたときに起こったことの結(jié)果を共有しています。これはノーでした

隠されたコマンド危機:研究者はAIを公開します 隠されたコマンド危機:研究者はAIを公開します Jul 13, 2025 am 11:08 AM

科學者は、システムをバイパスするための賢いが驚くべき方法を発見しました。 2025年7月は、研究者がアカデミックな提出物に目に見えない指示を挿入した精巧な戦略の発見をマークしました。これらの秘密の指示は尾でした

See all articles