本文へ移動
メイン ドキュメント
ドキュメント

フレームワーク

OpenAI 互換の chat.completions を話すフレームワークは、base URL と model id の 2 つで動きます。それぞれの設定と、ぶつかりやすい点。

LangChain

Python
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(model="qwen3.8-flash-next-whitehacker", base_url="https://api.kotoba.cloud/v1",
                 api_key=os.environ["KOTOBA_API_TOKEN"], max_tokens=2048)
llm.invoke("Summarize the auth flow in this file: ...")

streaming=True でも動きます(1 チャンクで届く)。bind_tools はネイティブ tool_calls で動きます。

LlamaIndex

Python
from llama_index.llms.openai_like import OpenAILike
llm = OpenAILike(model="qwen3.8-flash-next-whitehacker", api_base="https://api.kotoba.cloud/v1",
                 api_key=os.environ["KOTOBA_API_TOKEN"], is_chat_model=True, max_tokens=2048)

OpenAI クラスではなく OpenAILike を使う(未知の model id を拒否しない)。

Vercel AI SDK

TypeScript
import { createOpenAI } from "@ai-sdk/openai";
import { generateText } from "ai";

const kotoba = createOpenAI({ baseURL: "https://api.kotoba.cloud/v1", apiKey: process.env.KOTOBA_API_TOKEN });
const { text } = await generateText({ model: kotoba.chat("qwen3.8-flash-next-whitehacker"), maxTokens: 2048, prompt: "..." });

kotoba.chat(...) を使う: 既定の kotoba(...) は Responses API を選ぶことがあり、それは 405 です。

OpenAI Agents SDK

Python
from agents import Agent, Runner, OpenAIChatCompletionsModel, set_tracing_disabled
from openai import AsyncOpenAI

client = AsyncOpenAI(base_url="https://api.kotoba.cloud/v1", api_key=os.environ["KOTOBA_API_TOKEN"])
set_tracing_disabled(True)   # tracing posts to OpenAI, not here
agent = Agent(name="reviewer", model=OpenAIChatCompletionsModel(model="qwen3.8-flash-next-whitehacker", openai_client=client))
Runner.run_sync(agent, "Review src/auth.py")

OpenAIChatCompletionsModel を明示する(既定は Responses API)。

LiteLLM

Python
import litellm
litellm.completion(model="openai/qwen3.8-flash-next-whitehacker", api_base="https://api.kotoba.cloud/v1",
                   api_key=os.environ["KOTOBA_API_TOKEN"], max_tokens=2048,
                   messages=[{"role": "user", "content": "..."}])

openai/ プレフィックスで chat.completions に固定。プロキシモードは Anthropic SDK の頁を参照。

共通の注意