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

218 lines
5.0 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* 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
}
}