48 lines
1.0 KiB
TypeScript
48 lines
1.0 KiB
TypeScript
|
|
/**
|
|||
|
|
* AI Provider Interface
|
|||
|
|
* 定義所有 AI Provider 必須實作的方法
|
|||
|
|
*/
|
|||
|
|
export interface AIProvider {
|
|||
|
|
/**
|
|||
|
|
* 生成分鏡表
|
|||
|
|
* @param input - 輸入參數(故事、風格、節奏等)
|
|||
|
|
* @returns 分鏡表文字結果
|
|||
|
|
*/
|
|||
|
|
generateStoryboard(input: unknown): Promise<string>
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 分析攝影機鏡位與運鏡
|
|||
|
|
* @param input - 輸入參數(圖片或描述)
|
|||
|
|
* @returns 鏡位分析結果
|
|||
|
|
*/
|
|||
|
|
analyzeCamera(input: unknown): Promise<string>
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 生成影片規劃
|
|||
|
|
* @param input - 輸入參數(prompt 或描述)
|
|||
|
|
* @returns 影片規劃文字結果
|
|||
|
|
*/
|
|||
|
|
generateVideoPlan(input: unknown): Promise<string>
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 生成剪輯建議
|
|||
|
|
* @param input - 輸入參數(素材、劇情等)
|
|||
|
|
* @returns 剪輯建議文字結果
|
|||
|
|
*/
|
|||
|
|
generateEditSuggestion(input: unknown): Promise<string>
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* AI Provider 類型
|
|||
|
|
*/
|
|||
|
|
export type AIProviderType = 'gemini' | 'grok'
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* AI Provider 設定
|
|||
|
|
*/
|
|||
|
|
export interface AIProviderConfig {
|
|||
|
|
type: AIProviderType
|
|||
|
|
token: string
|
|||
|
|
}
|
|||
|
|
|