import OpenAI from "openai"; import { type CompletionCreateParamsNonStreaming } from "openai/resources"; import { RunCreateParamsNonStreaming } from "openai/resources/beta/threads/runs/runs"; import { type ChatCompletionCreateParamsNonStreaming } from "openai/resources/chat"; import { ResolvedReturnValue, ResolvedToolCall } from "./resolvers"; interface OpenAIChatParameters extends Omit { modelProvider: "openai"; modelType: "chat"; } interface OpenAICompletionParameters extends Omit { modelProvider: "openai"; modelType: "completion"; } interface OpenAIThreadRunParameters extends RunCreateParamsNonStreaming { modelProvider: "openai"; modelType: "assistants"; } export type ModelParameters = OpenAIChatParameters | OpenAICompletionParameters | OpenAIThreadRunParameters; /** * */ export interface EventMetadata { promptTemplateText?: string | null; promptTemplateTextId?: string; promptTemplateChat?: any[]; promptTemplateName?: string; apiName?: string; apiKey?: string; chatId?: string; chainId?: string; modelParameters?: ModelParameters; feedbackKey?: string; context?: Record; tools?: any[]; } /** * NOTE: This should match the expected ResponseMetrics type that is on our * server side. */ export interface ResponseMetrics { usage: OpenAI.Completions.CompletionUsage | undefined; finish_reason: OpenAI.Completions.CompletionChoice["finish_reason"] | OpenAI.ChatCompletion.Choice["finish_reason"] | undefined | null; logprobs: OpenAI.Completions.CompletionChoice.Logprobs | OpenAI.Chat.Completions.ChatCompletion.Choice.Logprobs | undefined | null; } interface PromptEvent { params: Record; /** Included after response */ response?: string | null; /** Plain, raw result from OpenAI */ rawResponse?: ResolvedReturnValue | null; /** Possible list of */ toolCalls?: ResolvedToolCall[] | null; /** Response time in ms */ responseTime?: number; /** Included only if there is an error from openai, or error in validation */ responseErrors?: string[]; responseMetrics?: ResponseMetrics; prompt: {}; } export type Event = EventMetadata & PromptEvent; export declare function send_event(event: Event): Promise; export interface Feedback { /** The feedback_key that was passed to the `event` API. */ feedbackKey?: string; rating?: number; /** * A better response than what the prompt responded with. (e.g. a correction * from a user) */ betterResponse?: string; /** * Indicates that an event is "deleted." Used when assistant thread messages * were deleted in OpenAI -- we keep the original message event but mark it * as deleted via feedback. */ isDeleted?: boolean; apiKey?: string; } /** Send feedback to the */ export declare function sendFeedback(body: Feedback): Promise; export interface UpdateChainParams { id: string; result?: string | null; apiKey?: string; } export declare function updateChain(body: UpdateChainParams): Promise; export {};