UNPKG

apphouse

Version:

Component library for React that uses observable state management and theme-able components.

43 lines (42 loc) 1.6 kB
import { Chat, List } from '..'; import { ChatHistory } from './Chat'; import { ChatCompletionMessageParam } from 'openai/resources/index.mjs'; export interface OpenAiChatApi { chatCompletion: (history: ChatHistory) => Promise<any>; createAudioTranscription: (file: File) => Promise<any>; uploadFile: (file: File) => Promise<any>; } export type ChatCompletionMessage = ChatCompletionMessageParam & { id: string; }; export type ChatRoomHistory = List<ChatCompletionMessage>; export declare class OpenAiChat { chat: Chat; loadingAiResponse: boolean; api: OpenAiChatApi; constructor(api: OpenAiChatApi); get lastAssistantMessageIndex(): number; get history(): ChatHistory; /** * The api does not include an id for the message, so we strip these out */ get chatAiChatHistory(): { userId: string; content: string; }[]; addMessage: (message: ChatCompletionMessage) => void; requestAudioTranscription: (file: File) => Promise<void>; uploadFile: (file: File) => Promise<void>; sendUserMessage: (message: string) => Promise<void>; setAiLoading: (loading: boolean) => void; /** * Handle error when content length is exceeded * code: "context_length_exceeded" * message: "This model's maximum context length is 4097 tokens. However, your messages resulted in 4176 tokens. Please reduce the length of the messages." * param: "messages" * type: "invalid_request_error" */ private handleErrorContentLengthExceeded; private resolveErrorMessage; private handleErrorMessage; }