Integrate Together AI models with Portkeyβs AI Gateway
Portkey provides a robust and secure gateway to integrate various Large Language Models (LLMs) into applications, including Together AIβs hosted models.With Portkey, take advantage of features like fast AI gateway access, observability, prompt management, and more, while securely managing API keys through Model Catalog.
from portkey_ai import Portkey# 1. Install: pip install portkey-ai# 2. Add @together-ai provider in model catalog# 3. Use it:portkey = Portkey(api_key="PORTKEY_API_KEY")response = portkey.chat.completions.create( model="@together-ai/meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo", messages=[{"role": "user", "content": "Say this is a test"}])print(response.choices[0].message.content)
import Portkey from 'portkey-ai'// 1. Install: npm install portkey-ai// 2. Add @together-ai provider in model catalog// 3. Use it:const portkey = new Portkey({ apiKey: "PORTKEY_API_KEY"})const response = await portkey.chat.completions.create({ model: "@together-ai/meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo", messages: [{ role: "user", content: "Say this is a test" }]})console.log(response.choices[0].message.content)
from openai import OpenAIfrom portkey_ai import PORTKEY_GATEWAY_URL# 1. Install: pip install openai portkey-ai# 2. Add @together-ai provider in model catalog# 3. Use it:client = OpenAI( api_key="PORTKEY_API_KEY", # Portkey API key base_url=PORTKEY_GATEWAY_URL)response = client.chat.completions.create( model="@together-ai/meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo", messages=[{"role": "user", "content": "Say this is a test"}])print(response.choices[0].message.content)
import OpenAI from "openai"import { PORTKEY_GATEWAY_URL } from "portkey-ai"// 1. Install: npm install openai portkey-ai// 2. Add @together-ai provider in model catalog// 3. Use it:const client = new OpenAI({ apiKey: "PORTKEY_API_KEY", // Portkey API key baseURL: PORTKEY_GATEWAY_URL})const response = await client.chat.completions.create({ model: "@together-ai/meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo", messages: [{ role: "user", content: "Say this is a test" }]})console.log(response.choices[0].message.content)
# 1. Add @together-ai provider in model catalog# 2. Use it:curl https://api.portkey.ai/v1/chat/completions \ -H "Content-Type: application/json" \ -H "x-portkey-api-key: $PORTKEY_API_KEY" \ -d '{ "model": "@together-ai/meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo", "messages": [ { "role": "user", "content": "Say this is a test" } ] }'
Tip: You can also set provider="@together-ai" in Portkey() and use just model="meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo" in the request.
Together AI supports reasoning models that expose their internal chain of thought. Use the reasoning_effort parameter to control reasoning behavior, and set strict_open_ai_compliance=False to receive the thinking content in content_blocks.
from portkey_ai import Portkeyportkey = Portkey( api_key="PORTKEY_API_KEY", strict_open_ai_compliance=False)response = portkey.chat.completions.create( model="@together-ai/deepseek-ai/DeepSeek-R1", messages=[{"role": "user", "content": "Solve step by step: What is 23 * 47?"}], reasoning_effort="medium")# Access thinking content from content_blocksfor block in response.choices[0].message.content_blocks: if block.get("type") == "thinking": print("Thinking:", block["thinking"]) elif block.get("type") == "text": print("Response:", block["text"])
import Portkey from 'portkey-ai'const portkey = new Portkey({ apiKey: "PORTKEY_API_KEY", strictOpenAiCompliance: false})const response = await portkey.chat.completions.create({ model: "@together-ai/deepseek-ai/DeepSeek-R1", messages: [{ role: "user", content: "Solve step by step: What is 23 * 47?" }], reasoning_effort: "medium"})// Access thinking content from content_blocksfor (const block of response.choices[0].message.content_blocks) { if (block.type === "thinking") { console.log("Thinking:", block.thinking) } else if (block.type === "text") { console.log("Response:", block.text) }}
The reasoning response includes content_blocks with both the modelβs thinking process and the final answer. Streaming is also supported and returns reasoning chunks in the content_blocks field of the stream delta.
Thinking Mode Documentation
Learn more about thinking/reasoning support across providers
Together AI supports video generation through Portkeyβs proxy. Generate videos from text prompts and track usage in your Portkey dashboard.
from portkey_ai import Portkeyportkey = Portkey( api_key="PORTKEY_API_KEY", provider="@together-ai")body = { "prompt": "A serene sunset over the ocean with gentle waves", "model": "minimax/hailuo-02", "width": 1366, "height": 768}# Request to generate videoresponse = portkey.post( url="/v2/videos", **body)# Request to retrieve video statusresponse = portkey.get( path="/v2/videos/<video_id>",)
import Portkey from 'portkey-ai'const portkey = new Portkey({ apiKey: "PORTKEY_API_KEY", provider: "@together-ai"})const body = { prompt: "A serene sunset over the ocean with gentle waves", model: "minimax/hailuo-02", width: 1366, height: 768}// Request to generate videoconst response = await portkey.post( "/v2/videos", body)// Request to retrieve video status (use the video id from the create response)// const statusResponse = await portkey.get(`/v2/videos/${videoId}`)
curl --location 'https://api.portkey.ai/v1/v2/videos' \ --header 'x-portkey-provider: @together-ai' \ --header 'Content-Type: application/json' \ --header 'x-portkey-api-key: PORTKEY_API_KEY' \ --data '{ "prompt": "A serene sunset over the ocean with gentle waves", "model": "minimax/hailuo-02", "width": 1366, "height": 768 }'
Video generation pricing is logged in your Portkey dashboard for cost tracking.
Manage all prompt templates to Together AI in the Prompt Library. All current Together AI models are supported, and you can easily test different prompts.Use the portkey.prompts.completions.create interface to use the prompt in an application.