@dasheck0/openai-api
Version:
A tiny client module for the openAI API
155 lines (154 loc) • 3.58 kB
TypeScript
export interface CompletionOpts {
model: string;
prompt?: string;
suffix?: string;
max_tokens?: number;
temperature?: number;
top_p?: number;
n?: number;
stream?: boolean;
logprobs?: number;
echo?: boolean;
stop?: string | string[];
presence_penalty?: number;
frequency_penalty?: number;
best_of?: number;
user?: string;
logit_bias?: {
[token: string]: number;
};
}
export interface Completion {
id: string;
object: string;
created: number;
model: string;
choices: Choice[];
}
export interface Choice {
text: string;
index: number;
logprobs: any;
finish_reason: string;
}
export interface SearchOpts {
engine_id: string;
query: string;
documents?: string[];
file?: string;
max_rerank?: number;
return_metadata?: boolean;
user?: string;
}
export interface Search {
data: Document[];
object: string;
}
export interface Document {
document: number;
object: string;
score: number;
metadata?: any;
}
export interface AnswerOpts {
model: string;
question: string;
examples: string[][];
examples_context: string;
documents?: string[];
file?: string;
search_model?: string;
max_rerank?: number;
temperature?: number;
logprobs?: number;
max_tokens?: number;
stop?: string | string[];
n?: number;
logit_bias?: LogitBias;
return_metadata?: boolean;
return_prompt?: boolean;
expand?: string[];
user?: string;
}
export interface LogitBias {
[key: string]: number;
}
export interface Answer {
answers: string[];
completion: string;
modeL: string;
object: string;
search_model: string;
selected_documents: AnswerDocument[];
}
export interface AnswerDocument {
document: number;
text: string;
}
export interface ClassificationOpts {
model: string;
query: string;
examples?: string[][];
file?: string;
labels?: string[];
search_model?: string;
temperature?: string;
logprobs?: number;
max_examples?: number;
logit_bias?: LogitBias;
return_prompt?: boolean;
return_metadata?: boolean;
expand?: string[];
user?: string;
}
export interface Classification {
completion: string;
label: string;
model: string;
object: string;
search_model: string;
selected_examples: ClassificationDocument;
}
export interface ClassificationDocument {
document: number;
label: string;
text: string;
}
export interface EngineData {
data: Engine[];
object: string;
}
export interface EmbeddingOpts {
model: string;
input: string | string[];
user?: string;
}
export interface Engine {
id: string;
object: string;
owner: string;
ready: boolean;
}
export interface Embedding {
object: string;
data: EmbeddingData[];
}
export interface EmbeddingData {
object: string;
index: number;
embedding: number[];
}
export default class OpenAI {
private readonly apiKey;
constructor(apiKey: string);
_send_request(url: string, method: string, opts?: any): Promise<any>;
_check_embeddings_engine_name(model: string): void;
complete(opts: CompletionOpts): Promise<Completion>;
encode(): Promise<any[]>;
search(opts: SearchOpts): Promise<Search>;
answers(opts: AnswerOpts): Promise<Answer>;
classification(opts: ClassificationOpts): Promise<Classification>;
engines(): Promise<any>;
engine(engine: string): Promise<any>;
embeddings(opts: EmbeddingOpts): Promise<Embedding>;
}