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 では確認していません。