UNPKG

purai.js

Version:
62 lines (61 loc) 1.98 kB
import { ChatMessage } from './purAi.js'; export type ApiVersion = `v${number}`; export declare enum ApiRequestPath { Models = "models", ChatCompletions = "chat/completions", OpenAiChatCompletions = "openai/chat/completions", ImageGenerate = "image/generate" } export declare enum ApiRequestMethod { Get = "GET", Post = "POST" } export interface ApiChatCompletionsPostRequest { model: string; messages: ChatMessage[]; } export interface ApiOpenAiChatCompletionsPostRequest extends ApiChatCompletionsPostRequest { filtered: boolean; } export interface ApiImageGeneratePostRequest { model: string; prompt: string; } export type ApiRequest = ApiChatCompletionsPostRequest | ApiOpenAiChatCompletionsPostRequest | ApiImageGeneratePostRequest; export interface ApiRequestOptions { body?: ApiRequest; } export interface ApiChatCompletionsPostResponseResponse { messages: ChatMessage[]; } export type ApiTook = `${number} ms`; export interface BaseApiResponse { provider: string; took: ApiTook; } export interface ApiChatCompletionsPostResponse extends BaseApiResponse { response: ApiChatCompletionsPostResponseResponse; } export interface ApiOpenAiChatCompletionsPostResponseChoice { finish_reason: string; index: number; message: ChatMessage; logprops?: null; } export interface ApiOpenAiChatCompletionsPostResponseUsage { completion_tokens: number; prompt_tokens: number; total_tokens: number; } export interface ApiOpenAiChatCompletionsPostResponse extends BaseApiResponse { choices: ApiOpenAiChatCompletionsPostResponseChoice[]; created: number; id: string; model: string; object: string; usage: ApiOpenAiChatCompletionsPostResponseUsage; } export interface ApiImageGeneratePostResponse extends BaseApiResponse { response: string; } export type ApiResponse = ApiChatCompletionsPostResponse | ApiOpenAiChatCompletionsPostResponse | ApiImageGeneratePostResponse;