本文へスキップ
Markdown で表示

LangChain

LangChain の ChatOpenAI は base URL とキーを直接受け取ります。そのため OpenAI のモデルで動いていたチェーンは、3 つの値を変えるだけで Kiln でもそのまま動きます。

インストール

bash
pip install langchain-openai

接続

python
import os
from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    model="qwen3-32b",
    base_url="https://api.bricksum.com/v1",
    api_key=os.environ["KILN_API_KEY"],  # sk-bk-...
    max_tokens=800,
)

print(llm.invoke("Write a haiku about kilns.").content)

for chunk in llm.stream("And one about pottery."):
    print(chunk.content, end="")

Kiln での違い

  • ChatOpenAI を Kiln に向ける langchain-openai の統合をそのまま使い、model、base_url、api_key だけを変更してください。別途インストールする Kiln 専用の LangChain パッケージはなく、予定もありません。
  • content には回答だけ モデルの reasoning はメッセージの content に含まれないため、.content には回答のテキストだけが入ります。ただし reasoning トークンも課金され max_tokens に含まれるため、余裕を確保してください。例の 800 はこのモデルで測定していない初期値のため、content が空で finish_reason が "length" なら増やしてください。

base URL、認証、すべてのエンドポイントが共通で受け取るリクエストパラメータ、レスポンスの形式、ストリーミング、エラーコードは、どの SDK を使っても同じです。これらは API リファレンスに一度だけまとめています。 上の呼び出しが到達するエンドポイントは Chat completionsです。 モデル ID は API が現在提供しているものである必要があります。一覧の取得方法と、目的の ID が一覧にない場合の対処は モデル のページにあります。 SDK に関係なくこのモデルが対応していない機能は OpenAI からの移行 のページにまとめています。

メモ
このページのスニペットは 2026-09-21 に langchain-openai 1.6.2, langchain-core 1.6.3 の環境で Kiln API に対して実行し、動作を確認しています。 未確認の項目: その実行は gpt-oss-120b で行いました。ページは現在 qwen3-32b を使っており、このモデルではまだ再実行していません。チャット呼び出しとストリーミングは実行して確認しています。エージェント、ツールのバインド、with_structured_output は Kiln では確認していません。