UNPKG

chat-about-video

Version:

Chat about a video clip using ChatGPT hosted in OpenAI or Azure, or Gemini provided by Google

37 lines 2.29 kB
import type { GenerateContentRequest, GenerateContentResult, GenerativeModel, ModelParams, RequestOptions } from '@google/generative-ai'; import type { AdditionalCompletionOptions, BuildPromptOutput, ChatApi, ChatApiOptions, ExtractVideoFramesOptions, ImageInput, UsageMetadata } from '../types'; import { effectiveExtractVideoFramesOptions } from '../utils'; export type GeminiClient = GenerativeModel; export type GeminiResponse = GenerateContentResult; export type GeminiPrompt = GenerateContentRequest['contents']; export type GeminiClientOptions = { modelParams: ModelParams; requestOptions?: RequestOptions; }; export type GeminiCompletionOptions = AdditionalCompletionOptions & Omit<GenerateContentRequest, 'contents'>; export type GeminiOptions = { extractVideoFrames: ExtractVideoFramesOptions; clientSettings: GeminiClientOptions; } & ChatApiOptions<GeminiClientOptions, GeminiCompletionOptions>; export declare class GeminiApi implements ChatApi<GeminiClient, GeminiCompletionOptions, GeminiPrompt, GeminiResponse> { protected options: GeminiOptions; protected client: GeminiClient; protected extractVideoFrames: ReturnType<typeof effectiveExtractVideoFramesOptions>; protected tmpDir: string; constructor(options: GeminiOptions); getClient(): Promise<GeminiClient>; generateContent(prompt: GeminiPrompt, options: GeminiCompletionOptions): Promise<GeminiResponse>; getResponseText(result: GeminiResponse): Promise<string | undefined>; getUsageMetadata(result: GeminiResponse): Promise<UsageMetadata | undefined>; isThrottlingError(error: any): boolean; isServerError(error: any): boolean; isConnectivityError(error: any): boolean; isDownloadError(_error: any): boolean; appendToPrompt(newPromptOrResponse: GeminiPrompt | GeminiResponse, prompt?: GeminiPrompt): Promise<GeminiPrompt>; buildTextPrompt(text: string, _conversationId?: string): Promise<{ prompt: GeminiPrompt; }>; buildVideoPrompt(videoFile: string, conversationId?: string): Promise<BuildPromptOutput<GeminiPrompt, GeminiCompletionOptions>>; buildImagesPrompt(imageInputs: ImageInput[], _conversationId: string): Promise<BuildPromptOutput<GeminiPrompt, GeminiCompletionOptions>>; } //# sourceMappingURL=index.d.ts.map