chatgpt-optimized-official
Version:
ChatGPT Client using official OpenAI API
40 lines (39 loc) • 1.79 kB
TypeScript
import Usage from "../models/chatgpt-usage.js";
import Options from "../models/chatgpt-options.js";
import Conversation from "../models/conversation.js";
type ContentBlock = {
type: "text";
text: string;
} | {
type: "image_url";
image_url: {
url: string;
detail?: "low" | "high" | "auto";
};
};
declare class ChatGPT {
options: Options;
private db;
onUsage: (usage: Usage) => void;
constructor(key: string | string[], options?: Options);
private getOpenAIKey;
private chunksToLines;
private linesToMessages;
private streamCompletion;
private getInstructions;
addConversation(conversationId: string, userName?: string): Conversation;
getConversation(conversationId: string, userName?: string): Conversation;
resetConversation(conversationId: string): Conversation;
ask(prompt: string, conversationId?: string, userName?: string): Promise<string>;
askStream(data: (arg0: string) => void, usage: (usage: Usage) => void, prompt: string, conversationId?: string, userName?: string): Promise<string>;
askV1(prompt: string | ContentBlock[], conversationId?: string, type?: number, function_name?: string, tool_call_id?: string, userName?: string, response_format?: any): Promise<any>;
askPost(data: (arg0: string) => void, usage: (usage: Usage) => void, prompt: string | ContentBlock[], conversationId?: string, function_name?: string, userName?: string, type?: number, tool_call_id?: string, response_format?: any): Promise<any>;
moderate(prompt: string, key: string): Promise<boolean>;
private generatePrompt;
private generateMessages;
private countTokens;
private getToday;
private getTime;
private wait;
}
export default ChatGPT;