UNPKG

@posthog/ai

Version:
63 lines (59 loc) 1.84 kB
import { GoogleGenAI } from '@google/genai'; import { PostHog } from 'posthog-node'; interface MonitoringParams { posthogDistinctId?: string; posthogTraceId?: string; posthogProperties?: Record<string, any>; posthogPrivacyMode?: boolean; posthogGroups?: Record<string, any>; posthogModelOverride?: string; posthogProviderOverride?: string; posthogCostOverride?: CostOverride; posthogCaptureImmediate?: boolean; } interface CostOverride { inputCost: number; outputCost: number; } type GenerateContentRequest = { model: string; contents: any; config?: any; [key: string]: any; }; type GenerateContentResponse = { text?: string; candidates?: any[]; usageMetadata?: { promptTokenCount?: number; candidatesTokenCount?: number; totalTokenCount?: number; thoughtsTokenCount?: number; cachedContentTokenCount?: number; }; [key: string]: any; }; interface MonitoringGeminiConfig { apiKey?: string; vertexai?: boolean; project?: string; location?: string; apiVersion?: string; posthog: PostHog; } declare class PostHogGoogleGenAI { private readonly phClient; private readonly client; models: WrappedModels; constructor(config: MonitoringGeminiConfig); } declare class WrappedModels { private readonly phClient; private readonly client; constructor(client: GoogleGenAI, phClient: PostHog); generateContent(params: GenerateContentRequest & MonitoringParams): Promise<GenerateContentResponse>; generateContentStream(params: GenerateContentRequest & MonitoringParams): AsyncGenerator<any, void, unknown>; private formatInput; private formatInputForPostHog; } export { PostHogGoogleGenAI as Gemini, PostHogGoogleGenAI, WrappedModels, PostHogGoogleGenAI as default };