@pezzo/client
Version:
TypeScript API client for Pezzo
57 lines (56 loc) • 2.28 kB
TypeScript
import { OpenAIToolkit } from "@pezzo/llm-toolkit";
import { Provider } from "./provider.types";
import { AllPrimitiveTypes, Primitive, RecursiveObject } from "./ts-helpers";
import OpenAI from "openai";
import { PromptExecutionType } from "./prompt-execution-type";
type ExtractModelNames<T> = T extends {
model: infer M;
} ? M : never;
export type AcceptedModels = ExtractModelNames<Parameters<typeof OpenAIToolkit.calculateGptCost>[0]>;
export type ObservabilityReportProperties = RecursiveObject<Primitive>;
export type ObservabilityReportMetadata = {
provider: string;
model: string;
modelAuthor: string;
client?: string;
clientVersion?: string;
environment: string;
type: PromptExecutionType;
[key: string]: AllPrimitiveTypes;
};
export declare class GenericObservabilityRequestResponseBody {
[key: string]: AllPrimitiveTypes;
}
export declare class OpenAIObservabilityRequestBody implements Partial<OpenAI.Chat.Completions.ChatCompletion> {
model: AcceptedModels;
messages: OpenAI.Chat.CompletionCreateParams["messages"];
max_tokens: number;
temperature: number;
top_p: number;
}
export declare class OpenAIObservabilityResponseBody implements OpenAI.Chat.Completions.ChatCompletion {
object: OpenAI.Chat.Completions.ChatCompletion["object"];
id: string;
created: number;
model: AcceptedModels;
choices: OpenAI.Chat.Completions.ChatCompletion["choices"];
completion: string;
stream: boolean;
stop: string;
usage?: OpenAI.Chat.Completions.ChatCompletion["usage"];
error?: AllPrimitiveTypes;
}
export declare class ObservabilityRequest<TProviderType extends Provider | unknown = unknown> {
timestamp: string;
body: TProviderType extends Provider.OpenAI ? OpenAIObservabilityRequestBody : GenericObservabilityRequestResponseBody;
}
export declare class ObservabilityResponse<TProviderType extends Provider | unknown = unknown> {
timestamp: string;
body: TProviderType extends Provider.OpenAI ? OpenAIObservabilityResponseBody : GenericObservabilityRequestResponseBody;
status: number;
}
export interface ObservabilityResponseBody {
usage: string;
[key: string]: AllPrimitiveTypes;
}
export {};