UNPKG

@tsailab/xai

Version:

The loto-xai is an openai nodejs sdk compatible extension library.

106 lines (105 loc) 2.95 kB
import { SseMessageChunkData } from '../../chat/sse-types'; import { SseCallbackFn, SseEventType, StreamablePrepareCallback, XaiStreamableOptions, XaiStreamableRequestData } from './streamable.types'; /** * */ export declare class XaiSseFetch { private checkAuth; protected debug: boolean; protected eventDataParsed: boolean; private method; protected controller?: AbortController; private apiPrefix; private readonly apiPath; protected headers: { [k: string]: any; }; private fetchInprogress; private reqCached; private eventListeners; private sseCaches; constructor(apiPath: string, options: XaiStreamableOptions); get url(): string; /** * request id */ get reqid(): string; get msgid(): string; get inprogress(): boolean; get error(): string | undefined; get result(): string; protected log(data: any, type?: 'error' | 'warn' | 'log', prefix?: string): void; /** * @public * launch fetch request * @param data request data * @param cb prepare request parametes callback * @returns XaiStreamFetch instance */ connect<D extends XaiStreamableRequestData = XaiStreamableRequestData>(data: D, cb?: StreamablePrepareCallback): Promise<XaiSseFetch>; /** * disconnect */ disconnect(): void; cancel(): void; protected dispatchEvent<T = any>(eventName: SseEventType, data: T): void; /** * when abort on completed will emit close * @param _ev */ protected abortEventHandler(_ev: Event): void; /** * regist event * @param eventName * @param handler */ addListener(eventName: SseEventType, handler: SseCallbackFn): this; /** * * @param eventName * @param handler * @returns */ removeListener(eventName: SseEventType, handler: SseCallbackFn): XaiSseFetch; /** * @private * init request cache & put reqid into header * * @param data * front request Data if reqid or msgid is null * will auto created and fill to data */ private createRequestCache; /** * before call sse reset repsonse cache */ private resetPrepareCaches; private updateSomeSseCahces; /** * merge headers and check Authorization token * @param requestHeaders * @returns headers */ private prepareHeaders; private setHeaderReqid; /** * * @param some */ private updateSomeRequestCache; private resetReqCache; /** * * @param options */ private _registListeners; private pushMessageCache; private appendResult; private setQuestion; /** * @private * * @returns function onLine(arr:Uint8Array,fieldLength:number)=>void */ protected _parseChunkMessage<C extends SseMessageChunkData = SseMessageChunkData>(): (line: Uint8Array, fieldLength: number) => void; }