ai-cut/app/utils/clients/grok-models.ts

218 lines
5.0 KiB
TypeScript
Raw Normal View History

2025-12-16 10:08:51 +00:00
/**
* Grok API
* x.ai
*/
export interface GrokModel {
name: string
displayName: string
description: string
capabilities: {
text: boolean
vision: boolean
audio: boolean
video: boolean
imageGeneration: boolean
tts: boolean
}
category: 'text' | 'vision' | 'multimodal' | 'image-generation' | 'video-generation' | 'audio' | 'tts'
}
/**
* Grok
* x.ai
*/
export const GROK_MODELS: GrokModel[] = [
// Grok 4.1 系列
{
name: 'grok-4-1-fast-reasoning',
displayName: 'Grok 4.1 Fast Reasoning',
description: 'Grok 4.1 Fast Reasoning 模型支援文字和圖像具備推理能力Context: 2,000,000',
capabilities: {
text: true,
vision: true,
audio: false,
video: false,
imageGeneration: false,
tts: false
},
category: 'multimodal'
},
{
name: 'grok-4-1-fast-non-reasoning',
displayName: 'Grok 4.1 Fast Non-Reasoning',
description: 'Grok 4.1 Fast Non-Reasoning 模型支援文字和圖像Context: 2,000,000',
capabilities: {
text: true,
vision: true,
audio: false,
video: false,
imageGeneration: false,
tts: false
},
category: 'multimodal'
},
// Grok 4 系列
{
name: 'grok-4-fast-reasoning',
displayName: 'Grok 4 Fast Reasoning',
description: 'Grok 4 Fast Reasoning 模型支援文字和圖像具備推理能力Context: 2,000,000',
capabilities: {
text: true,
vision: true,
audio: false,
video: false,
imageGeneration: false,
tts: false
},
category: 'multimodal'
},
{
name: 'grok-4-fast-non-reasoning',
displayName: 'Grok 4 Fast Non-Reasoning',
description: 'Grok 4 Fast Non-Reasoning 模型支援文字和圖像Context: 2,000,000',
capabilities: {
text: true,
vision: true,
audio: false,
video: false,
imageGeneration: false,
tts: false
},
category: 'multimodal'
},
{
name: 'grok-4-0709',
displayName: 'Grok 4 (0709)',
description: 'Grok 4 模型支援文字和圖像Context: 256,000',
capabilities: {
text: true,
vision: true,
audio: false,
video: false,
imageGeneration: false,
tts: false
},
category: 'multimodal'
},
// Grok 3 系列
{
name: 'grok-3',
displayName: 'Grok 3',
description: 'Grok 3 模型支援文字和圖像Context: 131,072',
capabilities: {
text: true,
vision: true,
audio: false,
video: false,
imageGeneration: false,
tts: false
},
category: 'multimodal'
},
{
name: 'grok-3-mini',
displayName: 'Grok 3 Mini',
description: 'Grok 3 Mini 模型支援文字和圖像Context: 131,072',
capabilities: {
text: true,
vision: true,
audio: false,
video: false,
imageGeneration: false,
tts: false
},
category: 'multimodal'
},
// Grok Code 系列
{
name: 'grok-code-fast-1',
displayName: 'Grok Code Fast 1',
description: 'Grok Code Fast 1 模型專為程式碼優化支援文字和圖像Context: 256,000',
capabilities: {
text: true,
vision: true,
audio: false,
video: false,
imageGeneration: false,
tts: false
},
category: 'multimodal'
},
// Grok 2 系列
{
name: 'grok-2-vision-1212',
displayName: 'Grok 2 Vision (1212)',
description: 'Grok 2 Vision 模型支援文字和圖像理解Context: 32,768',
capabilities: {
text: true,
vision: true,
audio: false,
video: false,
imageGeneration: false,
tts: false
},
category: 'vision'
},
// 圖像生成模型
{
name: 'grok-2-image-1212',
displayName: 'Grok 2 Image (1212)',
description: 'Grok 2 Image 模型,支援圖像生成,支援文字和圖像輸入',
capabilities: {
text: true,
vision: true,
audio: false,
video: false,
imageGeneration: true,
tts: false
},
category: 'image-generation'
}
]
/**
*
*/
export const DEFAULT_GROK_TEXT_MODEL = 'grok-4-1-fast-reasoning'
/**
*
*/
export const DEFAULT_GROK_VISION_MODEL = 'grok-4-1-fast-reasoning'
/**
*
*/
export const DEFAULT_GROK_IMAGE_GENERATION_MODEL = 'grok-2-image-1212'
/**
*
*/
export function getGrokModelInfo(modelName: string): GrokModel | undefined {
return GROK_MODELS.find(m => m.name === modelName)
}
/**
* Grok
*/
export function getGrokModelForTask(
task: 'text' | 'vision' | 'audio' | 'video' | 'image-generation' | 'tts'
): string {
switch (task) {
case 'text':
return DEFAULT_GROK_TEXT_MODEL
case 'vision':
return DEFAULT_GROK_VISION_MODEL
case 'image-generation':
return DEFAULT_GROK_IMAGE_GENERATION_MODEL
case 'audio':
case 'video':
case 'tts':
default:
return DEFAULT_GROK_TEXT_MODEL
}
}