本页还没有译文
本页 56 段还没译成日本語,下面显示的是英文原文。DeepInfra
还没翻译译自英文(ai-sdk.dev)本页 56 段都还没译
The DeepInfra provider contains support for state-of-the-art models through the DeepInfra API, including Llama 3, Mixtral, Qwen, and many other popular open-source models.
Start with AI Gateway for models in its catalog (recommended), or use @ai-sdk/deepinfra to connect directly to DeepInfra.
import { generateText } from 'ai';
const { text } = await generateText({
model: 'anthropic/claude-sonnet-5.5',
prompt: 'Write a vegetarian lasagna recipe for 4 people.',
});
console.log(text);Using AI Gateway
The AI SDK uses AI Gateway by default for model strings. Gateway provides access to models across providers through a single API key, with usage and cost tracking. Install ai:
pnpm add ainpm install aiyarn add aibun add aiSet an AI Gateway API key in your environment:
export AI_GATEWAY_API_KEY=your_api_key_hereVercel deployments can also use OIDC authentication. See the AI Gateway provider documentation for configuration and the model catalog for available models.
The example sets providerOptions.gateway.order to ['deepinfra']. This sends the request to DeepInfra first, then falls back to other available providers of the same model if DeepInfra is unavailable or the request fails. order sets a preference; it does not restrict fallback to DeepInfra. See provider ordering.
The dropdown lists models served by DeepInfra through Gateway with a corresponding direct-provider example. Provider availability depends on the model and your team's Provider Allowlist.
Using @ai-sdk/deepinfra
For direct access to DeepInfra, install ai and @ai-sdk/deepinfra:
pnpm add ai @ai-sdk/deepinfranpm install ai @ai-sdk/deepinfrayarn add ai @ai-sdk/deepinfrabun add ai @ai-sdk/deepinfraSet your DeepInfra API credential in the DEEPINFRA_API_KEY environment variable:
export DEEPINFRA_API_KEY=your_api_key_hereAI Gateway does not expose every API in @ai-sdk/deepinfra. Use the direct provider for provider-specific APIs or custom connection settings.
Note
The following sections document the direct @ai-sdk/deepinfra provider,
including its model factories and settings. Gateway model and feature
availability can differ.
Provider Instance
You can import the default provider instance deepInfra from @ai-sdk/deepinfra:
import { deepInfra } from '@ai-sdk/deepinfra';If you need a customized setup, you can import createDeepInfra from @ai-sdk/deepinfra and create a provider instance with your settings:
import { createDeepInfra } from '@ai-sdk/deepinfra';
const deepInfra = createDeepInfra({
apiKey: process.env.DEEPINFRA_API_KEY ?? '',
});You can use the following optional settings to customize the DeepInfra provider instance:
-
baseURL string
Use a different URL prefix for API calls, e.g. to use proxy servers. The default prefix is
https://api.deepinfra.com/v1.Note: Language models and embeddings use OpenAI-compatible endpoints at
{baseURL}/openai, while image models use{baseURL}/inference. -
apiKey string
API key that is being sent using the
Authorizationheader. It defaults to theDEEPINFRA_API_KEYenvironment variable. -
headers Record<string,string>
Custom headers to include in the requests.
-
fetch (input: RequestInfo, init?: RequestInit) => Promise<Response>
Custom fetch implementation. Defaults to the global
fetchfunction. You can use it as a middleware to intercept requests, or to provide a custom fetch implementation for e.g. testing.
Language Models
You can create language models using a provider instance. The first argument is the model ID, for example:
import { deepInfra } from '@ai-sdk/deepinfra';
import { generateText } from 'ai';
const { text } = await generateText({
model: deepInfra('meta-llama/Meta-Llama-3.1-70B-Instruct'),
prompt: 'Write a vegetarian lasagna recipe for 4 people.',
});DeepInfra language models can also be used in the streamText function (see AI SDK Core).
Model Capabilities
| Model | Image Input | Object Generation | Tool Usage | Tool Streaming |
|---|---|---|---|---|
meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8 | ✓ | ✗ | ✗ | ✗ |
meta-llama/Llama-4-Scout-17B-16E-Instruct | ✓ | ✗ | ✗ | ✗ |
meta-llama/Llama-3.3-70B-Instruct-Turbo | ✗ | ✓ | ✓ | ✓ |
meta-llama/Llama-3.3-70B-Instruct | ✗ | ✓ | ✓ | ✓ |
meta-llama/Meta-Llama-3.1-405B-Instruct | ✗ | ✓ | ✓ | ✓ |
meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo | ✗ | ✓ | ✓ | ✓ |
meta-llama/Meta-Llama-3.1-70B-Instruct | ✗ | ✓ | ✓ | ✓ |
meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo | ✗ | ✓ | ✓ | ✗ |
meta-llama/Meta-Llama-3.1-8B-Instruct | ✗ | ✓ | ✓ | ✓ |
meta-llama/Llama-3.2-11B-Vision-Instruct | ✓ | ✓ | ✗ | ✗ |
meta-llama/Llama-3.2-90B-Vision-Instruct | ✓ | ✓ | ✗ | ✗ |
mistralai/Mixtral-8x7B-Instruct-v0.1 | ✗ | ✓ | ✓ | ✗ |
deepseek-ai/DeepSeek-V3 | ✗ | ✓ | ✓ | ✓ |
deepseek-ai/DeepSeek-R1 | ✗ | ✗ | ✗ | ✗ |
deepseek-ai/DeepSeek-R1-Distill-Llama-70B | ✗ | ✗ | ✗ | ✗ |
deepseek-ai/DeepSeek-R1-Turbo | ✗ | ✗ | ✗ | ✗ |
nvidia/Llama-3.1-Nemotron-70B-Instruct | ✗ | ✓ | ✓ | ✗ |
Qwen/Qwen2-7B-Instruct | ✗ | ✓ | ✗ | ✗ |
Qwen/Qwen2.5-72B-Instruct | ✗ | ✓ | ✓ | ✓ |
Qwen/Qwen2.5-Coder-32B-Instruct | ✗ | ✓ | ✗ | ✗ |
Qwen/QwQ-32B-Preview | ✗ | ✓ | ✗ | ✗ |
google/codegemma-7b-it | ✗ | ✗ | ✗ | ✗ |
google/gemma-2-9b-it | ✗ | ✗ | ✗ | ✗ |
microsoft/WizardLM-2-8x22B | ✗ | ✗ | ✗ | ✗ |
Note
The table above lists popular models. Please see the DeepInfra docs for a full list of available models. You can also pass any available provider model ID as a string if needed.
Image Models
You can create DeepInfra image models using the .image() factory method.
For more on image generation with the AI SDK see generateImage().
import { deepInfra, type DeepInfraImageModelOptions } from '@ai-sdk/deepinfra';
import { generateImage } from 'ai';
const { image } = await generateImage({
model: deepInfra.image('stabilityai/sd3.5'),
prompt: 'A futuristic cityscape at sunset',
aspectRatio: '16:9',
});Note
Model support for size and aspectRatio parameters varies by model. Please
check the individual model documentation on DeepInfra's models
page for supported options and
additional parameters.
Model-specific options
You can pass model-specific parameters using the providerOptions.deepinfra field:
import { deepInfra } from '@ai-sdk/deepinfra';
import { generateImage } from 'ai';
const { image } = await generateImage({
model: deepInfra.image('stabilityai/sd3.5'),
prompt: 'A futuristic cityscape at sunset',
aspectRatio: '16:9',
providerOptions: {
deepinfra: {
num_inference_steps: 30,
} satisfies DeepInfraImageModelOptions,
},
});The following options are available via providerOptions.deepinfra. You can
type them with DeepInfraImageModelOptions.
-
negative_prompt string
Text description of what to avoid in the generated image.
-
num_inference_steps number
Number of denoising steps for models that expose this option.
-
guidance_scale number
Guidance scale for models that expose this option.
-
guidance number
Guidance value for image edit models that expose this option.
-
response_format 'b64_json'
Format for OpenAI-compatible image responses. DeepInfra currently supports
b64_json. -
quality string
OpenAI-compatible image quality option.
-
style string
OpenAI-compatible image style option.
-
user string
Unique identifier for your end user.
Note
DeepInfra image generation models expose model-specific parameters. Additional
fields can be passed through providerOptions.deepinfra and are validated by
DeepInfra.
Image Editing
DeepInfra supports image editing through models like Qwen/Qwen-Image-Edit. Pass input images via prompt.images to transform or edit existing images.
Basic Image Editing
Transform an existing image using text prompts:
const imageBuffer = readFileSync('./input-image.png');
const { images } = await generateImage({
model: deepInfra.image('Qwen/Qwen-Image-Edit'),
prompt: {
text: 'Turn the cat into a golden retriever dog',
images: [imageBuffer],
},
size: '1024x1024',
});Inpainting with Mask
Edit specific parts of an image using a mask. Transparent areas in the mask indicate where the image should be edited:
const image = readFileSync('./input-image.png');
const mask = readFileSync('./mask.png');
const { images } = await generateImage({
model: deepInfra.image('Qwen/Qwen-Image-Edit'),
prompt: {
text: 'A sunlit indoor lounge area with a pool containing a flamingo',
images: [image],
mask: mask,
},
});Multi-Image Combining
Combine multiple reference images into a single output:
const cat = readFileSync('./cat.png');
const dog = readFileSync('./dog.png');
const { images } = await generateImage({
model: deepInfra.image('Qwen/Qwen-Image-Edit'),
prompt: {
text: 'Create a scene with both animals together, playing as friends',
images: [cat, dog],
},
});Note
Input images can be provided as Buffer, ArrayBuffer, Uint8Array, or
base64-encoded strings. DeepInfra uses an OpenAI-compatible image editing API
at https://api.deepinfra.com/v1/openai/images/edits.
Model Capabilities
For models supporting aspect ratios, the following ratios are typically supported:
1:1 (default), 16:9, 1:9, 3:2, 2:3, 4:5, 5:4, 9:16, 9:21
For models supporting size parameters, dimensions must typically be:
- Multiples of 32
- Width and height between 256 and 1440 pixels
- Default size is 1024x1024
| Model | Dimensions Specification | Notes |
|---|---|---|
stabilityai/sd3.5 | Aspect Ratio | Premium quality base model, 8B parameters |
black-forest-labs/FLUX-1.1-pro | Size | Latest state-of-art model with superior prompt following |
black-forest-labs/FLUX-1-schnell | Size | Fast generation in 1-4 steps |
black-forest-labs/FLUX-1-dev | Size | Optimized for anatomical accuracy |
black-forest-labs/FLUX-pro | Size | Flagship Flux model |
black-forest-labs/FLUX.1-Kontext-dev | Size | Image editing and transformation model |
black-forest-labs/FLUX.1-Kontext-pro | Size | Professional image editing and transformation |
stabilityai/sd3.5-medium | Aspect Ratio | Balanced 2.5B parameter model |
stabilityai/sdxl-turbo | Aspect Ratio | Optimized for fast generation |
For more details and pricing information, see the DeepInfra text-to-image models page.
Embedding Models
You can create DeepInfra embedding models using the .embeddingModel() factory method.
For more on embedding models with the AI SDK see embed().
import { deepInfra } from '@ai-sdk/deepinfra';
import { embed } from 'ai';
const { embedding } = await embed({
model: deepInfra.embeddingModel('BAAI/bge-large-en-v1.5'),
value: 'sunny day at the beach',
});Model Capabilities
| Model | Dimensions | Max Tokens |
|---|---|---|
BAAI/bge-base-en-v1.5 | 768 | 512 |
BAAI/bge-large-en-v1.5 | 1024 | 512 |
BAAI/bge-m3 | 1024 | 8192 |
intfloat/e5-base-v2 | 768 | 512 |
intfloat/e5-large-v2 | 1024 | 512 |
intfloat/multilingual-e5-large | 1024 | 512 |
sentence-transformers/all-MiniLM-L12-v2 | 384 | 256 |
sentence-transformers/all-MiniLM-L6-v2 | 384 | 256 |
sentence-transformers/all-mpnet-base-v2 | 768 | 384 |
sentence-transformers/clip-ViT-B-32 | 512 | 77 |
sentence-transformers/clip-ViT-B-32-multilingual-v1 | 512 | 77 |
sentence-transformers/multi-qa-mpnet-base-dot-v1 | 768 | 512 |
sentence-transformers/paraphrase-MiniLM-L6-v2 | 384 | 128 |
shibing624/text2vec-base-chinese | 768 | 512 |
thenlper/gte-base | 768 | 512 |
thenlper/gte-large | 1024 | 512 |
Note
For a complete list of available embedding models, see the DeepInfra embeddings page.