生成AI用のLangChainの設定

OCI生成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つのオンデマンド・チャット・メッセージのコストは0ドル近くですが、無料ではありません。この項では、コストの計算方法を学習し、数千件のトランザクションがある場合にどのモデルを使用するかを決定することをお薦めします。

  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 Scout
    • 1か月当たりの予想リクエスト数: 5 (Pythonファイルを5回実行するとします)
    • プロンプトの長さ(文字数): 200 (このチュートリアル用)
    • レスポンスの長さ(文字数): 200 (このチュートリアル用)

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. Generative AI Inference APIに移動します。
  2. リストされたAPIエンドポイントで、シカゴ・リージョンのエンドポイントをコピーします:
    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.