LangChainは、LLMを活用したアプリケーションを開発のソフトウェアフレームワークです。このドキュメントでは、LangChainを使用してSambaNova のモデルと連携する方法について説明します。 以下の例では、LangChain から ChatSambaNovaCloud モデルを直接インスタンス化し、プロンプトを送信する方法を示します。

セットアップ

ChatSambaNovaCloud モデルを使用するには、以下の手順を実行してください。
  1. SambaNovaCloud にサインアップし、APIキーを取得します。
  2. 以下のコマンドを実行して、SambaNova 連携用の LangChain パッケージをインストールします。
pip install langchain-sambanova

認証情報の設定

以下のコマンドを実行して、cloud.sambanova.aiから受け取ったAPIキーを環境変数として登録します。
import os

sambanova_api_key = "<your-api-key>"
os.environ["SAMBANOVA_API_KEY"] = sambanova_api_key

モデルのインスタンス化

以下のように、ChatSambaNovaCloud モデルオブジェクトを作成し、chat completion を生成できます。この例では、Meta 社の Llama 3.3 70B を使用しています。
from langchain_sambanova import ChatSambaNovaCloud

llm = ChatSambaNovaCloud(
    model="Meta-Llama-3.3-70B-Instruct",
    max_tokens=1024,
    temperature=0.7,
    top_p=0.01,
)

モデルの呼び出し (プロンプト送信)

以下のコマンドを使用してモデルを呼び出すことができます。
messages = [
    (
        "system",
        "You are a helpful assistant that translates English to French. "
        "Translate the user sentence.",
    ),
    ("human", "I love programming."),
]
ai_msg = llm.invoke(messages)
print(ai_msg.content)
以下のような出力が表示されるはずです。
J'adore la programmation.

チェーンの構築

以下の例のように、プロンプトテンプレートとモデルを組み合わせて チェーン を構築することも可能です。
from langchain_core.prompts import ChatPromptTemplate

prompt = ChatPromptTemplate(
    [
        (
            "system",
            "You are a helpful assistant that translates {input_language} "
            "to {output_language}.",
        ),
        ("human", "{input}"),
    ]
)

chain = prompt | llm
response = chain.invoke(
    {
        "input_language": "English",
        "output_language": "German",
        "input": "I love programming.",
    }
)
print(response.content)
以下のような出力が表示されるはずです。
Ich liebe das Programmieren.