infomaniak-ai-provider
v0.2.3
Published
> the project is under active development, for now only text and embedding models are supported.
Downloads
168
Maintainers
Readme
AI SDK - Infomaniak Provider
the project is under active development, for now only text and embedding models are supported.
The Infomaniak provider for the AI SDK contains language model support for the Infomaniak AI Tools API.
Setup
The Infomaniak provider is available in the infomaniak-ai-provider module. You can install it with
npm i infomaniak-ai-providerProvider Instance
You can import the default provider instance infomaniak from infomaniak-ai-provider:
import { infomaniak } from 'infomaniak-ai-provider'Example
import { generateText } from 'ai'
import { infomaniak } from 'infomaniak-ai-provider'
const { text } = await generateText({
model: infomaniak('qwen3'),
prompt: 'Write a vegetarian lasagna recipe for 4 people.',
})For this to work you need the INFOMANIAK_API_KEY and INFOMANIAK_PRODUCT_ID environment variables set with your Infomaniak API key and Infomaniak product id respectively.
Find the product ID in your Infomaniak manager console on /products/cloud/ai-tools
Alternatively create a instance of the provider:
import { generateText } from 'ai'
import { createInfomaniak } from 'infomaniak-ai-provider'
const infomaniak = createInfomaniak({
apiKey: '<API_KEY>', // Infomaniak API token
productId: '<PRODUCT_ID>', // Infomaniak product ID, https://developer.infomaniak.com/docs/api/get/1/ai
})
const { text } = await generateText({
model: infomaniak('qwen3'),
prompt: 'Write a vegetarian lasagna recipe for 4 people.',
})Infomaniak Client Hook
To get detailed data about the Infomaniak models, you can use the useInfomaniakModels hook:
import type { InfomaniakModel } from 'infomaniak-ai-provider/client'
import { useInfomaniakModels } from 'infomaniak-ai-provider/client'
interface ChatModelSelectProps {
selectedModelId?: string
onChange: (modelId: string) => void
}
function ChatModelSelect({ selectedModelId, onChange }: ChatModelSelectProps) {
const { chatModels } = useInfomaniakModels()
if (!chatModels || chatModels.length === 0) {
return <select disabled><option>No models available</option></select>
}
return (
<select
value={selectedModelId}
onChange={e => onChange(e.target.value)}
>
<option value="">Select a model...</option>
{chatModels.map(model => (
<option key={model.id} value={model.id}>
{model.name}
</option>
))}
</select>
)
}You can get chatModels, embeddingModels, imageModels, transcriptionModels and models (all models) from the hook.
Interface
interface InfomaniakModel {
name: string
type: string
id: string
version: string
maxTokenInput: number | null
lastUpdatedAt: string
status: string
}
function useInfomaniakModels(): {
chatModels: InfomaniakModel[]
embeddingModels: InfomaniakModel[]
imageModels: InfomaniakModel[]
transcriptionModels: InfomaniakModel[]
models: InfomaniakModel[]
}Documentation
Please check out the ai-sdk documentation for more information.
