@posthog/ai
Version:
PostHog Node.js AI integrations
33 lines (32 loc) • 1.76 kB
TypeScript
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;