import type { TypeOf } from "io-ts"; import type { ModelApi, ModelRequestOptions } from "@typeDefs"; import { FnTemplate } from "../../utils/Template"; import type { FewShotRequestOptions } from "../shared"; interface ChatCompletionRequestMessage { role: "user" | "assistant" | "system" | "tool" | "function"; content: string; name?: string; tool_call_id?: string; tool_calls?: { id: string; type: "function"; function: { name: string; arguments: string; }; }[]; function_call?: { arguments: string; name: string; }; } interface OpenAiChatToolsOptions { tools?: { type: "function"; function: { name: string; description?: string; parameters?: object; }; }[]; } /** * @category OpenAI ChatCompletion * @category Requests */ export interface OpenAiChatOptions extends ModelRequestOptions, FewShotRequestOptions, OpenAiChatToolsOptions { messages?: ChatCompletionRequestMessage[]; frequency_penalty?: number; logit_bias?: Record; logprobs?: boolean; top_logprobs?: number; max_tokens?: number; n?: number; presence_penalty?: number; response_format?: { type: "text" | "json_object"; }; seed?: number; stop?: string | string[]; stream?: boolean; stream_options?: { include_usage: boolean; }; temperature?: number; top_p?: number; user?: string; tool_choice?: "none" | "auto" | "required" | { type: "function"; function: { name: string; }; }; function_call?: string; functions?: { name: string; description?: string; parameters?: object; }[]; } /** * @category OpenAI ChatCompletion * @category Templates */ export declare const OpenAiChatTemplate: FnTemplate; declare const OpenAiChatResponseCodec: import("io-ts").IntersectionC<[import("io-ts").TypeC<{ id: import("io-ts").StringC; model: import("io-ts").StringC; object: import("io-ts").StringC; created: import("io-ts").NumberC; choices: import("io-ts").ArrayC, import("io-ts").PartialC<{ tool_calls: import("io-ts").ArrayC; }>>; function_call: import("io-ts").TypeC<{ name: import("io-ts").StringC; arguments: import("io-ts").StringC; }>; }>]>; logprobs: import("io-ts").UnionC<[import("io-ts").Mixed, import("io-ts").NullC, import("io-ts").UndefinedC]>; }>>; }>, import("io-ts").PartialC<{ system_fingerprint: import("io-ts").StringC; usage: import("io-ts").TypeC<{ completion_tokens: import("io-ts").NumberC; prompt_tokens: import("io-ts").NumberC; total_tokens: import("io-ts").NumberC; }>; }>]>; /** * @category OpenAI ChatCompletion * @category Responses */ export interface OpenAiChatResponse extends TypeOf { } export declare function isOpenAiChatResponse(response: unknown): response is OpenAiChatResponse; /** * * ## Reference * [OpenAI Chat Completion](https://github.com/openai/openai-openapi/) * * ## Providers using this API * - {@link createOpenAiChatModelProvider | OpenAI} * - {@link createGroqModelProvider | Groq} * - {@link createLmStudioModelProvider | LMStudio} * * @category APIs * @category OpenAI ChatCompletion * @category Provider: OpenAI * @category Provider: Groq * @category Provider: LMStudio * */ export declare const OpenAiChatApi: ModelApi; export {};