mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2025-12-28 05:11:24 +08:00
feat(video): add video creation types and stubs for future implementation
This commit is contained in:
parent
c6a0ad3fc0
commit
1c53222582
@ -14,6 +14,7 @@ import { addSpan, endSpan } from '@renderer/services/SpanManagerService'
|
||||
import { StartSpanParams } from '@renderer/trace/types/ModelSpanEntity'
|
||||
import type { Assistant, GenerateImageParams, Model, Provider } from '@renderer/types'
|
||||
import type { AiSdkModel, StreamTextParams } from '@renderer/types/aiCoreTypes'
|
||||
import { CreateVideoParams, CreateVideoResult } from '@renderer/types/video'
|
||||
import { buildClaudeCodeSystemModelMessage } from '@shared/anthropic'
|
||||
import { type ImageModel, type LanguageModel, type Provider as AiSdkProvider, wrapLanguageModel } from 'ai'
|
||||
|
||||
@ -500,6 +501,13 @@ export default class ModernAiProvider {
|
||||
return images
|
||||
}
|
||||
|
||||
/**
|
||||
* We manually implement this method before aisdk supports it well
|
||||
*/
|
||||
public async createVideo(params: CreateVideoParams): Promise<CreateVideoResult> {
|
||||
return this.legacyProvider.createVideo(params)
|
||||
}
|
||||
|
||||
public getBaseURL(): string {
|
||||
return this.legacyProvider.getBaseURL()
|
||||
}
|
||||
|
||||
@ -34,6 +34,7 @@ import {
|
||||
OpenAIResponseSdkTool,
|
||||
OpenAIResponseSdkToolCall
|
||||
} from '@renderer/types/sdk'
|
||||
import { CreateVideoParams } from '@renderer/types/video'
|
||||
import { addImageFileToContents } from '@renderer/utils/formats'
|
||||
import {
|
||||
isSupportedToolUse,
|
||||
@ -152,6 +153,11 @@ export class OpenAIResponseAPIClient extends OpenAIBaseClient<
|
||||
return await sdk.responses.create(payload, options)
|
||||
}
|
||||
|
||||
public async createVideo(params: CreateVideoParams) {
|
||||
// TODO: implement it
|
||||
throw new Error('Not implemented')
|
||||
}
|
||||
|
||||
private async handlePdfFile(file: FileMetadata): Promise<OpenAI.Responses.ResponseInputFile | undefined> {
|
||||
if (file.size > 32 * MB) return undefined
|
||||
try {
|
||||
|
||||
@ -7,6 +7,7 @@ import { withSpanResult } from '@renderer/services/SpanManagerService'
|
||||
import { StartSpanParams } from '@renderer/trace/types/ModelSpanEntity'
|
||||
import type { GenerateImageParams, Model, Provider } from '@renderer/types'
|
||||
import type { RequestOptions, SdkModel } from '@renderer/types/sdk'
|
||||
import { CreateVideoParams, CreateVideoResult } from '@renderer/types/video'
|
||||
import { isSupportedToolUse } from '@renderer/utils/mcp-tools'
|
||||
|
||||
import { AihubmixAPIClient } from './clients/aihubmix/AihubmixAPIClient'
|
||||
@ -179,6 +180,15 @@ export default class AiProvider {
|
||||
return this.apiClient.generateImage(params)
|
||||
}
|
||||
|
||||
public async createVideo(params: CreateVideoParams): Promise<CreateVideoResult> {
|
||||
throw new Error('Not implemented')
|
||||
// if (this.apiClient instanceof OpenAIResponseAPIClient) {
|
||||
// return this.apiClient.createVideo(params)
|
||||
// } else {
|
||||
// throw new Error('Video generation is not supported by this provider')
|
||||
// }
|
||||
}
|
||||
|
||||
public getBaseURL(): string {
|
||||
return this.apiClient.getBaseURL()
|
||||
}
|
||||
|
||||
10
src/renderer/src/types/video.ts
Normal file
10
src/renderer/src/types/video.ts
Normal file
@ -0,0 +1,10 @@
|
||||
export type CreateVideoRequest = {
|
||||
type: 'openai'
|
||||
}
|
||||
|
||||
export type CreateVideoParams = {
|
||||
providerId: string
|
||||
modelId: string
|
||||
}
|
||||
|
||||
export type CreateVideoResult = {}
|
||||
Loading…
Reference in New Issue
Block a user