生成AIのLangChainの設定

OCI Generative AIとの統合用のパッケージを含むLangChainパッケージを設定します。次に、OCI Generative AIでホストされているモデルとチャットして、インストールをテストします。

開始する前に

このチュートリアルが正常に実行するには、次の構成が必要です。

1.LangChainをインストールします。

  1. pipを使用して、langchainパッケージをインストールします。
    pip install -U langchain

    このコマンドは、langchainパッケージをインストールするか、使用可能な最新バージョンにアップグレードします。古いバージョンがすでにインストールされている場合、pipはパッケージを最新のバージョンに置き換えます。

  2. langchainパッケージがインストールされていることを確認します。次のコマンドを入力します。
    pip show langchain

    このコマンドは、このパッケージを操作するために必要なパッケージを含む、langchainパッケージの詳細を表示します。たとえば、

    Requires: langchain-core, langchain-text-splitters, 
    langsmith, pydantic, PyYAML, requests, SQLAlchemy
  3. 必要なパッケージがインストールされていることを確認します。次のコマンドを入力します。
    pip list

    欠落しているパッケージをインストールします。

  4. インストールが機能することを確認します。
    python3 -c "import langchain; 
    print(langchain.__version__)"

    このコマンドは、langchainパッケージ・バージョンを出力します。

2.LangChain OCIパッケージのインストール

  1. pipを使用して、langchain-ociパッケージをインストールします。
    pip install -U langchain-oci
    重要

    langchain-communityパッケージで使用可能なOCI統合機能は非推奨になりました。前述のコマンドを使用して、langchain-ociパッケージをインストールしてください。
  2. langchain-ociパッケージがインストールされていることを確認します。次のコマンドを入力します。
    pip show langchain-oci

    langchain-ociパッケージを操作するために必要なパッケージを見つけます。たとえば、

    Requires: aiohttp, langchain, langchain-core, oci, pydantic
  3. 必要なパッケージがインストールされていることを確認します。次のコマンドを入力します。
    pip list

    欠落しているパッケージをインストールします。

3. 必要な情報の収集

このチュートリアルを完了するために必要なすべての情報を収集してください。必要な情報をセキュア・テキスト・ファイルにコピーします。

チャットするコストの検索(オプション)

このチュートリアルでは、OCI生成AIでホストされているMeta Llama 4 Scoutモデルに1つのチャット・メッセージを送信し、レスポンスを受け取ります。1つのオンデマンド・チャット・メッセージのコストはほぼゼロですが、無料ではありません。この項では、コストを計算する方法を学習し、数千のトランザクションがあるときに使用するモデルを決定する必要があります。

  1. 「価格設定ページ」に移動し、10,000トランザクション(10,000文字)の価格に基づいてモデルを選択します。10,000取引の代わりに、1,000,000トークンの一部の価格がリストされています。トークンごとに3文字から4文字を推定します。

    このチュートリアルでは、入力に約200文字または53トークンを使用し、出力に約400文字または106トークンを加算する約同じ量を使用するため、約500文字に切り上げましょう。

  2. 組織がOracle Cloud Infrastructure Generative AI - Meta Llama 4 Scoutのコストを500文字で承認している場合は、このチュートリアルに記載されている情報を使用してください。それ以外の場合は、チュートリアルのステップで、Meta Llama 4 Scoutモデルを承認済モデルに置き換えます。
  3. 大規模なトランザクションの場合、「AIと機械学習」カテゴリを選択し、OCI生成AIのコスト見積りをロードすることで、コスト見積りツールに移動することもできます。このチュートリアルの値の例を次に示します。
    • サービス・メトリック: オンデマンド
    • モデル・プロバイダ: Meta
    • モデル: Llama 4スカウト
    • 予想リクエスト数/月: 5 (Pythonファイルを5回実行したとします)
    • プロンプトの長さ(文字数): 200 (このチュートリアル用)
    • 応答の長さ(文字数): 200 (このチュートリアル用)

3.1 リージョンおよびモデルIDの取得

「生成AIの事前トレーニング済基本モデル」にナビゲートし、「メタLlama 4スカウト(新規)」を選択します。

3.2 コンパートメント情報の取得

コンパートメントのコンパートメントOCIDを取得するには:

  1. ナビゲーション・メニューを開き、「アイデンティティおよびセキュリティ」を選択します。「アイデンティティ」で、「コンパートメント」を選択します。
  2. チュートリアル用のサンドボックス・ユーザーの作成チュートリアル用に作成したコンパートメントを選択します。
  3. OCIDフィールドの「コピー」リンクを選択します。

    コンパートメントOCIDを保存します。

    例: ocid1.compartment.oc1..xxx

3.3 構成ファイルへのパスの取得

OCIのAPI認証の設定チュートリアルから、次の情報をコピーします:

  • <your-home-directory>/.oci/configなどの構成ファイルへのパス
  • 構成ファイルで使用する認証プロファイル名。たとえば、「デフォルト」です。

3.4 推論APIエンドポイントの取得

  1. 生成AI推論APIに移動します。
  2. リストされたAPIエンドポイントで、Chicagoリージョンのエンドポイントをコピーします:
    https://inference.generativeai.us-chicago-1.oci.oraclecloud.com

3.5 収集された情報

チュートリアル用に次の情報を書き留めていることを確認してください。

  • コンパートメントID: <sandbox-compartment>

    例: ocid1.compartment.oc1.aaaaaaa...

  • モデルID: meta.llama-4-scout-17b-16e-instruct
  • APIエンドポイント: https://inference.generativeai.us-chicago-1.oci.oraclecloud.com
  • 構成ファイルのパス: <path-to-config-file

    例: <your-home-directory>/.oci/config

  • 構成ファイル内の認証プロファイル名: <auth-profile-name-in-config-file>

    例: Default

4. チャット

OCI Generative AIでホストされているモデルを使用してチャットします。langchain-ociパッケージを使用してこのモデルに到達します。

重要

<sandbox-compartment>内のステップを実行してください。テナンシまたは他のコンパートメントのリソースを表示または作成する権限がない場合があります。
  1. langchain-1-translate.pyというファイルを作成します。
  2. langchain-1-translate.pyに、次のコードを追加します。
    from langchain.prompts import ChatPromptTemplate
    from langchain_oci.chat_models import ChatOCIGenAI
    from langchain.schema.output_parser import StrOutputParser
    
    prompt = ChatPromptTemplate.from_template("""Translate the following text into French. 
    If the text is a question, first translate the question 
    and then answer the question in French.: {text}""")
    
    llm = ChatOCIGenAI(
        model_id="meta.llama-4-scout-17b-16e-instruct",
        service_endpoint="https://inference.generativeai.us-chicago-1.oci.oraclecloud.com",
        compartment_id="<sandbox-compartment>",
        model_kwargs={"temperature": 0, "max_tokens": 500},
        auth_profile="<auth-profile-name-in-config-file>",  
        auth_file_location="<path-to-config-file>",
        )
    
    output_parser = StrOutputParser()
    
    chain = prompt | llm | output_parser
    input_data = {"text": "What are the four seasons in a year?"}
    
    result = chain.invoke(input_data)
    print(result)
    
  3. 次のコマンドを使用して、langchain-1-translate.py Pythonファイルを実行します。
    python3 langchain-1-translate.py

    解答の例:

    The translation of the question is:
    
    Quelles sont les quatre saisons dans une année ?
    
    And the answer is:
    
    Les quatre saisons dans une année sont : le printemps, l'été, l'automne et l'hiver.