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
TypeScript
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