infomaniak-ai-provider
Version:
The Infomaniak provider for the [AI SDK](https://ai-sdk.dev/docs/introduction) contains language model support for the [Infomaniak AI Tools API](https://www.infomaniak.com/en/hosting/ai-services/open-source-models).
1 lines • 18.9 kB
Source Map (JSON)
{"version":3,"sources":["../../src/infomaniak-models.ts","../../src/infomaniak-models-data.json","../../src/client/index.ts"],"sourcesContent":["// Generated types for Infomaniak AI Models\n// Last updated: 2026-08-04T14:07:34.265Z\n// Do not change this file, it will be regenerated automatically\n\nexport type ModelType = 'stt' | 'image' | 'embedding' | 'reranker' | 'llm'\n\nexport type InfoStatus = 'ready' | 'coming_soon' | (string & {})\n\n// Model ID unions by type\nexport type InfomaniakSTTModelId\n = | 'whisper'\n | (string & {})\n\nexport type InfomaniakImageModelId\n = | 'photomaker'\n | 'flux'\n | (string & {})\n\nexport type InfomaniakEmbeddingModelId\n = | 'bge_multilingual_gemma2'\n | 'mini_lm_l12_v2'\n | 'Qwen/Qwen3-Embedding-8B'\n | (string & {})\n\nexport type InfomaniakRERANKERModelId\n = | 'BAAI/bge-reranker-v2-m3'\n | 'Qwen/Qwen3-Reranker-0.6B'\n | (string & {})\n\nexport type InfomaniakChatModelId\n = | 'mistralai/Ministral-3-14B-Instruct-2512'\n | 'Qwen/Qwen3.5-122B-A10B-FP8'\n | 'google/gemma-4-31B-it'\n | 'moonshotai/Kimi-K2.6'\n | 'nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-FP8'\n | 'mistralai/Mistral-Small-4-119B-2603'\n | 'Qwen/Qwen3.5-397B-A17B-FP8'\n | 'swiss-ai/Apertus-v1.5-70B'\n | (string & {})\n\n// All model IDs union\nexport type InfomaniakModelId\n = | InfomaniakSTTModelId\n | InfomaniakImageModelId\n | InfomaniakEmbeddingModelId\n | InfomaniakRERANKERModelId\n | InfomaniakChatModelId\n\nexport interface InfomaniakModel {\n description: string\n documentation_link: string\n id: number\n info_status: InfoStatus\n last_updated_at: string\n logo_url: string\n max_token_input: number | null\n name: string\n type: ModelType\n version: string | null\n}\n\nexport type InfomaniakModels = InfomaniakModel[]\n\n// Model name constants for easy access\nexport const MODEL_NAMES = {\n 'WHISPER': 'whisper' as const,\n 'PHOTOMAKER': 'photomaker' as const,\n 'FLUX': 'flux' as const,\n 'BGE_MULTILINGUAL_GEMMA2': 'bge_multilingual_gemma2' as const,\n 'MINI_LM_L12_V2': 'mini_lm_l12_v2' as const,\n 'QWEN/QWEN3-EMBEDDING-8B': 'Qwen/Qwen3-Embedding-8B' as const,\n 'BAAI/BGE-RERANKER-V2-M3': 'BAAI/bge-reranker-v2-m3' as const,\n 'QWEN/QWEN3-RERANKER-0.6B': 'Qwen/Qwen3-Reranker-0.6B' as const,\n 'MISTRALAI/MINISTRAL-3-14B-INSTRUCT-2512': 'mistralai/Ministral-3-14B-Instruct-2512' as const,\n 'QWEN/QWEN3.5-122B-A10B-FP8': 'Qwen/Qwen3.5-122B-A10B-FP8' as const,\n 'GOOGLE/GEMMA-4-31B-IT': 'google/gemma-4-31B-it' as const,\n 'MOONSHOTAI/KIMI-K2.6': 'moonshotai/Kimi-K2.6' as const,\n 'NVIDIA/NVIDIA-NEMOTRON-3-NANO-30B-A3B-FP8': 'nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-FP8' as const,\n 'MISTRALAI/MISTRAL-SMALL-4-119B-2603': 'mistralai/Mistral-Small-4-119B-2603' as const,\n 'QWEN/QWEN3.5-397B-A17B-FP8': 'Qwen/Qwen3.5-397B-A17B-FP8' as const,\n 'SWISS-AI/APERTUS-V1.5-70B': 'swiss-ai/Apertus-v1.5-70B' as const,\n} as const\n\n// Helper functions\nexport function getModelsByType<T extends ModelType>(models: InfomaniakModels, type: T): InfomaniakModel[] {\n return models.filter(model => model.type === type)\n}\n\nexport function getReadyModels(models: InfomaniakModels): InfomaniakModels {\n return models.filter(model => model.info_status === 'ready')\n}\n\nexport function getSTTModels(models: InfomaniakModels): InfomaniakModels {\n return getModelsByType(models, 'stt')\n}\n\nexport function getImageModels(models: InfomaniakModels): InfomaniakModels {\n return getModelsByType(models, 'image')\n}\n\nexport function getEmbeddingModels(models: InfomaniakModels): InfomaniakModels {\n return getModelsByType(models, 'embedding')\n}\n\nexport function getRERANKERModels(models: InfomaniakModels): InfomaniakModels {\n return getModelsByType(models, 'reranker')\n}\n\nexport function getChatModels(models: InfomaniakModels): InfomaniakModels {\n return getModelsByType(models, 'llm')\n}\n","[\n {\n \"id\": 2,\n \"name\": \"whisper\",\n \"type\": \"stt\",\n \"documentation_link\": \"https://developer.infomaniak.com/docs/api/post/1/ai/%7Bproduct_id%7D/openai/audio/transcriptions\",\n \"description\": \"Whisper V3\",\n \"info_status\": \"ready\",\n \"logo_url\": \"https://storage4.infomaniak.com/ai-tools/public/logos/whisper.svg\",\n \"last_updated_at\": \"2024-07-01\",\n \"max_token_input\": null,\n \"version\": \"3.0\",\n \"meta\": {\n \"is_beta\": false,\n \"is_coder\": false\n }\n },\n {\n \"id\": 8,\n \"name\": \"photomaker\",\n \"type\": \"image\",\n \"documentation_link\": \"https://developer.infomaniak.com/docs/api/post/1/ai/%7Bproduct_id%7D/images/generations/photo_maker\",\n \"description\": \"Photomaker V2\",\n \"info_status\": \"coming_soon\",\n \"logo_url\": \"https://storage4.infomaniak.com/ai-tools/public/logos/photomaker.svg\",\n \"last_updated_at\": \"2024-07-15\",\n \"max_token_input\": null,\n \"version\": \"2.0\",\n \"meta\": {\n \"is_beta\": false,\n \"is_coder\": false\n }\n },\n {\n \"id\": 10,\n \"name\": \"flux\",\n \"type\": \"image\",\n \"documentation_link\": \"https://developer.infomaniak.com/docs/api/post/1/ai/%7Bproduct_id%7D/openai/images/generations\",\n \"description\": \"Flux schnell\",\n \"info_status\": \"ready\",\n \"logo_url\": \"https://storage4.infomaniak.com/ai-tools/public/logos/flux.svg\",\n \"last_updated_at\": \"2024-10-01\",\n \"max_token_input\": null,\n \"version\": \"0.1\",\n \"meta\": {\n \"is_beta\": false,\n \"is_coder\": false\n }\n },\n {\n \"id\": 12,\n \"name\": \"bge_multilingual_gemma2\",\n \"type\": \"embedding\",\n \"documentation_link\": \"https://developer.infomaniak.com/docs/api/post/2/ai/%7Bproduct_id%7D/openai/v1/embeddings\",\n \"description\": \"Bge Multilingual Gemma2\",\n \"info_status\": \"coming_soon\",\n \"logo_url\": \"https://storage4.infomaniak.com/ai-tools/public/logos/bge.svg\",\n \"last_updated_at\": \"2024-12-04\",\n \"max_token_input\": 8000,\n \"version\": \"1.0\",\n \"meta\": {\n \"is_beta\": false,\n \"is_coder\": false\n }\n },\n {\n \"id\": 13,\n \"name\": \"mini_lm_l12_v2\",\n \"type\": \"embedding\",\n \"documentation_link\": \"https://developer.infomaniak.com/docs/api/post/2/ai/%7Bproduct_id%7D/openai/v1/embeddings\",\n \"description\": \"All MiniLM L12 v2\",\n \"info_status\": \"coming_soon\",\n \"logo_url\": \"https://storage4.infomaniak.com/ai-tools/public/logos/minilm.svg\",\n \"last_updated_at\": \"2024-12-04\",\n \"max_token_input\": 128,\n \"version\": \"2.0\",\n \"meta\": {\n \"is_beta\": false,\n \"is_coder\": false\n }\n },\n {\n \"id\": 21,\n \"name\": \"Qwen/Qwen3-Embedding-8B\",\n \"type\": \"embedding\",\n \"documentation_link\": \"https://developer.infomaniak.com/docs/api/post/2/ai/%7Bproduct_id%7D/openai/v1/embeddings\",\n \"description\": \"Qwen/Qwen3-Embedding-8B\",\n \"info_status\": \"coming_soon\",\n \"logo_url\": \"https://storage4.infomaniak.com/ai-tools/public/logos/qwen.svg\",\n \"last_updated_at\": \"2025-11-24\",\n \"max_token_input\": 8192,\n \"version\": null,\n \"meta\": {\n \"is_beta\": true,\n \"is_coder\": false\n }\n },\n {\n \"id\": 23,\n \"name\": \"BAAI/bge-reranker-v2-m3\",\n \"type\": \"reranker\",\n \"documentation_link\": \"https://developer.infomaniak.com/docs/api/post/2/ai/%7Bproduct_id%7D/cohere/v2/rerank\",\n \"description\": \"BAAI/bge-reranker-v2-m3\",\n \"info_status\": \"coming_soon\",\n \"logo_url\": \"https://storage4.infomaniak.com/ai-tools/public/logos/bge.svg\",\n \"last_updated_at\": \"2025-12-12\",\n \"max_token_input\": null,\n \"version\": null,\n \"meta\": {\n \"is_beta\": true,\n \"is_coder\": false\n }\n },\n {\n \"id\": 24,\n \"name\": \"Qwen/Qwen3-Reranker-0.6B\",\n \"type\": \"reranker\",\n \"documentation_link\": \"https://developer.infomaniak.com/docs/api/post/2/ai/%7Bproduct_id%7D/cohere/v2/rerank\",\n \"description\": \"Qwen/Qwen3-Reranker-0.6B\",\n \"info_status\": \"coming_soon\",\n \"logo_url\": \"https://storage4.infomaniak.com/ai-tools/public/logos/qwen.svg\",\n \"last_updated_at\": \"2025-12-12\",\n \"max_token_input\": null,\n \"version\": null,\n \"meta\": {\n \"is_beta\": true,\n \"is_coder\": false\n }\n },\n {\n \"id\": 27,\n \"name\": \"mistralai/Ministral-3-14B-Instruct-2512\",\n \"type\": \"llm\",\n \"documentation_link\": \"https://developer.infomaniak.com/docs/api/post/2/ai/%7Bproduct_id%7D/openai/v1/chat/completions\",\n \"description\": \"mistralai/Ministral-3-14B-Instruct-2512\",\n \"info_status\": \"ready\",\n \"logo_url\": \"https://storage4.infomaniak.com/ai-tools/public/logos/mixtral.svg\",\n \"last_updated_at\": \"2026-02-02\",\n \"max_token_input\": 100000,\n \"version\": null,\n \"meta\": {\n \"is_beta\": true,\n \"is_coder\": false\n }\n },\n {\n \"id\": 30,\n \"name\": \"Qwen/Qwen3.5-122B-A10B-FP8\",\n \"type\": \"llm\",\n \"documentation_link\": \"https://developer.infomaniak.com/docs/api/post/2/ai/%7Bproduct_id%7D/openai/v1/chat/completions\",\n \"description\": \"Qwen/Qwen3.5-122B-A10B-FP8\",\n \"info_status\": \"coming_soon\",\n \"logo_url\": \"https://storage4.infomaniak.com/ai-tools/public/logos/qwen.svg\",\n \"last_updated_at\": null,\n \"max_token_input\": 200000,\n \"version\": null,\n \"meta\": {\n \"is_beta\": false,\n \"is_coder\": false\n }\n },\n {\n \"id\": 31,\n \"name\": \"google/gemma-4-31B-it\",\n \"type\": \"llm\",\n \"documentation_link\": \"https://developer.infomaniak.com/docs/api/post/2/ai/%7Bproduct_id%7D/openai/v1/chat/completions\",\n \"description\": \"google/gemma-4-31B-it\",\n \"info_status\": \"coming_soon\",\n \"logo_url\": \"https://storage4.infomaniak.com/ai-tools/public/logos/google.svg\",\n \"last_updated_at\": null,\n \"max_token_input\": 100000,\n \"version\": null,\n \"meta\": {\n \"is_beta\": false,\n \"is_coder\": false\n }\n },\n {\n \"id\": 32,\n \"name\": \"moonshotai/Kimi-K2.6\",\n \"type\": \"llm\",\n \"documentation_link\": \"https://developer.infomaniak.com/docs/api/post/2/ai/%7Bproduct_id%7D/openai/v1/chat/completions\",\n \"description\": \"moonshotai/Kimi-K2.6\",\n \"info_status\": \"coming_soon\",\n \"logo_url\": \"https://storage4.infomaniak.com/ai-tools/public/logos/moonshotai.svg\",\n \"last_updated_at\": null,\n \"max_token_input\": 256000,\n \"version\": null,\n \"meta\": {\n \"is_beta\": true,\n \"is_coder\": false\n }\n },\n {\n \"id\": 33,\n \"name\": \"nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-FP8\",\n \"type\": \"llm\",\n \"documentation_link\": \"https://developer.infomaniak.com/docs/api/post/2/ai/%7Bproduct_id%7D/openai/v1/chat/completions\",\n \"description\": \"nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-FP8\",\n \"info_status\": \"coming_soon\",\n \"logo_url\": \"https://storage4.infomaniak.com/ai-tools/public/logos/nvidia.svg\",\n \"last_updated_at\": null,\n \"max_token_input\": 1000000,\n \"version\": null,\n \"meta\": {\n \"is_beta\": true,\n \"is_coder\": false\n }\n },\n {\n \"id\": 34,\n \"name\": \"mistralai/Mistral-Small-4-119B-2603\",\n \"type\": \"llm\",\n \"documentation_link\": \"https://developer.infomaniak.com/docs/api/post/2/ai/%7Bproduct_id%7D/openai/v1/chat/completions\",\n \"description\": \"mistralai/Mistral-Small-4-119B-2603\",\n \"info_status\": \"coming_soon\",\n \"logo_url\": \"https://storage4.infomaniak.com/ai-tools/public/logos/mistralai.svg\",\n \"last_updated_at\": null,\n \"max_token_input\": 256000,\n \"version\": null,\n \"meta\": {\n \"is_beta\": false,\n \"is_coder\": false\n }\n },\n {\n \"id\": 35,\n \"name\": \"Qwen/Qwen3.5-397B-A17B-FP8\",\n \"type\": \"llm\",\n \"documentation_link\": \"https://developer.infomaniak.com/docs/api/post/2/ai/%7Bproduct_id%7D/openai/v1/chat/completions\",\n \"description\": \"Qwen/Qwen3.5-397B-A17B-FP8\",\n \"info_status\": \"coming_soon\",\n \"logo_url\": \"https://storage4.infomaniak.com/ai-tools/public/logos/qwen.svg\",\n \"last_updated_at\": null,\n \"max_token_input\": 200000,\n \"version\": null,\n \"meta\": {\n \"is_beta\": true,\n \"is_coder\": false\n }\n },\n {\n \"id\": 37,\n \"name\": \"swiss-ai/Apertus-v1.5-70B\",\n \"type\": \"llm\",\n \"documentation_link\": \"https://developer.infomaniak.com/docs/api/post/2/ai/%7Bproduct_id%7D/openai/v1/chat/completions\",\n \"description\": \"swiss-ai/Apertus-v1.5-70B\",\n \"info_status\": \"coming_soon\",\n \"logo_url\": \"https://storage4.infomaniak.com/ai-tools/public/logos/apertus.svg\",\n \"last_updated_at\": null,\n \"max_token_input\": 100000,\n \"version\": null,\n \"meta\": {\n \"is_beta\": true,\n \"is_coder\": false\n }\n }\n]\n","import type { InfomaniakModel as InfomaniakApiModel } from '../infomaniak-models'\nimport { getChatModels, getEmbeddingModels, getImageModels, getSTTModels } from '../infomaniak-models'\nimport modelData from '../infomaniak-models-data.json'\n\ninterface InfomaniakModel {\n name: string\n type: string\n id: string\n version: string | null\n maxTokenInput: number | null\n lastUpdatedAt: string\n status: string\n}\n\nconst _models = modelData as InfomaniakApiModel[]\n\nexport function useInfomaniakModels() {\n function toClientModel(model: InfomaniakApiModel): InfomaniakModel {\n return {\n name: model.description,\n type: model.type,\n id: model.name,\n version: model.version,\n maxTokenInput: model.max_token_input,\n lastUpdatedAt: model.last_updated_at,\n status: model.info_status,\n }\n }\n\n return {\n chatModels: getChatModels(_models).map(toClientModel),\n embeddingModels: getEmbeddingModels(_models).map(toClientModel),\n imageModels: getImageModels(_models).map(toClientModel),\n transcriptionModels: getSTTModels(_models).map(toClientModel),\n models: _models.map(toClientModel),\n }\n}\n\nexport type { InfomaniakModel }\n"],"mappings":"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","names":[]}