purai.js
Version:
NPM package for PurAI API
62 lines (61 loc) • 1.98 kB
TypeScript
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;