🕌

Dify のRAGバックエンドベクトルストアにTiDB Vector Search を設定する その2 Cohere Reranker

2025/01/10に公開

https://zenn.dev/kameping/articles/9b774f5302b988
前回の記事ではDifyで生成するRAGのナレッジとしてTiDB Vector Searchを設定し、個人情報保護員会のPDFをベクトル化させることまでを行いました。
RAGは検索された文字列をベクトル化し、TiDB Vector Searchと検索し近しい情報を抽出し、それを生成AIモデルで最終的に自然な言葉に変換して出力されることで完成します。

この記事では残りのそのステップを行っていきます。

さっそくやってみる

Rerankerの設定

Rerankerとはベクトル検索の結果として抽出された関連性のある文字列をさらに評価し、関連性の高い順に並び変えます。RAGの開発において必ずしも必須ではありませんが、DifyでChatbotを作成する際には、指定しないとエラーとなってしまうので指定します。

RerankerにはCohereを使います。

Cohere とは

Cohereは、GPT-3に似た強力な言語モデルを提供しています。これらのモデルは、テキスト生成、翻訳、要約、対話、感情分析などのタスクをサポートします。
https://cohere.com/
言語モデルで用いているOpenAIはrerank専用のモデルを提供しておらず、GPTモデルで類似の処理が可能となっています。このためこの記事ではCohereを使うことにします。
アカウントを作成すると以下の画面でテスト用APIKeyが入手可能です。


入手出来たらDifyのプロフィール画面で設定をクリックします。

モデルプロバイダーからCohereを選択します。

以下のようになればセットアップ完了です。

ナレッジへのRerankerへの組み込み

次に、過去作成したナレッジ(TiDB Serverless Vector Searchがベクトルデータを保存している部分です)を開きます。



以下のように検索手法の箇所でrerank用モデルを指定します。

TopKというのはベクトル検索結果として、候補を何件出力するか?という意味です。ここで2と指定した場合、rerankerで2つのうちどちらがより質問の文脈に近い内容が検索結果として含まれているか?と判断することになります。

アプリケーションの作成

最後にRAGアプリケーションを作成します。
画面上部で探索をクリックします。

Knowledge Retrieval + Chatbotを選択します。

既に基本的な雛形が設定されています。

KNOWLEDGE RETRIEVALをクリックしてナレッジを指定します。


(2 選択された知識)と表示された混乱しますがこれが正しい状態です。
Rerankモデルの指定を行います。

あとはプレビューでテストできます。

Discussion