chatgpt-optimized-official
Version:
ChatGPT Client using official OpenAI API
43 lines (42 loc) • 2.09 kB
TypeScript
import Usage from "../models/chatgpt-usage.js";
import Options from "../models/chatgpt-options.js";
import Conversation from "../models/conversation.js";
import { OpenAI } from "openai";
declare class Assistant {
options: Options;
private db;
onUsage: (usage: Usage) => void;
private openai;
private assistantId;
private theadId;
private runId;
private conversationThreads;
constructor(key: string | string[], options?: Options);
createAssistant(options: Options): Promise<void>;
createThread(): Promise<string>;
addMessageToThread(threadId: string, content: string): Promise<OpenAI.Beta.Threads.Messages.Message>;
runAssistant(threadId: string, instructions?: string): Promise<string>;
checkRunStatus(threadId: string, runId: string): Promise<OpenAI.Beta.Threads.Runs.Run>;
getAssistantResponses(threadId: string): Promise<OpenAI.Beta.Threads.Messages.Message[]>;
createAndRunThread(prompt: string, userName?: string, conversationId?: string | null): Promise<any>;
waitForRunToComplete(threadId: string, runId: string): Promise<void>;
formatResponse(responses: any[]): any;
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, type?: number, function_name?: string, userName?: string): Promise<any>;
askPost(data: (arg0: string) => void, usage: (usage: Usage) => void, prompt: string, conversationId?: string, function_name?: string, userName?: string, type?: number): Promise<any>;
moderate(prompt: string, key: string): Promise<boolean>;
private generatePrompt;
private generateMessages;
private countTokens;
private getToday;
private getTime;
private wait;
}
export default Assistant;