ノート:

OpenSearchを使用したOracle Cloud Infrastructure Searchを使用したRAGベースのチャットボットの作成

イントロダクション

このチュートリアルでは、ベクトル・データベースとしてOCI OpenSearchを使用し、OCI生成AIサービス・モデル(CohereやLlamaなど)を使用して、取得拡張生成(RAG)ベースのチャットボットを作成するプロセスを順を追って説明します。このチュートリアルの終わりまでに、ドキュメントを処理し、OpenSearchにベクトル埋込みとして格納し、会話中に関連情報を取得できるチャットボット・ソリューションを構築します。

さらに、Streamlitを使用して直感的なユーザー・インタフェースを作成し、ドキュメントのアップロード、チャットボットとの対話、関連情報への容易なアクセスを可能にします。このチュートリアルでは、環境の設定から、独自のPDFファイルを使用したチャットボットのテストまで、すべてを説明します。

目的

前提条件

タスク1: OpenSearchを使用したOCIでのOpenSearchクラスタの設定

  1. クラスタの作成詳細は、OpenSearchを使用したOCI SearchでのOpenSearchクラスタの作成を参照してください

  2. クラスタが作成されたら、APIエンドポイントとユーザー資格証明をコピーして、アプリケーションで構成します。

    OpenSearchクラスタAPI EndPoint

    OpenSearchクラスタ・ユーザーおよびpwd

タスク2: Python環境の構成

  1. OCIでOracle Linuxイメージと基本シェイプを使用してインスタンスを起動します。詳細については、Launching a Linux Instanceを参照してください。

  2. Oracle LinuxにPython 3.11をインストールします。詳細は、Pythonのインストールを参照してください。

  3. 次のコマンドを実行して、Pythonのバージョンを更新します。

    sudo update-alternatives  --set python /usr/bin/python3.11
    
  4. opensearch_rag_chatbotという名前のプロジェクト・フォルダを作成します。

  5. requirements.txtという名前のファイルを作成して、作成されたフォルダに移動し、依存関係をインストールします。

    python -m venv venv
    source ./venv/bin/activate
    pip install -r requirements.txt
    
  6. 次のコマンドを実行して、Streamlitインストールをテストします。

    streamlit hello
    
  7. StreamlitおよびOpenSearchポート(8501/9200)がファイアウォールで開いていない場合は、次のコマンドを使用して追加します。

    sudo firewall-cmd --list-all
    sudo firewall-cmd --permanent --add-port=8501/tcp
    sudo firewall-cmd --permanent --add-port=9200/tcp
    sudo firewall-cmd --reload
    

タスク3: OCI認証の設定

  1. ホーム・ディレクトリに.ociフォルダを作成し、configファイルを設定します。

    [DEFAULT]
    user=ocid1.user.oc1..
    fingerprint=40:02:56:
    key_file=/path/to/oci_api_key.pem
    tenancy=ocid1.tenancy.oc1..
    region=us-region-1
    

    ノート:詳細は、Oracle Date a Scienceの構成ファイルの作成を参照してください。

タスク4: チャットボット・エンジン・コードの記述

タスク5: ドキュメントのアップロードおよびチャットボットのテスト

  1. 次のコマンドを実行して、アプリケーションを実行します。

    cd opensearch_rag_chatbot
    python -m venv venv
    source ./venv/bin/activate
    streamlit run app.py
    
  2. 生成されたURLをコピーして、Streamlitアプリケーションにアクセスします。PDFのアップロードを開始し、チャットボットの機能をテストします。

    アップロードおよびテスト

トラブルシューティングとヒント

ノート:ログは、操作およびエラーに関する詳細情報を提供するStreamlitコンソール出力にあります。

次のステップ

次のステップでは、WordやHTMLファイルなど、より多くのドキュメント形式のサポートを追加し、様々な埋込みモデルを試して、特定のドメインでのチャットボットのレスポンス精度を向上させることで、チャットボットを拡張することを検討してください。また、複数のドキュメントのアップロード、クエリ履歴、長いプロセスに対するリアルタイムのフィードバックのサポートなど、追加機能でStreamlit UIを拡張することもできます。

謝辞

その他の学習リソース

docs.oracle.com/learnの他のラボを確認するか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスしてOracle Learning Explorerになります。

製品ドキュメントは、Oracle Help Centerを参照してください。