Aihubmix Provider
The Aihubmix provider contains unified access to multiple AI providers through the Aihubmix API, including OpenAI, Anthropic Claude, and Google Gemini models. View all available models at aihubmix.com/models.
Setup
The Aihubmix provider is available in the @aihubmix/ai-sdk-provider
module. You can install it with
pnpm add @aihubmix/ai-sdk-provider
Provider Instance
Method 1: Using createAihubmix
To create an Aihubmix provider instance, use the createAihubmix
function:
import { createAihubmix } from '@aihubmix/ai-sdk-provider';
const aihubmix = createAihubmix({ apiKey: 'AIHUBMIX_API_KEY',});
You can obtain your Aihubmix API key from the Aihubmix Keys.
Method 2: Using Environment Variables
Alternatively, you can use the pre-configured aihubmix
instance by setting the AIHUBMIX_API_KEY
environment variable:
# .envAIHUBMIX_API_KEY=your_api_key_here
Then import and use the pre-configured instance:
import { aihubmix } from '@aihubmix/ai-sdk-provider';
Usage
Chat Completion
import { aihubmix } from '@aihubmix/ai-sdk-provider';import { generateText } from 'ai';
const { text } = await generateText({ model: aihubmix('o4-mini'), prompt: 'Write a vegetarian lasagna recipe for 4 people.',});
Claude Model
import { aihubmix } from '@aihubmix/ai-sdk-provider';import { generateText } from 'ai';
const { text } = await generateText({ model: aihubmix('claude-3-7-sonnet-20250219'), prompt: 'Explain quantum computing in simple terms.',});
Gemini Model
import { aihubmix } from '@aihubmix/ai-sdk-provider';import { generateText } from 'ai';
const { text } = await generateText({ model: aihubmix('gemini-2.5-flash'), prompt: 'Create a Python script to sort a list of numbers.',});
Image Generation
import { aihubmix } from '@aihubmix/ai-sdk-provider';import { experimental_generateImage as generateImage } from 'ai';
const { image } = await generateImage({ model: aihubmix.image('gpt-image-1'), prompt: 'A beautiful sunset over mountains',});
Embeddings
import { aihubmix } from '@aihubmix/ai-sdk-provider';import { embed } from 'ai';
const { embedding } = await embed({ model: aihubmix.embedding('text-embedding-ada-002'), value: 'Hello, world!',});
Transcription
import { aihubmix } from '@aihubmix/ai-sdk-provider';import { experimental_transcribe as transcribe } from 'ai';
const { text } = await transcribe({ model: aihubmix.transcription('whisper-1'), audio: audioFile,});
Stream Text
import { aihubmix } from '@aihubmix/ai-sdk-provider';import { streamText } from 'ai';
const result = streamText({ model: aihubmix('gpt-3.5-turbo'), prompt: 'Write a short story about a robot learning to paint.', maxOutputTokens: 256, temperature: 0.3, maxRetries: 3,});
let fullText = '';for await (const textPart of result.textStream) { fullText += textPart; process.stdout.write(textPart);}
console.log('\nUsage:', await result.usage);console.log('Finish reason:', await result.finishReason);
Generate Object
import { aihubmix } from '@aihubmix/ai-sdk-provider';import { generateObject } from 'ai';import { z } from 'zod';
const result = await generateObject({ model: aihubmix('gpt-4o-mini'), schema: z.object({ recipe: z.object({ name: z.string(), ingredients: z.array( z.object({ name: z.string(), amount: z.string(), }), ), steps: z.array(z.string()), }), }), prompt: 'Generate a lasagna recipe.',});
console.log(JSON.stringify(result.object.recipe, null, 2));console.log('Token usage:', result.usage);console.log('Finish reason:', result.finishReason);
Stream Object
import { aihubmix } from '@aihubmix/ai-sdk-provider';import { streamObject } from 'ai';import { z } from 'zod';
const result = streamObject({ model: aihubmix('gpt-4o-mini'), schema: z.object({ recipe: z.object({ name: z.string(), ingredients: z.array( z.object({ name: z.string(), amount: z.string(), }), ), steps: z.array(z.string()), }), }), prompt: 'Generate a lasagna recipe.',});
for await (const objectPart of result.partialObjectStream) { console.log(objectPart);}
console.log('Token usage:', await result.usage);console.log('Final object:', await result.object);
Embed Many
import { aihubmix } from '@aihubmix/ai-sdk-provider';import { embedMany } from 'ai';
const { embeddings, usage } = await embedMany({ model: aihubmix.embedding('text-embedding-3-small'), values: [ 'sunny day at the beach', 'rainy afternoon in the city', 'snowy night in the mountains', ],});
console.log('Embeddings:', embeddings);console.log('Usage:', usage);
Speech Synthesis
import { aihubmix } from '@aihubmix/ai-sdk-provider';import { experimental_generateSpeech as generateSpeech } from 'ai';
const { audio } = await generateSpeech({ model: aihubmix.speech('tts-1'), text: 'Hello, this is a test for speech synthesis.',});
Tools
The Aihubmix provider supports various tools including web search:
import { aihubmix } from '@aihubmix/ai-sdk-provider';import { generateText } from 'ai';
const { text } = await generateText({ model: aihubmix('gpt-4'), prompt: 'What are the latest developments in AI?', tools: { webSearchPreview: aihubmix.tools.webSearch({ searchContextSize: 'high', }), },});