# LangChain > LangChain の ChatOpenAI を Kiln に向ける方法です。インストール、検証済みの invoke と stream の呼び出し、モデルが reasoning を終えたあとメッセージの content に残る内容を説明します。 Source: https://kiln.bricksum.com/docs/ja/sdks/langchain LangChain の ChatOpenAI は base URL とキーを直接受け取ります。そのため OpenAI のモデルで動いていたチェーンは、3 つの値を変えるだけで Kiln でもそのまま動きます。 ## インストール **Python** ```bash pip install langchain-openai ``` ## 接続 **Python** ```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 リファレンス](https://kiln.bricksum.com/docs/ja/api-reference)に一度だけまとめています。 上の呼び出しが到達するエンドポイントは [Chat completions](https://kiln.bricksum.com/docs/ja/api-reference/chat-completions)です。 モデル ID は API が現在提供しているものである必要があります。一覧の取得方法と、目的の ID が一覧にない場合の対処は [モデル](https://kiln.bricksum.com/docs/ja/models) のページにあります。 SDK に関係なくこのモデルが対応していない機能は [OpenAI からの移行](https://kiln.bricksum.com/docs/ja/migrating-from-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 では確認していません。