DeepInfra 프로바이더
DeepInfra 프로바이더
DeepInfra를 AI SDK에서 쓸 수 있게 해주는 프로바이더예요. DeepInfra는 최신 오픈소스 모델들을 API로 제공하는데, Llama 3, Mixtral, Qwen 같은 인기 있는 모델들을 간편하게 사용할 수 있어요.
출처: 문서
본문
DeepInfra 프로바이더는 DeepInfra API를 통해 최신 모델들을 지원해요. 여기에는 Llama 3, Mixtral, Qwen 그리고 그 외 많은 인기 있는 오픈소스 모델들이 포함돼요.
설정 (Setup)
DeepInfra 프로바이더는 @ai-sdk/deepinfra 모듈로 제공돼요. 다음과 같이 설치할 수 있어요:
프로바이더 인스턴스 (Provider Instance)
@ai-sdk/deepinfra에서 기본 프로바이더 인스턴스 deepInfra를 불러올 수 있어요:
import { deepInfra } from '@ai-sdk/deepinfra';
커스터마이즈가 필요하다면 @ai-sdk/deepinfra에서 createDeepInfra를 불러와 원하는 설정으로 프로바이더 인스턴스를 만들 수 있어요:
import { createDeepInfra } from '@ai-sdk/deepinfra';
const deepInfra = createDeepInfra({
apiKey: process.env.DEEPINFRA_API_KEY ?? '',
});
DeepInfra 프로바이더 인스턴스를 커스터마이즈할 때 사용할 수 있는 선택적 설정은 다음과 같아요:
-
baseURL string
API 호출에 다른 URL 접두사를 사용해요. 예를 들어 프록시 서버를 쓸 때 유용해요. 기본 접두사는
https://api.deepinfra.com/v1이에요.참고: 언어 모델과 임베딩은
{baseURL}/openai의 OpenAI 호환 엔드포인트를 사용하고, 이미지 모델은{baseURL}/inference를 사용해요. -
apiKey string
Authorization헤더로 보내는 API 키예요. 기본값은DEEPINFRA_API_KEY환경 변수예요. -
headers Record<string,string>
요청에 포함할 커스텀 헤더예요.
-
fetch (input: RequestInfo, init?: RequestInit) => Promise<Response>
커스텀 fetch 구현이에요. 기본값은 전역
fetch함수예요. 요청을 가로채는 미들웨어로 쓸 수도 있고, 예를 들어 테스트용으로 커스텀 fetch 구현을 제공할 수도 있어요.
언어 모델 (Language Models)
프로바이더 인스턴스로 언어 모델을 만들 수 있어요. 첫 번째 인자는 모델 ID예요. 예를 들면:
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 언어 모델은 streamText 함수에서도 사용할 수 있어요 (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 |
이미지 모델 (Image Models)
.image() 팩토리 메서드로 DeepInfra 이미지 모델을 만들 수 있어요.
AI SDK에서 이미지 생성에 대해 더 알고 싶다면 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',
});
모델별 옵션 (Model-specific options)
providerOptions.deepinfra 필드로 모델별 파라미터를 전달할 수 있어요:
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,
},
});
다음 옵션들을 providerOptions.deepinfra로 사용할 수 있어요. DeepInfraImageModelOptions로 타입을 지정할 수 있어요.
-
negative_prompt string
생성된 이미지에서 피하고 싶은 내용을 텍스트로 설명해요.
-
num_inference_steps number
이 옵션을 제공하는 모델의 디노이징 스텝 수예요.
-
guidance_scale number
이 옵션을 제공하는 모델의 가이던스 스케일이에요.
-
guidance number
이 옵션을 제공하는 이미지 편집 모델의 가이던스 값이에요.
-
response_format 'b64_json'
OpenAI 호환 이미지 응답의 형식이에요. DeepInfra는 현재
b64_json을 지원해요. -
quality string
OpenAI 호환 이미지 품질 옵션이에요.
-
style string
OpenAI 호환 이미지 스타일 옵션이에요.
-
user string
최종 사용자의 고유 식별자예요.
이미지 편집 (Image Editing)
DeepInfra는 Qwen/Qwen-Image-Edit 같은 모델로 이미지 편집을 지원해요. prompt.images로 입력 이미지를 전달하면 기존 이미지를 변형하거나 편집할 수 있어요.
기본 이미지 편집 (Basic Image Editing)
텍스트 프롬프트로 기존 이미지를 변형해요:
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)
마스크를 사용해서 이미지의 특정 부분만 편집할 수 있어요. 마스크에서 투명한 영역이 편집할 위치를 나타내요:
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)
여러 참조 이미지를 하나의 출력으로 결합할 수 있어요:
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],
},
});
모델 기능 (Model Capabilities)
종횡비를 지원하는 모델의 경우, 일반적으로 다음 비율이 지원돼요:
1:1 (default), 16:9, 1:9, 3:2, 2:3, 4:5, 5:4, 9:16, 9:21
size 파라미터를 지원하는 모델의 경우, 크기는 일반적으로 다음과 같아야 해요:
- 32의 배수
- 너비와 높이가 256~1440 픽셀 사이
- 기본 크기는 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 |
더 자세한 내용과 가격 정보는 DeepInfra text-to-image 모델 페이지를 참고하세요.
임베딩 모델 (Embedding Models)
.embeddingModel() 팩토리 메서드로 DeepInfra 임베딩 모델을 만들 수 있어요.
AI SDK에서 임베딩 모델에 대해 더 알고 싶다면 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 |
더 알아보기 (Learn more)
- AI Gateway
- xAI Grok
- OpenAI
- Azure OpenAI
- Anthropic
- Open Responses
- Claude Platform on AWS
- Amazon Bedrock
- Groq
- Fal
- AssemblyAI
- GMI Cloud
- TypeSafe
- DeepInfra
- Deepgram
- Black Forest Labs
- Gladia
- Hume
- Google Vertex AI
- Rev.ai
- Baseten
- Hugging Face
- QuiverAI
- Fish Audio
- Mistral AI
- Z.AI
- Together.ai
- Cohere
- Fireworks
- Voyage AI
- DeepSeek
- Moonshot AI
- Alibaba
- MiniMax
- Cerebras
- Replicate
- Prodia
- Perplexity
- Luma
- ByteDance
- Kling AI
- ElevenLabs
- Cartesia