LangChainは大規模言語モデル(LLM)を活用したアプリケーションを開発するためのソフトウェアフレームワークです。このドキュメントではLangChainを使用してSambaNovaモデルと対話する方法について説明します。 以下の例に従って、LangChainからChatSambaNovaCloudモデルを直接インスタンス化してプロンプトを送信する方法をご覧ください。

セットアップ

ChatSambaNovaCloudモデルにアクセスするには以下を実行してください:
  1. 以下を作成してください:SambaNovaCloudアカウントとAPIキーを取得してください。
  2. 以下のコマンドを実行してlangchain-sambanova統合パッケージをインストールしてください。
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モデルオブジェクトをインスタンス化してチャット補完を生成できます。以下の例ではMetaのLlama 3.1 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.