together-chat-completions について
together-chat-completions は、Together AI のサーバーレス Chat Completions API を使った対話型テキスト生成向けのガイドとスクリプト集です。ストリーミング、複数ターンの会話、ツール呼び出し、構造化出力、推論モデルを扱います。
主な機能
- 01基本・ストリーミングテキスト生成
- 02複数ターンの会話状態管理
- 03ツールと関数の呼び出し
- 04構造化出力
- 05推論モデルの設定
- 06リクエストのデバッグと並列呼び出し
活用シーン
- 01Together AI でチャットボットを構築
- 02リアルタイム画面にストリーミングを追加
- 03ツール呼び出しループを実装
- 04JSON スキーマに沿った応答を生成
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ togethercomputer/ skills --skill together-chat-completionsインストール後、Claude Code で/together-chat-completionsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
agents/openai.yamlreferences/api-parameters.mdfunction-calling-patterns.mdmodels.mdreasoning-models.mdstructured-outputs.mdscripts/async_parallel.pychat_basic.pychat_basic.tsdebug_headers.pydebug_headers.tsreasoning_models.pyreasoning_models.tsstructured_outputs.pystructured_outputs.tstool_call_loop.pytool_call_loop.ts詳細
Together Chat Completions
概要
Together AI のサーバーレスチャット/補完 API を使用して、次のような対話型推論ワークロードを実行します。
- 基本的なテキスト生成
- ストリーミング応答
- 複数ターンのチャット状態
- ツール呼び出しと関数呼び出し
- 構造化出力
- 推論対応モデル
タスクが明らかにオフラインのバッチ処理、ベクトル検索、モデルのトレーニング、またはインフラストラクチャ管理でない限り、このスキルを Together AI のテキスト生成のデフォルトの入り口として扱ってください。
このスキルが適している場合
- Together AI でチャットボット、アシスタント、またはテキスト生成エンドポイントを構築する
- リアルタイムのユーザー体験にストリーミング出力を追加する
- ツール呼び出しまたは関数呼び出しのループを実装する
- モデル出力を JSON または正規表現で定義した形式に制約する
- 標準的なチャットモデルと推論モデルのどちらを選ぶか判断する
- リクエストパラメーター、モデルの動作、または応答形式をデバッグする
別のスキルに引き継ぐ場合
- 大規模なオフライン実行、バックフィル、または低コストの非同期ジョブには
together-batch-inferenceを使用します - ベクトル検索、セマンティック検索、または再ランキングには
together-embeddingsを使用します - ユーザーがモデルのトレーニングまたは適応を希望する場合は
together-fine-tuningを使用します - ユーザーが常時稼働するシングルテナントのホスティングを必要とする場合は
together-dedicated-model-inferenceを使用します - カスタムインフラストラクチャには
together-dedicated-containersまたはtogether-gpu-clustersを使用します - ハードウェアを管理せずに、定義済みの SLA(確約されたスループットと信頼性)が必要な本番環境の標準モデルワークロードについては、Together のプロビジョニング済みスループットティア(予約済み PTU 容量、最低契約期間は1か月、営業への問い合わせが必要。同じチャット/補完 API のインターフェースを使用)を案内してください
クイックルーティング
- 基本的なチャット、ストリーミング、または複数ターンの状態
- references/api-parameters.md から始めます
- scripts/chat_basic.py または scripts/chat_basic.ts を使用します
- OpenAI SDK からの移行、レート制限、またはデバッグヘッダー
- references/api-parameters.md を読みます
- scripts/debug_headers.py または scripts/debug_headers.ts を使用します
- 並列の非同期リクエスト
- scripts/async_parallel.py を使用します
- ツール呼び出しまたは関数呼び出し
- 信頼性を高めるツール、スキーマ、または tool_choice の設計
- references/function-calling-patterns.md の「ベストプラクティス」セクションを読みます
- 構造化出力
- 推論モデルまたは思考モードの切り替え
- ツールと構造化出力、またはツールとストリーミングの組み合わせ
- references/function-calling-patterns.md の「ツール呼び出しと構造化出力の組み合わせ」セクションを読みます
- references/structured-outputs.md の「構造化出力のストリーミング」セクションを読みます
- モデルの選択、コンテキスト長、または料金を考慮した選択
- references/models.md を読みます
ワークフロー
- 対象のワークロードが、バッチ処理、検索、トレーニングではなく、対話型のサーバーレス推論であることを確認します。
- レイテンシー、品質、コンテキストの要件を満たす最小のモデルを選びます。
- ジョブに必要なのが、プレーンテキスト、ツール、構造化出力、推論のどれかを判断します。
- リクエストの形式を一から考え直すのではなく、要件に合ったスクリプトを使い始めます。
- 詳細を確認する必要がある場合にのみ、関連するリファレンスファイルを参照します。
特に重要なルール
- Python スクリプトには Together v2 SDK(
together>=2.0.0)が必要です。古いバージョンを使っている場合は、最初にアップグレードしてください:uv pip install --upgrade "together>=2.0.0"。 - Python では
client.chat.completions.create()、TypeScript ではclient.chat.completions.create()を使用します。 - 複数ターンの会話では、
messagesの履歴全体を保持してください。最終テキストだけからコンテキストを再構築しないでください。 - ツールを使う場合は、モデルがツールを呼び出す → ツールを実行する → ツールの結果を追加する → 2回目のモデル呼び出しを行う、という一連の処理を実装します。
- ツール定義では、自由形式の文字列より
enumを優先し、"additionalProperties": falseを設定します。また、引数の生成をスキーマに準拠させる必要がある場合は、関数定義に"strict": trueを追加します。 - ツール名にスペース、ピリオド、ダッシュを含めてはいけません。ツールが呼び出されたと決めつけず、
finish_reason("tool_calls"と"stop")で分岐し、try/except内でfunction.argumentsを JSON として解析します。 - 安定した機械可読出力が必要な場合は、より制約の緩い JSON モードより
json_schemaを優先します。 - 推論モデルは、より深い検討が役立つタスクでのみ使用してください。それ以外の場合は、より安価な標準モデルを優先します。
- 保持された思考は、出力と入力の両方で
reasoningキーを使用します(フィールドは対称です)。以前のアシスタントターンを API に再度渡す場合は、アシスタントメッセージに"reasoning": ...を含めてください。後方互換性のため、入力では引き続きreasoning_contentも受け付けられますが、新しいコードではreasoningを優先してください。 - 推論モデルでは、OpenAI 形式の追加トークン数(
usage.completion_tokens_details.reasoning_tokens、usage.prompt_tokens_details.cached_tokens)がネストされています。一方、一部の非推論モデルでは、cached_tokensがusageの直下にフラットに返されます。どちらの場所も考慮して防御的に読み取ってください。片方の形式しか確認しないクライアントでは、値が気付かれないまま0になります。防御的な読み取り方法は references/reasoning-models.md を参照してください。 - ツール呼び出しと構造化出力を組み合わせるには、2段階の方法を使います。フェーズ1では
toolsを指定します(response_formatは指定しません)。フェーズ2では、ツールの結果を追加した後にresponse_formatを指定します(toolsは指定しません)。 - ストリーミングは
response_formatと併用できます。チャンクを蓄積し、最後に連結した文字列を JSON として解析します。 - 多数の独立したリクエストが必要な場合は、このスキルを
async_parallel.pyと組み合わせるか、バッチ推論に切り替えます。
リソース一覧
- パラメーターとレスポンスフィールド:references/api-parameters.md
- OpenAI との互換性、レート制限ヘッダー、デバッグヘッダー:references/api-parameters.md
- 関数呼び出しのパターン:references/function-calling-patterns.md
- 構造化出力:references/structured-outputs.md
- 推論モデル:references/reasoning-models.md
- モデルカタログ:references/models.md
スクリプト
- scripts/chat_basic.py と scripts/chat_basic.ts:基本的なチャット、ストリーミング、複数ターンの状態管理
- scripts/debug_headers.py と scripts/debug_headers.ts:ルーティング、レイテンシ、レート制限ヘッダーの生レスポンス検査
- scripts/async_parallel.py:独立したリクエストを並列実行する非同期 Python ファンアウト
- scripts/tool_call_loop.py と scripts/tool_call_loop.ts:完全なツール呼び出しループ
- scripts/structured_outputs.py と scripts/structured_outputs.ts:スキーマ誘導および正規表現による出力
- scripts/reasoning_models.py と scripts/reasoning_models.ts:推論フィールド、effort、ハイブリッド切り替え
公式ドキュメント
コメント
Markdown 対応