UNPKG

@posthog/ai

Version:
33 lines (32 loc) 1.76 kB
import OpenAIOrignal from 'openai'; import { PostHog } from 'posthog-node'; import { MonitoringParams } from '../utils'; type ChatCompletion = OpenAIOrignal.ChatCompletion; type ChatCompletionChunk = OpenAIOrignal.ChatCompletionChunk; type ChatCompletionCreateParamsBase = OpenAIOrignal.Chat.Completions.ChatCompletionCreateParams; type ChatCompletionCreateParamsNonStreaming = OpenAIOrignal.Chat.Completions.ChatCompletionCreateParamsNonStreaming; type ChatCompletionCreateParamsStreaming = OpenAIOrignal.Chat.Completions.ChatCompletionCreateParamsStreaming; import type { APIPromise, RequestOptions } from 'openai/core'; import type { Stream } from 'openai/streaming'; interface MonitoringOpenAIConfig { apiKey: string; posthog: PostHog; baseURL?: string; } export declare class PostHogOpenAI extends OpenAIOrignal { private readonly phClient; chat: WrappedChat; constructor(config: MonitoringOpenAIConfig); } export declare class WrappedChat extends OpenAIOrignal.Chat { constructor(parentClient: PostHogOpenAI, phClient: PostHog); completions: WrappedCompletions; } export declare class WrappedCompletions extends OpenAIOrignal.Chat.Completions { private readonly phClient; constructor(client: OpenAIOrignal, phClient: PostHog); create(body: ChatCompletionCreateParamsNonStreaming & MonitoringParams, options?: RequestOptions): APIPromise<ChatCompletion>; create(body: ChatCompletionCreateParamsStreaming & MonitoringParams, options?: RequestOptions): APIPromise<Stream<ChatCompletionChunk>>; create(body: ChatCompletionCreateParamsBase & MonitoringParams, options?: RequestOptions): APIPromise<ChatCompletion | Stream<ChatCompletionChunk>>; } export default PostHogOpenAI;