[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-together-ai-together-chat-completions":3,"mdc-admjtk-key":34,"related-repo-together-ai-together-chat-completions":1097,"related-org-together-ai-together-chat-completions":1193},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":23,"repoUrl":24,"updatedAt":25,"license":26,"forks":27,"topics":28,"repo":29,"sourceUrl":32,"mdContent":33},"together-chat-completions","generate text with Together AI","Real-time and streaming text generation via Together AI's OpenAI-compatible chat\u002Fcompletions API, including multi-turn conversations, tool and function calling, structured JSON outputs, and reasoning models. Reach for it whenever the user wants to build or debug text generation on Together AI, unless they specifically need batch jobs, embeddings, fine-tuning, dedicated endpoints, dedicated containers, or GPU clusters.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"together-ai","Together AI","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Ftogether-ai.jpg","togethercomputer",[13,17,20],{"name":14,"slug":15,"type":16},"LLM","llm","tag",{"name":18,"slug":19,"type":16},"AI","ai",{"name":21,"slug":22,"type":16},"API Development","api-development",31,"https:\u002F\u002Fgithub.com\u002Ftogethercomputer\u002Fskills","2026-07-26T05:49:11.244104",null,4,[],{"repoUrl":24,"stars":23,"forks":27,"topics":30,"description":31},[],"Skills to help your coding agents use Together AI products.","https:\u002F\u002Fgithub.com\u002Ftogethercomputer\u002Fskills\u002Ftree\u002FHEAD\u002Fskills\u002Ftogether-chat-completions","---\nname: together-chat-completions\ndescription: \"Real-time and streaming text generation via Together AI's OpenAI-compatible chat\u002Fcompletions API, including multi-turn conversations, tool and function calling, structured JSON outputs, and reasoning models. Reach for it whenever the user wants to build or debug text generation on Together AI, unless they specifically need batch jobs, embeddings, fine-tuning, dedicated endpoints, dedicated containers, or GPU clusters.\"\n---\n\n# Together Chat Completions\n\n## Overview\n\nUse Together AI's serverless chat\u002Fcompletions API for interactive inference workloads:\n\n- basic text generation\n- streaming responses\n- multi-turn chat state\n- tool and function calling\n- structured outputs\n- reasoning-capable models\n\nTreat this skill as the default entry point for Together AI text generation unless the task is\nclearly offline batch processing, vector retrieval, model training, or infrastructure management.\n\n## When This Skill Wins\n\n- Build a chatbot, assistant, or text-generation endpoint on Together AI\n- Add streaming output to a real-time user experience\n- Implement tool calling or function-calling loops\n- Constrain model output to JSON or a regex-defined shape\n- Choose between standard chat models and reasoning models\n- Debug request parameters, model behavior, or response shapes\n\n## Hand Off To Another Skill\n\n- Use `together-batch-inference` for large offline runs, backfills, or lower-cost asynchronous jobs\n- Use `together-embeddings` for vector search, semantic retrieval, or reranking\n- Use `together-fine-tuning` when the user wants to train or adapt a model\n- Use `together-dedicated-model-inference` when the user needs always-on single-tenant hosting\n- Use `together-dedicated-containers` or `together-gpu-clusters` for custom infrastructure\n- For production stock-model workloads that need a defined SLA (committed throughput and reliability) without managing hardware, point users to Together's [provisioned throughput](https:\u002F\u002Fdocs.together.ai\u002Fdocs\u002Finference\u002Fprovisioned-throughput) tier (reserved PTU capacity, one-month minimum term, contact sales; uses the same chat\u002Fcompletions API surface)\n\n## Quick Routing\n\n- **Basic chat, streaming, or multi-turn state**\n  - Start with [references\u002Fapi-parameters.md](references\u002Fapi-parameters.md)\n  - Use [scripts\u002Fchat_basic.py](scripts\u002Fchat_basic.py) or [scripts\u002Fchat_basic.ts](scripts\u002Fchat_basic.ts)\n- **OpenAI SDK migration, rate limits, or debug headers**\n  - Read [references\u002Fapi-parameters.md](references\u002Fapi-parameters.md)\n  - Use [scripts\u002Fdebug_headers.py](scripts\u002Fdebug_headers.py) or [scripts\u002Fdebug_headers.ts](scripts\u002Fdebug_headers.ts)\n- **Parallel async requests**\n  - Use [scripts\u002Fasync_parallel.py](scripts\u002Fasync_parallel.py)\n- **Tool calling or function calling**\n  - Read [references\u002Ffunction-calling-patterns.md](references\u002Ffunction-calling-patterns.md)\n  - Start from [scripts\u002Ftool_call_loop.py](scripts\u002Ftool_call_loop.py) or [scripts\u002Ftool_call_loop.ts](scripts\u002Ftool_call_loop.ts)\n- **Designing tools, schemas, or tool_choice for reliability**\n  - Read the \"Best Practices\" section in [references\u002Ffunction-calling-patterns.md](references\u002Ffunction-calling-patterns.md)\n- **Structured outputs**\n  - Read [references\u002Fstructured-outputs.md](references\u002Fstructured-outputs.md)\n  - Start from [scripts\u002Fstructured_outputs.py](scripts\u002Fstructured_outputs.py) or [scripts\u002Fstructured_outputs.ts](scripts\u002Fstructured_outputs.ts)\n- **Reasoning models or thinking-mode toggles**\n  - Read [references\u002Freasoning-models.md](references\u002Freasoning-models.md)\n  - Start from [scripts\u002Freasoning_models.py](scripts\u002Freasoning_models.py) or [scripts\u002Freasoning_models.ts](scripts\u002Freasoning_models.ts)\n- **Combining tools + structured output, or tools + streaming**\n  - Read the \"Combining Tool Calls with Structured Output\" section in\n    [references\u002Ffunction-calling-patterns.md](references\u002Ffunction-calling-patterns.md)\n  - Read the \"Streaming Structured Output\" section in\n    [references\u002Fstructured-outputs.md](references\u002Fstructured-outputs.md)\n- **Model selection, context length, or pricing-aware choices**\n  - Read [references\u002Fmodels.md](references\u002Fmodels.md)\n\n## Workflow\n\n1. Confirm that the workload is interactive serverless inference rather than batch, retrieval, or training.\n2. Pick the smallest model that satisfies latency, quality, and context requirements.\n3. Decide whether the job needs plain text, tools, structured output, or reasoning.\n4. Start from the matching script instead of re-deriving request shapes from scratch.\n5. Pull deeper details from the relevant reference file only when needed.\n\n## High-Signal Rules\n\n- Python scripts require the Together v2 SDK (`together>=2.0.0`). If the user is on an older version, they must upgrade first: `uv pip install --upgrade \"together>=2.0.0\"`.\n- Use `client.chat.completions.create()` for Python and `client.chat.completions.create()` for TypeScript.\n- Preserve full `messages` history for multi-turn conversations; do not rebuild context from final text only.\n- For tools, implement the full loop: model tool call -> execute tool -> append tool result -> second model call.\n- For tool definitions, prefer `enum` over free-form strings, set `\"additionalProperties\": false`, and add `\"strict\": true` on the function definition when you need argument generation to conform to the schema.\n- Tool names must not contain spaces, periods, or dashes. Branch on `finish_reason` (`\"tool_calls\"` vs `\"stop\"`) instead of assuming a tool was called, and parse `function.arguments` as JSON inside a try\u002Fexcept.\n- Prefer `json_schema` over looser JSON modes when the user needs stable machine-readable output.\n- Use reasoning models only when the task benefits from deeper deliberation; otherwise prefer cheaper standard models.\n- Preserved thinking uses the `reasoning` key on both output and input (the field is symmetric). When you pass a prior assistant turn back to the API, include `\"reasoning\": ...` on the assistant message; `reasoning_content` is still accepted on input for backward compatibility but prefer `reasoning` in new code.\n- Reasoning models nest extra token counts OpenAI-style (`usage.completion_tokens_details.reasoning_tokens`, `usage.prompt_tokens_details.cached_tokens`), but some non-reasoning models return `cached_tokens` flat at the top of `usage`. Read both locations defensively — clients that only check one shape will silently return `0`. See [references\u002Freasoning-models.md](references\u002Freasoning-models.md) for the defensive-read pattern.\n- To combine tool calling with structured output, use a two-phase approach: Phase 1 sends `tools` (no `response_format`), Phase 2 sends `response_format` (no `tools`) after tool results are appended.\n- Streaming works with `response_format`; accumulate chunks and parse the final concatenated string as JSON.\n- If the user needs many independent requests, combine this skill with `async_parallel.py` or hand off to batch inference.\n\n## Resource Map\n\n- **Parameters and response fields**: [references\u002Fapi-parameters.md](references\u002Fapi-parameters.md)\n- **OpenAI compatibility, rate-limit headers, and debug headers**: [references\u002Fapi-parameters.md](references\u002Fapi-parameters.md)\n- **Function-calling patterns**: [references\u002Ffunction-calling-patterns.md](references\u002Ffunction-calling-patterns.md)\n- **Structured outputs**: [references\u002Fstructured-outputs.md](references\u002Fstructured-outputs.md)\n- **Reasoning models**: [references\u002Freasoning-models.md](references\u002Freasoning-models.md)\n- **Model catalog**: [references\u002Fmodels.md](references\u002Fmodels.md)\n\n## Scripts\n\n- [scripts\u002Fchat_basic.py](scripts\u002Fchat_basic.py) and [scripts\u002Fchat_basic.ts](scripts\u002Fchat_basic.ts): basic chat, streaming, and multi-turn state\n- [scripts\u002Fdebug_headers.py](scripts\u002Fdebug_headers.py) and [scripts\u002Fdebug_headers.ts](scripts\u002Fdebug_headers.ts): raw-response inspection for routing, latency, and rate-limit headers\n- [scripts\u002Fasync_parallel.py](scripts\u002Fasync_parallel.py): async Python fan-out for independent requests\n- [scripts\u002Ftool_call_loop.py](scripts\u002Ftool_call_loop.py) and [scripts\u002Ftool_call_loop.ts](scripts\u002Ftool_call_loop.ts): full tool-call loop\n- [scripts\u002Fstructured_outputs.py](scripts\u002Fstructured_outputs.py) and [scripts\u002Fstructured_outputs.ts](scripts\u002Fstructured_outputs.ts): schema-guided and regex outputs\n- [scripts\u002Freasoning_models.py](scripts\u002Freasoning_models.py) and [scripts\u002Freasoning_models.ts](scripts\u002Freasoning_models.ts): reasoning fields, effort, and hybrid toggles\n\n## Official Docs\n\n- [Chat Overview](https:\u002F\u002Fdocs.together.ai\u002Fdocs\u002Fchat-overview)\n- [Inference Parameters](https:\u002F\u002Fdocs.together.ai\u002Fdocs\u002Finference-parameters)\n- [Serverless Models](https:\u002F\u002Fdocs.together.ai\u002Fdocs\u002Fserverless-models)\n- [Function Calling](https:\u002F\u002Fdocs.together.ai\u002Fdocs\u002Ffunction-calling)\n- [JSON Mode](https:\u002F\u002Fdocs.together.ai\u002Fdocs\u002Fjson-mode)\n- [Reasoning Overview](https:\u002F\u002Fdocs.together.ai\u002Fdocs\u002Freasoning-overview)\n- [Chat Completions API](https:\u002F\u002Fdocs.together.ai\u002Freference\u002Fchat-completions)\n",{"data":35,"body":36},{"name":4,"description":6},{"type":37,"children":38},"root",[39,47,54,60,95,100,106,139,145,234,240,510,516,545,551,842,848,929,935,1018,1024],{"type":40,"tag":41,"props":42,"children":43},"element","h1",{"id":4},[44],{"type":45,"value":46},"text","Together Chat Completions",{"type":40,"tag":48,"props":49,"children":51},"h2",{"id":50},"overview",[52],{"type":45,"value":53},"Overview",{"type":40,"tag":55,"props":56,"children":57},"p",{},[58],{"type":45,"value":59},"Use Together AI's serverless chat\u002Fcompletions API for interactive inference workloads:",{"type":40,"tag":61,"props":62,"children":63},"ul",{},[64,70,75,80,85,90],{"type":40,"tag":65,"props":66,"children":67},"li",{},[68],{"type":45,"value":69},"basic text generation",{"type":40,"tag":65,"props":71,"children":72},{},[73],{"type":45,"value":74},"streaming responses",{"type":40,"tag":65,"props":76,"children":77},{},[78],{"type":45,"value":79},"multi-turn chat state",{"type":40,"tag":65,"props":81,"children":82},{},[83],{"type":45,"value":84},"tool and function calling",{"type":40,"tag":65,"props":86,"children":87},{},[88],{"type":45,"value":89},"structured outputs",{"type":40,"tag":65,"props":91,"children":92},{},[93],{"type":45,"value":94},"reasoning-capable models",{"type":40,"tag":55,"props":96,"children":97},{},[98],{"type":45,"value":99},"Treat this skill as the default entry point for Together AI text generation unless the task is\nclearly offline batch processing, vector retrieval, model training, or infrastructure management.",{"type":40,"tag":48,"props":101,"children":103},{"id":102},"when-this-skill-wins",[104],{"type":45,"value":105},"When This Skill Wins",{"type":40,"tag":61,"props":107,"children":108},{},[109,114,119,124,129,134],{"type":40,"tag":65,"props":110,"children":111},{},[112],{"type":45,"value":113},"Build a chatbot, assistant, or text-generation endpoint on Together AI",{"type":40,"tag":65,"props":115,"children":116},{},[117],{"type":45,"value":118},"Add streaming output to a real-time user experience",{"type":40,"tag":65,"props":120,"children":121},{},[122],{"type":45,"value":123},"Implement tool calling or function-calling loops",{"type":40,"tag":65,"props":125,"children":126},{},[127],{"type":45,"value":128},"Constrain model output to JSON or a regex-defined shape",{"type":40,"tag":65,"props":130,"children":131},{},[132],{"type":45,"value":133},"Choose between standard chat models and reasoning models",{"type":40,"tag":65,"props":135,"children":136},{},[137],{"type":45,"value":138},"Debug request parameters, model behavior, or response shapes",{"type":40,"tag":48,"props":140,"children":142},{"id":141},"hand-off-to-another-skill",[143],{"type":45,"value":144},"Hand Off To Another Skill",{"type":40,"tag":61,"props":146,"children":147},{},[148,162,174,186,198,218],{"type":40,"tag":65,"props":149,"children":150},{},[151,153,160],{"type":45,"value":152},"Use ",{"type":40,"tag":154,"props":155,"children":157},"code",{"className":156},[],[158],{"type":45,"value":159},"together-batch-inference",{"type":45,"value":161}," for large offline runs, backfills, or lower-cost asynchronous jobs",{"type":40,"tag":65,"props":163,"children":164},{},[165,166,172],{"type":45,"value":152},{"type":40,"tag":154,"props":167,"children":169},{"className":168},[],[170],{"type":45,"value":171},"together-embeddings",{"type":45,"value":173}," for vector search, semantic retrieval, or reranking",{"type":40,"tag":65,"props":175,"children":176},{},[177,178,184],{"type":45,"value":152},{"type":40,"tag":154,"props":179,"children":181},{"className":180},[],[182],{"type":45,"value":183},"together-fine-tuning",{"type":45,"value":185}," when the user wants to train or adapt a model",{"type":40,"tag":65,"props":187,"children":188},{},[189,190,196],{"type":45,"value":152},{"type":40,"tag":154,"props":191,"children":193},{"className":192},[],[194],{"type":45,"value":195},"together-dedicated-model-inference",{"type":45,"value":197}," when the user needs always-on single-tenant hosting",{"type":40,"tag":65,"props":199,"children":200},{},[201,202,208,210,216],{"type":45,"value":152},{"type":40,"tag":154,"props":203,"children":205},{"className":204},[],[206],{"type":45,"value":207},"together-dedicated-containers",{"type":45,"value":209}," or ",{"type":40,"tag":154,"props":211,"children":213},{"className":212},[],[214],{"type":45,"value":215},"together-gpu-clusters",{"type":45,"value":217}," for custom infrastructure",{"type":40,"tag":65,"props":219,"children":220},{},[221,223,232],{"type":45,"value":222},"For production stock-model workloads that need a defined SLA (committed throughput and reliability) without managing hardware, point users to Together's ",{"type":40,"tag":224,"props":225,"children":229},"a",{"href":226,"rel":227},"https:\u002F\u002Fdocs.together.ai\u002Fdocs\u002Finference\u002Fprovisioned-throughput",[228],"nofollow",[230],{"type":45,"value":231},"provisioned throughput",{"type":45,"value":233}," tier (reserved PTU capacity, one-month minimum term, contact sales; uses the same chat\u002Fcompletions API surface)",{"type":40,"tag":48,"props":235,"children":237},{"id":236},"quick-routing",[238],{"type":45,"value":239},"Quick Routing",{"type":40,"tag":61,"props":241,"children":242},{},[243,280,315,335,371,391,426,461,490],{"type":40,"tag":65,"props":244,"children":245},{},[246,252],{"type":40,"tag":247,"props":248,"children":249},"strong",{},[250],{"type":45,"value":251},"Basic chat, streaming, or multi-turn state",{"type":40,"tag":61,"props":253,"children":254},{},[255,265],{"type":40,"tag":65,"props":256,"children":257},{},[258,260],{"type":45,"value":259},"Start with ",{"type":40,"tag":224,"props":261,"children":263},{"href":262},"references\u002Fapi-parameters.md",[264],{"type":45,"value":262},{"type":40,"tag":65,"props":266,"children":267},{},[268,269,274,275],{"type":45,"value":152},{"type":40,"tag":224,"props":270,"children":272},{"href":271},"scripts\u002Fchat_basic.py",[273],{"type":45,"value":271},{"type":45,"value":209},{"type":40,"tag":224,"props":276,"children":278},{"href":277},"scripts\u002Fchat_basic.ts",[279],{"type":45,"value":277},{"type":40,"tag":65,"props":281,"children":282},{},[283,288],{"type":40,"tag":247,"props":284,"children":285},{},[286],{"type":45,"value":287},"OpenAI SDK migration, rate limits, or debug headers",{"type":40,"tag":61,"props":289,"children":290},{},[291,300],{"type":40,"tag":65,"props":292,"children":293},{},[294,296],{"type":45,"value":295},"Read ",{"type":40,"tag":224,"props":297,"children":298},{"href":262},[299],{"type":45,"value":262},{"type":40,"tag":65,"props":301,"children":302},{},[303,304,309,310],{"type":45,"value":152},{"type":40,"tag":224,"props":305,"children":307},{"href":306},"scripts\u002Fdebug_headers.py",[308],{"type":45,"value":306},{"type":45,"value":209},{"type":40,"tag":224,"props":311,"children":313},{"href":312},"scripts\u002Fdebug_headers.ts",[314],{"type":45,"value":312},{"type":40,"tag":65,"props":316,"children":317},{},[318,323],{"type":40,"tag":247,"props":319,"children":320},{},[321],{"type":45,"value":322},"Parallel async requests",{"type":40,"tag":61,"props":324,"children":325},{},[326],{"type":40,"tag":65,"props":327,"children":328},{},[329,330],{"type":45,"value":152},{"type":40,"tag":224,"props":331,"children":333},{"href":332},"scripts\u002Fasync_parallel.py",[334],{"type":45,"value":332},{"type":40,"tag":65,"props":336,"children":337},{},[338,343],{"type":40,"tag":247,"props":339,"children":340},{},[341],{"type":45,"value":342},"Tool calling or function calling",{"type":40,"tag":61,"props":344,"children":345},{},[346,355],{"type":40,"tag":65,"props":347,"children":348},{},[349,350],{"type":45,"value":295},{"type":40,"tag":224,"props":351,"children":353},{"href":352},"references\u002Ffunction-calling-patterns.md",[354],{"type":45,"value":352},{"type":40,"tag":65,"props":356,"children":357},{},[358,360,365,366],{"type":45,"value":359},"Start from ",{"type":40,"tag":224,"props":361,"children":363},{"href":362},"scripts\u002Ftool_call_loop.py",[364],{"type":45,"value":362},{"type":45,"value":209},{"type":40,"tag":224,"props":367,"children":369},{"href":368},"scripts\u002Ftool_call_loop.ts",[370],{"type":45,"value":368},{"type":40,"tag":65,"props":372,"children":373},{},[374,379],{"type":40,"tag":247,"props":375,"children":376},{},[377],{"type":45,"value":378},"Designing tools, schemas, or tool_choice for reliability",{"type":40,"tag":61,"props":380,"children":381},{},[382],{"type":40,"tag":65,"props":383,"children":384},{},[385,387],{"type":45,"value":386},"Read the \"Best Practices\" section in ",{"type":40,"tag":224,"props":388,"children":389},{"href":352},[390],{"type":45,"value":352},{"type":40,"tag":65,"props":392,"children":393},{},[394,399],{"type":40,"tag":247,"props":395,"children":396},{},[397],{"type":45,"value":398},"Structured outputs",{"type":40,"tag":61,"props":400,"children":401},{},[402,411],{"type":40,"tag":65,"props":403,"children":404},{},[405,406],{"type":45,"value":295},{"type":40,"tag":224,"props":407,"children":409},{"href":408},"references\u002Fstructured-outputs.md",[410],{"type":45,"value":408},{"type":40,"tag":65,"props":412,"children":413},{},[414,415,420,421],{"type":45,"value":359},{"type":40,"tag":224,"props":416,"children":418},{"href":417},"scripts\u002Fstructured_outputs.py",[419],{"type":45,"value":417},{"type":45,"value":209},{"type":40,"tag":224,"props":422,"children":424},{"href":423},"scripts\u002Fstructured_outputs.ts",[425],{"type":45,"value":423},{"type":40,"tag":65,"props":427,"children":428},{},[429,434],{"type":40,"tag":247,"props":430,"children":431},{},[432],{"type":45,"value":433},"Reasoning models or thinking-mode toggles",{"type":40,"tag":61,"props":435,"children":436},{},[437,446],{"type":40,"tag":65,"props":438,"children":439},{},[440,441],{"type":45,"value":295},{"type":40,"tag":224,"props":442,"children":444},{"href":443},"references\u002Freasoning-models.md",[445],{"type":45,"value":443},{"type":40,"tag":65,"props":447,"children":448},{},[449,450,455,456],{"type":45,"value":359},{"type":40,"tag":224,"props":451,"children":453},{"href":452},"scripts\u002Freasoning_models.py",[454],{"type":45,"value":452},{"type":45,"value":209},{"type":40,"tag":224,"props":457,"children":459},{"href":458},"scripts\u002Freasoning_models.ts",[460],{"type":45,"value":458},{"type":40,"tag":65,"props":462,"children":463},{},[464,469],{"type":40,"tag":247,"props":465,"children":466},{},[467],{"type":45,"value":468},"Combining tools + structured output, or tools + streaming",{"type":40,"tag":61,"props":470,"children":471},{},[472,481],{"type":40,"tag":65,"props":473,"children":474},{},[475,477],{"type":45,"value":476},"Read the \"Combining Tool Calls with Structured Output\" section in\n",{"type":40,"tag":224,"props":478,"children":479},{"href":352},[480],{"type":45,"value":352},{"type":40,"tag":65,"props":482,"children":483},{},[484,486],{"type":45,"value":485},"Read the \"Streaming Structured Output\" section in\n",{"type":40,"tag":224,"props":487,"children":488},{"href":408},[489],{"type":45,"value":408},{"type":40,"tag":65,"props":491,"children":492},{},[493,498],{"type":40,"tag":247,"props":494,"children":495},{},[496],{"type":45,"value":497},"Model selection, context length, or pricing-aware choices",{"type":40,"tag":61,"props":499,"children":500},{},[501],{"type":40,"tag":65,"props":502,"children":503},{},[504,505],{"type":45,"value":295},{"type":40,"tag":224,"props":506,"children":508},{"href":507},"references\u002Fmodels.md",[509],{"type":45,"value":507},{"type":40,"tag":48,"props":511,"children":513},{"id":512},"workflow",[514],{"type":45,"value":515},"Workflow",{"type":40,"tag":517,"props":518,"children":519},"ol",{},[520,525,530,535,540],{"type":40,"tag":65,"props":521,"children":522},{},[523],{"type":45,"value":524},"Confirm that the workload is interactive serverless inference rather than batch, retrieval, or training.",{"type":40,"tag":65,"props":526,"children":527},{},[528],{"type":45,"value":529},"Pick the smallest model that satisfies latency, quality, and context requirements.",{"type":40,"tag":65,"props":531,"children":532},{},[533],{"type":45,"value":534},"Decide whether the job needs plain text, tools, structured output, or reasoning.",{"type":40,"tag":65,"props":536,"children":537},{},[538],{"type":45,"value":539},"Start from the matching script instead of re-deriving request shapes from scratch.",{"type":40,"tag":65,"props":541,"children":542},{},[543],{"type":45,"value":544},"Pull deeper details from the relevant reference file only when needed.",{"type":40,"tag":48,"props":546,"children":548},{"id":547},"high-signal-rules",[549],{"type":45,"value":550},"High-Signal Rules",{"type":40,"tag":61,"props":552,"children":553},{},[554,575,594,607,612,641,678,691,696,732,783,817,829],{"type":40,"tag":65,"props":555,"children":556},{},[557,559,565,567,573],{"type":45,"value":558},"Python scripts require the Together v2 SDK (",{"type":40,"tag":154,"props":560,"children":562},{"className":561},[],[563],{"type":45,"value":564},"together>=2.0.0",{"type":45,"value":566},"). If the user is on an older version, they must upgrade first: ",{"type":40,"tag":154,"props":568,"children":570},{"className":569},[],[571],{"type":45,"value":572},"uv pip install --upgrade \"together>=2.0.0\"",{"type":45,"value":574},".",{"type":40,"tag":65,"props":576,"children":577},{},[578,579,585,587,592],{"type":45,"value":152},{"type":40,"tag":154,"props":580,"children":582},{"className":581},[],[583],{"type":45,"value":584},"client.chat.completions.create()",{"type":45,"value":586}," for Python and ",{"type":40,"tag":154,"props":588,"children":590},{"className":589},[],[591],{"type":45,"value":584},{"type":45,"value":593}," for TypeScript.",{"type":40,"tag":65,"props":595,"children":596},{},[597,599,605],{"type":45,"value":598},"Preserve full ",{"type":40,"tag":154,"props":600,"children":602},{"className":601},[],[603],{"type":45,"value":604},"messages",{"type":45,"value":606}," history for multi-turn conversations; do not rebuild context from final text only.",{"type":40,"tag":65,"props":608,"children":609},{},[610],{"type":45,"value":611},"For tools, implement the full loop: model tool call -> execute tool -> append tool result -> second model call.",{"type":40,"tag":65,"props":613,"children":614},{},[615,617,623,625,631,633,639],{"type":45,"value":616},"For tool definitions, prefer ",{"type":40,"tag":154,"props":618,"children":620},{"className":619},[],[621],{"type":45,"value":622},"enum",{"type":45,"value":624}," over free-form strings, set ",{"type":40,"tag":154,"props":626,"children":628},{"className":627},[],[629],{"type":45,"value":630},"\"additionalProperties\": false",{"type":45,"value":632},", and add ",{"type":40,"tag":154,"props":634,"children":636},{"className":635},[],[637],{"type":45,"value":638},"\"strict\": true",{"type":45,"value":640}," on the function definition when you need argument generation to conform to the schema.",{"type":40,"tag":65,"props":642,"children":643},{},[644,646,652,654,660,662,668,670,676],{"type":45,"value":645},"Tool names must not contain spaces, periods, or dashes. Branch on ",{"type":40,"tag":154,"props":647,"children":649},{"className":648},[],[650],{"type":45,"value":651},"finish_reason",{"type":45,"value":653}," (",{"type":40,"tag":154,"props":655,"children":657},{"className":656},[],[658],{"type":45,"value":659},"\"tool_calls\"",{"type":45,"value":661}," vs ",{"type":40,"tag":154,"props":663,"children":665},{"className":664},[],[666],{"type":45,"value":667},"\"stop\"",{"type":45,"value":669},") instead of assuming a tool was called, and parse ",{"type":40,"tag":154,"props":671,"children":673},{"className":672},[],[674],{"type":45,"value":675},"function.arguments",{"type":45,"value":677}," as JSON inside a try\u002Fexcept.",{"type":40,"tag":65,"props":679,"children":680},{},[681,683,689],{"type":45,"value":682},"Prefer ",{"type":40,"tag":154,"props":684,"children":686},{"className":685},[],[687],{"type":45,"value":688},"json_schema",{"type":45,"value":690}," over looser JSON modes when the user needs stable machine-readable output.",{"type":40,"tag":65,"props":692,"children":693},{},[694],{"type":45,"value":695},"Use reasoning models only when the task benefits from deeper deliberation; otherwise prefer cheaper standard models.",{"type":40,"tag":65,"props":697,"children":698},{},[699,701,707,709,715,717,723,725,730],{"type":45,"value":700},"Preserved thinking uses the ",{"type":40,"tag":154,"props":702,"children":704},{"className":703},[],[705],{"type":45,"value":706},"reasoning",{"type":45,"value":708}," key on both output and input (the field is symmetric). When you pass a prior assistant turn back to the API, include ",{"type":40,"tag":154,"props":710,"children":712},{"className":711},[],[713],{"type":45,"value":714},"\"reasoning\": ...",{"type":45,"value":716}," on the assistant message; ",{"type":40,"tag":154,"props":718,"children":720},{"className":719},[],[721],{"type":45,"value":722},"reasoning_content",{"type":45,"value":724}," is still accepted on input for backward compatibility but prefer ",{"type":40,"tag":154,"props":726,"children":728},{"className":727},[],[729],{"type":45,"value":706},{"type":45,"value":731}," in new code.",{"type":40,"tag":65,"props":733,"children":734},{},[735,737,743,745,751,753,759,761,767,769,775,777,781],{"type":45,"value":736},"Reasoning models nest extra token counts OpenAI-style (",{"type":40,"tag":154,"props":738,"children":740},{"className":739},[],[741],{"type":45,"value":742},"usage.completion_tokens_details.reasoning_tokens",{"type":45,"value":744},", ",{"type":40,"tag":154,"props":746,"children":748},{"className":747},[],[749],{"type":45,"value":750},"usage.prompt_tokens_details.cached_tokens",{"type":45,"value":752},"), but some non-reasoning models return ",{"type":40,"tag":154,"props":754,"children":756},{"className":755},[],[757],{"type":45,"value":758},"cached_tokens",{"type":45,"value":760}," flat at the top of ",{"type":40,"tag":154,"props":762,"children":764},{"className":763},[],[765],{"type":45,"value":766},"usage",{"type":45,"value":768},". Read both locations defensively — clients that only check one shape will silently return ",{"type":40,"tag":154,"props":770,"children":772},{"className":771},[],[773],{"type":45,"value":774},"0",{"type":45,"value":776},". See ",{"type":40,"tag":224,"props":778,"children":779},{"href":443},[780],{"type":45,"value":443},{"type":45,"value":782}," for the defensive-read pattern.",{"type":40,"tag":65,"props":784,"children":785},{},[786,788,794,796,802,804,809,810,815],{"type":45,"value":787},"To combine tool calling with structured output, use a two-phase approach: Phase 1 sends ",{"type":40,"tag":154,"props":789,"children":791},{"className":790},[],[792],{"type":45,"value":793},"tools",{"type":45,"value":795}," (no ",{"type":40,"tag":154,"props":797,"children":799},{"className":798},[],[800],{"type":45,"value":801},"response_format",{"type":45,"value":803},"), Phase 2 sends ",{"type":40,"tag":154,"props":805,"children":807},{"className":806},[],[808],{"type":45,"value":801},{"type":45,"value":795},{"type":40,"tag":154,"props":811,"children":813},{"className":812},[],[814],{"type":45,"value":793},{"type":45,"value":816},") after tool results are appended.",{"type":40,"tag":65,"props":818,"children":819},{},[820,822,827],{"type":45,"value":821},"Streaming works with ",{"type":40,"tag":154,"props":823,"children":825},{"className":824},[],[826],{"type":45,"value":801},{"type":45,"value":828},"; accumulate chunks and parse the final concatenated string as JSON.",{"type":40,"tag":65,"props":830,"children":831},{},[832,834,840],{"type":45,"value":833},"If the user needs many independent requests, combine this skill with ",{"type":40,"tag":154,"props":835,"children":837},{"className":836},[],[838],{"type":45,"value":839},"async_parallel.py",{"type":45,"value":841}," or hand off to batch inference.",{"type":40,"tag":48,"props":843,"children":845},{"id":844},"resource-map",[846],{"type":45,"value":847},"Resource Map",{"type":40,"tag":61,"props":849,"children":850},{},[851,865,878,891,903,916],{"type":40,"tag":65,"props":852,"children":853},{},[854,859,861],{"type":40,"tag":247,"props":855,"children":856},{},[857],{"type":45,"value":858},"Parameters and response fields",{"type":45,"value":860},": ",{"type":40,"tag":224,"props":862,"children":863},{"href":262},[864],{"type":45,"value":262},{"type":40,"tag":65,"props":866,"children":867},{},[868,873,874],{"type":40,"tag":247,"props":869,"children":870},{},[871],{"type":45,"value":872},"OpenAI compatibility, rate-limit headers, and debug headers",{"type":45,"value":860},{"type":40,"tag":224,"props":875,"children":876},{"href":262},[877],{"type":45,"value":262},{"type":40,"tag":65,"props":879,"children":880},{},[881,886,887],{"type":40,"tag":247,"props":882,"children":883},{},[884],{"type":45,"value":885},"Function-calling patterns",{"type":45,"value":860},{"type":40,"tag":224,"props":888,"children":889},{"href":352},[890],{"type":45,"value":352},{"type":40,"tag":65,"props":892,"children":893},{},[894,898,899],{"type":40,"tag":247,"props":895,"children":896},{},[897],{"type":45,"value":398},{"type":45,"value":860},{"type":40,"tag":224,"props":900,"children":901},{"href":408},[902],{"type":45,"value":408},{"type":40,"tag":65,"props":904,"children":905},{},[906,911,912],{"type":40,"tag":247,"props":907,"children":908},{},[909],{"type":45,"value":910},"Reasoning models",{"type":45,"value":860},{"type":40,"tag":224,"props":913,"children":914},{"href":443},[915],{"type":45,"value":443},{"type":40,"tag":65,"props":917,"children":918},{},[919,924,925],{"type":40,"tag":247,"props":920,"children":921},{},[922],{"type":45,"value":923},"Model catalog",{"type":45,"value":860},{"type":40,"tag":224,"props":926,"children":927},{"href":507},[928],{"type":45,"value":507},{"type":40,"tag":48,"props":930,"children":932},{"id":931},"scripts",[933],{"type":45,"value":934},"Scripts",{"type":40,"tag":61,"props":936,"children":937},{},[938,953,967,976,990,1004],{"type":40,"tag":65,"props":939,"children":940},{},[941,945,947,951],{"type":40,"tag":224,"props":942,"children":943},{"href":271},[944],{"type":45,"value":271},{"type":45,"value":946}," and ",{"type":40,"tag":224,"props":948,"children":949},{"href":277},[950],{"type":45,"value":277},{"type":45,"value":952},": basic chat, streaming, and multi-turn state",{"type":40,"tag":65,"props":954,"children":955},{},[956,960,961,965],{"type":40,"tag":224,"props":957,"children":958},{"href":306},[959],{"type":45,"value":306},{"type":45,"value":946},{"type":40,"tag":224,"props":962,"children":963},{"href":312},[964],{"type":45,"value":312},{"type":45,"value":966},": raw-response inspection for routing, latency, and rate-limit headers",{"type":40,"tag":65,"props":968,"children":969},{},[970,974],{"type":40,"tag":224,"props":971,"children":972},{"href":332},[973],{"type":45,"value":332},{"type":45,"value":975},": async Python fan-out for independent requests",{"type":40,"tag":65,"props":977,"children":978},{},[979,983,984,988],{"type":40,"tag":224,"props":980,"children":981},{"href":362},[982],{"type":45,"value":362},{"type":45,"value":946},{"type":40,"tag":224,"props":985,"children":986},{"href":368},[987],{"type":45,"value":368},{"type":45,"value":989},": full tool-call loop",{"type":40,"tag":65,"props":991,"children":992},{},[993,997,998,1002],{"type":40,"tag":224,"props":994,"children":995},{"href":417},[996],{"type":45,"value":417},{"type":45,"value":946},{"type":40,"tag":224,"props":999,"children":1000},{"href":423},[1001],{"type":45,"value":423},{"type":45,"value":1003},": schema-guided and regex outputs",{"type":40,"tag":65,"props":1005,"children":1006},{},[1007,1011,1012,1016],{"type":40,"tag":224,"props":1008,"children":1009},{"href":452},[1010],{"type":45,"value":452},{"type":45,"value":946},{"type":40,"tag":224,"props":1013,"children":1014},{"href":458},[1015],{"type":45,"value":458},{"type":45,"value":1017},": reasoning fields, effort, and hybrid toggles",{"type":40,"tag":48,"props":1019,"children":1021},{"id":1020},"official-docs",[1022],{"type":45,"value":1023},"Official Docs",{"type":40,"tag":61,"props":1025,"children":1026},{},[1027,1037,1047,1057,1067,1077,1087],{"type":40,"tag":65,"props":1028,"children":1029},{},[1030],{"type":40,"tag":224,"props":1031,"children":1034},{"href":1032,"rel":1033},"https:\u002F\u002Fdocs.together.ai\u002Fdocs\u002Fchat-overview",[228],[1035],{"type":45,"value":1036},"Chat Overview",{"type":40,"tag":65,"props":1038,"children":1039},{},[1040],{"type":40,"tag":224,"props":1041,"children":1044},{"href":1042,"rel":1043},"https:\u002F\u002Fdocs.together.ai\u002Fdocs\u002Finference-parameters",[228],[1045],{"type":45,"value":1046},"Inference Parameters",{"type":40,"tag":65,"props":1048,"children":1049},{},[1050],{"type":40,"tag":224,"props":1051,"children":1054},{"href":1052,"rel":1053},"https:\u002F\u002Fdocs.together.ai\u002Fdocs\u002Fserverless-models",[228],[1055],{"type":45,"value":1056},"Serverless Models",{"type":40,"tag":65,"props":1058,"children":1059},{},[1060],{"type":40,"tag":224,"props":1061,"children":1064},{"href":1062,"rel":1063},"https:\u002F\u002Fdocs.together.ai\u002Fdocs\u002Ffunction-calling",[228],[1065],{"type":45,"value":1066},"Function Calling",{"type":40,"tag":65,"props":1068,"children":1069},{},[1070],{"type":40,"tag":224,"props":1071,"children":1074},{"href":1072,"rel":1073},"https:\u002F\u002Fdocs.together.ai\u002Fdocs\u002Fjson-mode",[228],[1075],{"type":45,"value":1076},"JSON Mode",{"type":40,"tag":65,"props":1078,"children":1079},{},[1080],{"type":40,"tag":224,"props":1081,"children":1084},{"href":1082,"rel":1083},"https:\u002F\u002Fdocs.together.ai\u002Fdocs\u002Freasoning-overview",[228],[1085],{"type":45,"value":1086},"Reasoning Overview",{"type":40,"tag":65,"props":1088,"children":1089},{},[1090],{"type":40,"tag":224,"props":1091,"children":1094},{"href":1092,"rel":1093},"https:\u002F\u002Fdocs.together.ai\u002Freference\u002Fchat-completions",[228],[1095],{"type":45,"value":1096},"Chat Completions API",{"items":1098,"total":1192},[1099,1118,1131,1137,1155,1164,1178],{"slug":1100,"name":1100,"fn":1101,"description":1102,"org":1103,"tags":1104,"stars":23,"repoUrl":24,"updatedAt":1117},"together-audio","process audio with Together AI","Text-to-speech and speech-to-text via Together AI, including REST, streaming, and realtime WebSocket TTS, plus transcription, translation, diarization, timestamps, and live STT. Reach for it whenever the user needs audio in or audio out on Together AI rather than chat generation, image or video creation, or model training.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1105,1108,1111,1114],{"name":1106,"slug":1107,"type":16},"Audio","audio",{"name":1109,"slug":1110,"type":16},"Speech","speech",{"name":1112,"slug":1113,"type":16},"Text-to-Speech","text-to-speech",{"name":1115,"slug":1116,"type":16},"Transcription","transcription","2026-07-26T05:49:08.246858",{"slug":159,"name":159,"fn":1119,"description":1120,"org":1121,"tags":1122,"stars":23,"repoUrl":24,"updatedAt":1130},"run asynchronous batch inference jobs","High-volume, asynchronous offline inference at up to 50% lower cost via Together AI's Batch API. Prepare JSONL inputs, upload files, create jobs, poll status, and download outputs. Reach for it whenever the user needs non-interactive bulk inference rather than real-time chat or evaluation jobs.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1123,1126,1127],{"name":1124,"slug":1125,"type":16},"Automation","automation",{"name":14,"slug":15,"type":16},{"name":1128,"slug":1129,"type":16},"Performance","performance","2026-07-17T06:08:23.919602",{"slug":4,"name":4,"fn":5,"description":6,"org":1132,"tags":1133,"stars":23,"repoUrl":24,"updatedAt":25},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1134,1135,1136],{"name":18,"slug":19,"type":16},{"name":21,"slug":22,"type":16},{"name":14,"slug":15,"type":16},{"slug":207,"name":207,"fn":1138,"description":1139,"org":1140,"tags":1141,"stars":23,"repoUrl":24,"updatedAt":1154},"deploy custom inference containers on Together AI","Custom Dockerized inference workers on Together AI's managed GPU infrastructure. Build with Sprocket SDK, configure with Jig CLI, submit async queue jobs, and poll results. Reach for it whenever the user needs container-level control rather than a standard model endpoint or raw cluster.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1142,1145,1148,1151],{"name":1143,"slug":1144,"type":16},"AI Infrastructure","ai-infrastructure",{"name":1146,"slug":1147,"type":16},"Deployment","deployment",{"name":1149,"slug":1150,"type":16},"Docker","docker",{"name":1152,"slug":1153,"type":16},"Machine Learning","machine-learning","2026-07-26T05:49:09.267892",{"slug":195,"name":195,"fn":1156,"description":1157,"org":1158,"tags":1159,"stars":23,"repoUrl":24,"updatedAt":1163},"deploy and operate Together AI models","Deploy and operate models on dedicated GPUs with Together AI's Dedicated Model Inference (DMI, the v2 dedicated endpoints API): beta endpoints, deployments, deployment profiles and hardware configs, autoscaling, traffic splitting, A\u002FB tests, shadow experiments, Prometheus metrics, and custom model or LoRA adapter uploads. Reach for it whenever the user mentions together beta endpoints or tg beta commands, client.beta.endpoints, DMI resources like ep_\u002Fdep_\u002Fcr_\u002Fml_ IDs, or wants production model serving with traffic management on Together AI. This is the current dedicated-hosting API and also covers migrating off the retired legacy v1 endpoints API (non-beta client.endpoints \u002F together endpoints), whose create and restart now return HTTP 403.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1160,1161,1162],{"name":1143,"slug":1144,"type":16},{"name":1146,"slug":1147,"type":16},{"name":14,"slug":15,"type":16},"2026-07-26T06:08:44.044039",{"slug":171,"name":171,"fn":1165,"description":1166,"org":1167,"tags":1168,"stars":23,"repoUrl":24,"updatedAt":1177},"generate embeddings and build RAG pipelines","Dense vector embeddings, semantic search, RAG pipelines, and reranking via Together AI. Generate embeddings with open-source models and rerank results behind dedicated endpoints. Reach for it whenever the user needs vector representations or retrieval quality improvements rather than direct text generation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1169,1170,1171,1174],{"name":18,"slug":19,"type":16},{"name":14,"slug":15,"type":16},{"name":1172,"slug":1173,"type":16},"RAG","rag",{"name":1175,"slug":1176,"type":16},"Search","search","2026-07-26T05:49:06.247906",{"slug":1179,"name":1179,"fn":1180,"description":1181,"org":1182,"tags":1183,"stars":23,"repoUrl":24,"updatedAt":1191},"together-evaluations","evaluate LLM outputs with Together AI","LLM-as-a-judge evaluation framework on Together AI. Classify, score, and compare model outputs, select judge models, use external-provider judges or targets, poll results and download reports. Reach for it whenever the user wants to benchmark outputs, grade responses, compare A\u002FB variants, or operationalize automated evaluations.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1184,1187,1190],{"name":1185,"slug":1186,"type":16},"Benchmarking","benchmarking",{"name":1188,"slug":1189,"type":16},"Evals","evals",{"name":14,"slug":15,"type":16},"2026-07-26T05:49:07.241553",14,{"items":1194,"total":1315},[1195,1216,1228,1235,1241,1247,1254,1260,1267,1273,1282,1296],{"slug":1196,"name":1196,"fn":1197,"description":1198,"org":1199,"tags":1200,"stars":1213,"repoUrl":1214,"updatedAt":1215},"blog-post","write structured blog posts","Write structured long-form blog posts with a consistent structure and SEO optimization.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1201,1204,1207,1210],{"name":1202,"slug":1203,"type":16},"Content Creation","content-creation",{"name":1205,"slug":1206,"type":16},"Marketing","marketing",{"name":1208,"slug":1209,"type":16},"SEO","seo",{"name":1211,"slug":1212,"type":16},"Writing","writing",1151,"https:\u002F\u002Fgithub.com\u002Ftogethercomputer\u002Ftogether-cookbook","2026-07-17T06:07:39.475433",{"slug":1217,"name":1217,"fn":1218,"description":1219,"org":1220,"tags":1221,"stars":1213,"repoUrl":1214,"updatedAt":1227},"social-media","create social media content","Create social media content including Twitter\u002FX threads, LinkedIn posts, and short-form updates.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1222,1223,1224,1226],{"name":1202,"slug":1203,"type":16},{"name":1205,"slug":1206,"type":16},{"name":1225,"slug":1217,"type":16},"Social Media",{"name":1211,"slug":1212,"type":16},"2026-07-17T06:07:38.455058",{"slug":1100,"name":1100,"fn":1101,"description":1102,"org":1229,"tags":1230,"stars":23,"repoUrl":24,"updatedAt":1117},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1231,1232,1233,1234],{"name":1106,"slug":1107,"type":16},{"name":1109,"slug":1110,"type":16},{"name":1112,"slug":1113,"type":16},{"name":1115,"slug":1116,"type":16},{"slug":159,"name":159,"fn":1119,"description":1120,"org":1236,"tags":1237,"stars":23,"repoUrl":24,"updatedAt":1130},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1238,1239,1240],{"name":1124,"slug":1125,"type":16},{"name":14,"slug":15,"type":16},{"name":1128,"slug":1129,"type":16},{"slug":4,"name":4,"fn":5,"description":6,"org":1242,"tags":1243,"stars":23,"repoUrl":24,"updatedAt":25},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1244,1245,1246],{"name":18,"slug":19,"type":16},{"name":21,"slug":22,"type":16},{"name":14,"slug":15,"type":16},{"slug":207,"name":207,"fn":1138,"description":1139,"org":1248,"tags":1249,"stars":23,"repoUrl":24,"updatedAt":1154},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1250,1251,1252,1253],{"name":1143,"slug":1144,"type":16},{"name":1146,"slug":1147,"type":16},{"name":1149,"slug":1150,"type":16},{"name":1152,"slug":1153,"type":16},{"slug":195,"name":195,"fn":1156,"description":1157,"org":1255,"tags":1256,"stars":23,"repoUrl":24,"updatedAt":1163},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1257,1258,1259],{"name":1143,"slug":1144,"type":16},{"name":1146,"slug":1147,"type":16},{"name":14,"slug":15,"type":16},{"slug":171,"name":171,"fn":1165,"description":1166,"org":1261,"tags":1262,"stars":23,"repoUrl":24,"updatedAt":1177},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1263,1264,1265,1266],{"name":18,"slug":19,"type":16},{"name":14,"slug":15,"type":16},{"name":1172,"slug":1173,"type":16},{"name":1175,"slug":1176,"type":16},{"slug":1179,"name":1179,"fn":1180,"description":1181,"org":1268,"tags":1269,"stars":23,"repoUrl":24,"updatedAt":1191},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1270,1271,1272],{"name":1185,"slug":1186,"type":16},{"name":1188,"slug":1189,"type":16},{"name":14,"slug":15,"type":16},{"slug":183,"name":183,"fn":1274,"description":1275,"org":1276,"tags":1277,"stars":23,"repoUrl":24,"updatedAt":1281},"fine-tune and adapt models on Together AI","LoRA, full fine-tuning, DPO preference tuning, VLM training, function-calling tuning, reasoning tuning, and BYOM uploads on Together AI. Reach for it whenever the user wants to adapt a model on custom data rather than only run inference, evaluate outputs, or host an existing model.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1278,1279,1280],{"name":18,"slug":19,"type":16},{"name":14,"slug":15,"type":16},{"name":1152,"slug":1153,"type":16},"2026-07-26T05:49:10.243114",{"slug":215,"name":215,"fn":1283,"description":1284,"org":1285,"tags":1286,"stars":23,"repoUrl":24,"updatedAt":1295},"orchestrate GPU clusters on Together AI","On-demand and reserved GPU clusters (H100, H200, B200) on Together AI with Kubernetes or Slurm orchestration, shared storage, credential management, and cluster scaling for ML and HPC jobs. Reach for it when the user needs multi-node compute or infrastructure control rather than a managed model endpoint.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1287,1288,1291,1294],{"name":1143,"slug":1144,"type":16},{"name":1289,"slug":1290,"type":16},"Cloud","cloud",{"name":1292,"slug":1293,"type":16},"Kubernetes","kubernetes",{"name":1152,"slug":1153,"type":16},"2026-07-26T05:49:05.252646",{"slug":1297,"name":1297,"fn":1298,"description":1299,"org":1300,"tags":1301,"stars":23,"repoUrl":24,"updatedAt":1314},"together-images","generate and edit images with Together AI","Text-to-image generation and image editing via Together AI, including FLUX and Kontext models, LoRA-based styling, reference-image guidance, and local image downloads. Reach for it whenever the user wants to generate or edit images on Together AI rather than create videos or build text-only chat applications.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1302,1305,1308,1311],{"name":1303,"slug":1304,"type":16},"Creative","creative",{"name":1306,"slug":1307,"type":16},"Design","design",{"name":1309,"slug":1310,"type":16},"Image Generation","image-generation",{"name":1312,"slug":1313,"type":16},"Multimodal","multimodal","2026-07-17T06:04:23.067755",16]