25 lines
718 B
TypeScript
25 lines
718 B
TypeScript
/**
|
||
* AI Provider Selector Composable
|
||
* 根據模型名稱自動選擇對應的 provider
|
||
*/
|
||
|
||
import type { AIProvider } from '~/types/ai'
|
||
import { GeminiClient } from '~/utils/clients/gemini'
|
||
import { GrokClient } from '~/utils/clients/grok'
|
||
import { getProviderForModel } from '~/utils/clients/all-models'
|
||
|
||
/**
|
||
* 取得指定模型對應的 AI Provider 實例
|
||
* @param modelName - 模型名稱,如果不提供則使用預設(Gemini)
|
||
*/
|
||
export function useAIProvider(modelName?: string): AIProvider {
|
||
if (modelName) {
|
||
const provider = getProviderForModel(modelName)
|
||
return provider === 'grok' ? new GrokClient() : new GeminiClient()
|
||
}
|
||
|
||
// 預設使用 Gemini
|
||
return new GeminiClient()
|
||
}
|
||
|