mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2025-12-28 21:42:27 +08:00
refactor(video): restructure video types and add createVideo service
- Split video types into base interfaces and OpenAI-specific implementations - Add new createVideo service function to handle video creation
This commit is contained in:
parent
833d2d9276
commit
9931856a1f
@ -16,6 +16,7 @@ import type { StreamTextParams } from '@renderer/types/aiCoreTypes'
|
||||
import { type Chunk, ChunkType } from '@renderer/types/chunk'
|
||||
import { Message } from '@renderer/types/newMessage'
|
||||
import { SdkModel } from '@renderer/types/sdk'
|
||||
import { CreateVideoParams, CreateVideoResult } from '@renderer/types/video'
|
||||
import { removeSpecialCharactersForTopicName, uuid } from '@renderer/utils'
|
||||
import { abortCompletion, readyToAbort } from '@renderer/utils/abortController'
|
||||
import { isAbortError } from '@renderer/utils/error'
|
||||
@ -397,6 +398,11 @@ export async function fetchGenerate({
|
||||
}
|
||||
}
|
||||
|
||||
export async function createVideo(params: CreateVideoParams): Promise<CreateVideoResult> {
|
||||
const ai = new AiProviderNew(params.provider)
|
||||
return ai.createVideo(params)
|
||||
}
|
||||
|
||||
export function hasApiKey(provider: Provider) {
|
||||
if (!provider) return false
|
||||
if (['ollama', 'lmstudio', 'vertexai', 'cherryai'].includes(provider.id)) return true
|
||||
|
||||
@ -1,6 +1,30 @@
|
||||
import OpenAI from '@cherrystudio/openai'
|
||||
|
||||
// Only OpenAI for now.
|
||||
export type CreateVideoParams = { params: OpenAI.VideoCreateParams; options?: OpenAI.RequestOptions }
|
||||
import { Provider } from './provider'
|
||||
|
||||
export type CreateVideoResult = OpenAI.Videos.Video
|
||||
// Only OpenAI (Responses) is supported for now.
|
||||
export type VideoEndpointType = 'openai'
|
||||
|
||||
interface CreateVideoBaseParams {
|
||||
type: VideoEndpointType
|
||||
provider: Provider
|
||||
}
|
||||
|
||||
export interface OpenAICreateVideoParams extends CreateVideoBaseParams {
|
||||
type: 'openai'
|
||||
params: OpenAI.VideoCreateParams
|
||||
options?: OpenAI.RequestOptions
|
||||
}
|
||||
|
||||
export type CreateVideoParams = OpenAICreateVideoParams
|
||||
|
||||
interface CreateVideoBaseResult {
|
||||
type: VideoEndpointType
|
||||
}
|
||||
|
||||
export interface OpenAICreateVideoResult extends CreateVideoBaseResult {
|
||||
type: 'openai'
|
||||
video: OpenAI.Videos.Video
|
||||
}
|
||||
|
||||
export type CreateVideoResult = OpenAICreateVideoResult
|
||||
|
||||
Loading…
Reference in New Issue
Block a user