知識ベースのセクション ▾
初心者向け
投資家向け
技術関連
分析
ツール
- Cursor + Gonka AI — コーディングのための安価な LLM
- Claude Code + Gonka AI — ターミナルのための LLM
- OpenClaw + Gonka AI — 利用しやすい AI エージェント
- OpenCode + Gonka AI — コードのための無料 AI
- Continue.dev + Gonka AI — VS Code/JetBrains のための AI
- Cline + Gonka AI — VS Code の AI エージェント
- Aider + Gonka AI — AI とのペアプログラミング
- LangChain + Gonka AI — ごくわずかなコストの AI アプリケーション
- n8n + Gonka AI — 安価な AI による自動化
- Open WebUI + Gonka AI — 独自の ChatGPT
- LibreChat + Gonka AI — オープンソースのChatGPT
- Hermes Agent + Gonka AI — 格安の自律型エージェント
- Kilo Code + Gonka AI — VS Code内のAIエージェント
- Roo Code + Gonka AI — VS Code内の自律型AIエージェント
- LlamaIndex + Gonka AI — 超低コストの RAG アプリケーション
- PydanticAI + Gonka — 超低コストのタイプ付き AI エージェント
- Vercel AI SDK + Gonka AI — TypeScript での超低コスト AI アプリケーション
- TanStack AI + Gonka — TypeScript での超低コスト AI アプリケーション
- APIクイックスタート — curl, Python, TypeScript
- JoinGonka Gateway — 完全な概要
- マネジメントキー — Gonka 上の SaaS
- 最安AI API:2026年プロバイダー比較
- Cursor Proリクエスト制限に達しました — 実際の内訳と安価な代替案
- Claude Codeの安価な代替案 — 請求書の内訳と切り替え
- Clineがドルを使い果たしました — なぜエージェントはお金を使い果たすのか
- OpenClawが高すぎる — なぜエージェントはトークンを消費するのか、そして節約する方法
- OpenRouterの安価な代替案 — JoinGonka Gatewayとの比較
ツール
TanStack AI + Gonka — TypeScript での超低コスト AI アプリケーション
TanStack AI (@tanstack/ai) は、TanStack チーム (Query、Router、Table の作成者) による TypeScript 用の型安全な SDK です。プロバイダーに依存しないアーキテクチャで、ストリーミングチャット、ネイティブなツール呼び出し、エージェント、構造化出力、マルチモーダル性を一連のアダプターを介して提供します。React、Vue、Svelte、Solid、Preact 用の既製バインディング (useChat やその他のフック) と、サーバー用のヘッドレスクライアントが含まれています。
問題は、他の AI フレームワークと同様に、推論のコストです。TanStack AI は、OpenAI、Anthropic、Gemini をそのままサポートしていますが、これらのプロバイダーの直接料金 (1M トークンあたり $2.50–15) では、本番環境のチャットやエージェントが高価になります。ストリーミングダイアログやツールサイクルは、すぐに数百万トークンを消費します。
TanStack AI の主な特徴は openaiCompatible() 関数です。これは、任意の OpenAI 互換エンドポイントを接続するためのファーストクラスの方法です。つまり、JoinGonka Gateway はカスタムアダプターなしで統合できます。baseURL、キー、モデルのリストを指定するだけです。結果として、OpenAI の $2.50–15 ではなく、Gonka の分散型ネットワークを介して、1M トークンあたり $0.0005 で同じ型安全なチャットとエージェントが提供されます。
ステップ 1: TanStack AI をインストールし、キーを取得する
パッケージのインストール (コア + OpenAI アダプター、openaiCompatible が含まれています):
# pnpm
pnpm add @tanstack/ai @tanstack/ai-openai
# npm
npm install @tanstack/ai @tanstack/ai-openaiReact 上のチャットインターフェースの場合は、クライアントとフックを追加します:
pnpm add @tanstack/ai-client @tanstack/ai-reactJoinGonka API キー: まだお持ちでない場合は、gate.joingonka.ai/register で登録し、10M の無料トークンを取得し、ダッシュボード → API Keys で jg-xxx キーを作成します。1つのキーと1つの残高が、OpenAI 形式と Anthropic 形式の両方で機能します。
ステップ 2: openaiCompatible を介して Gonka を接続する
TanStack AI では、カスタムの OpenAI 互換プロバイダーは openaiCompatible() 関数で設定されます。baseURL、apiKey、およびモデルのリストを一度設定し、その後、各呼び出しでモデルを選択します。当社の Gateway は Chat Completions 形式で通信するため、api: 'chat-completions' (これはデフォルト値です) をそのままにしておきます。
import { openaiCompatible } from '@tanstack/ai-openai'
// Gonka プロバイダー — 一度設定します
export const gonka = openaiCompatible({
name: 'gonka',
baseURL: 'https://gate.joingonka.ai/v1',
apiKey: process.env.GONKA_API_KEY!, // jg-あなたのキー
api: 'chat-completions',
models: [
'Qwen/Qwen3-235B-A22B-Instruct-2507-FP8', // デフォルト
'moonshotai/Kimi-K2.6',
'MiniMaxAI/MiniMax-M2.7',
],
})サーバーでのストリーミングチャット (たとえば、任意のフルスタックフレームワークのルートハンドラまたは TanStack Start)。応答の長さは modelOptions を介して設定します。これはネイティブなワイヤパラメータ (max_tokens、temperature) の唯一のポイントです。
import { chat, toServerSentEventsResponse } from '@tanstack/ai'
import { gonka } from './gonka'
export async function POST(request: Request) {
const { messages } = await request.json()
const stream = chat({
adapter: gonka('Qwen/Qwen3-235B-A22B-Instruct-2507-FP8'),
messages,
modelOptions: { max_tokens: 8192 }, // Gateway 経由の Qwen の上限
})
return toServerSentEventsResponse(stream)
}useChat フックを介した React クライアント — サーバーから UI に応答をストリーミングします:
import { useChat } from '@tanstack/ai-react'
function Chat() {
const { messages, sendMessage, status } = useChat({ api: '/api/chat' })
return (
<div>
{messages.map((m) => (
<p key={m.id}><b>{m.role}:</b> {m.content}</p>
))}
<button onClick={() => sendMessage('Gonka とは何ですか?')}>
尋ねる
</button>
</div>
)
}サーバーなし: 同じプロバイダーがスクリプトまたはバックエンドで直接動作します — chat() を呼び出してストリームを読み込みます。Gonka への接続はすべてのオプションで同じです。
Gateway 経由のモデルパラメータ: 3つのモデルすべてのコンテキストは 128K トークンです。max_tokens の上限: Qwen3-235B — 8192、Kimi K2.6 — 3072、MiniMax-M2.7 — 4096。max_tokens が指定されていない場合、非ストリームのデフォルトは 1500 なので、長い応答の場合は明示的に指定してください。
コスト比較
TanStack AI は、OpenAI/Anthropic の直接料金と Gonka の両方で同様に動作します。baseURL のみが変更されます。しかし、価格は桁違いに異なります。TanStack AI 上の一般的な本番アプリケーションの負荷を比較してみましょう:
| シナリオ | トークン | OpenAI / Anthropic | JoinGonka Gonka |
|---|---|---|---|
| 1 つのストリーミングチャット応答 | ~3K | $0.008 — $0.045 | $0.000004 |
| ツール呼び出しを伴うエージェントサイクル | ~15K | $0.04 — $0.22 | $0.00002 |
| 1 日 1,000 件の対話 | ~3M | $7.50 — $45 | $0.003 |
| 1 か月の本番 (~100M) | ~100M | $250 — $1,500 | $0.10 |
TanStack AI のプロバイダーに依存しないアプローチは、Gonka に切り替えるのがコードの書き換えではなく、1 行の変更 (baseURL) で済むことを意味します。型安全なツール、構造化された出力、および React フックは変更されません。数千人のユーザーを持つアプリケーションの場合、その違いは毎月数万ドルになります。
Gonka の価格: 入力 ~$0.0005 / 1M トークン、出力 ×3。これは、OpenAI および Anthropic の直接料金よりも数百〜数千倍安いです。
型安全なツールとモデルの選択
TanStack AI の主な機能は、統一された toolDefinition() 契約です。ツールは一度だけ記述され (Zod、ArkType、Valibot、または JSON Schema を介した入出力)、実装はサーバーまたはクライアントにバインドされます。Qwen3-235B、Kimi K2.6、MiniMax-M2.7 は Gonka を介したネイティブのツール呼び出しをサポートしているため、エージェントはテキスト応答を解析することなく、信頼性の高い作業を行います。
import { chat, toolDefinition } from '@tanstack/ai'
import { gonka } from './gonka'
import { z } from 'zod'
const getWeather = toolDefinition({
name: 'getWeather',
description: '都市の天気を取得する',
inputSchema: z.object({ city: z.string() }),
outputSchema: z.object({ tempC: z.number() }),
}).server(async ({ city }) => {
return { tempC: 21 } // 実際の API 呼び出し
})
const stream = chat({
adapter: gonka('Qwen/Qwen3-235B-A22B-Instruct-2507-FP8'),
messages: [{ role: 'user', content: 'モスクワの天気はどうですか?' }],
tools: [getWeather],
modelOptions: { max_tokens: 8192 },
})どのモデルを選択するか:
- Qwen/Qwen3-235B-A22B-Instruct-2507-FP8 — デフォルト。最大の応答上限 (8192) と強力なツール呼び出し。エージェントと構造化出力に適しています。
- moonshotai/Kimi-K2.6 — 長い対話と推論に優れています。応答上限 3072。
- MiniMaxAI/MiniMax-M2.7 — 速度と品質のバランス、上限 4096。
TanStack AI のランタイムアダプター切り替えのおかげで、1 つのプロバイダーで 3 つすべてのモデルを保持し、オンザフライで切り替えることができます。たとえば、Qwen で重いエージェントタスクを処理し、MiniMax で迅速な応答を行います。