UNPKG

langflow-chatbot

Version:

Add a Langflow-powered chatbot to your website.

69 lines (68 loc) 2.04 kB
import { Logger } from '../utils/logger'; export interface BotResponse { reply?: string; sessionId?: string; error?: string; detail?: string; } export interface TokenEventData { chunk: string; id?: string; timestamp?: string; } export interface AddMessageEventData { message?: any; is_bot?: boolean; } export interface StreamStartedEventData { sessionId: string; } export interface EndEventData { flowResponse: BotResponse; sessionId?: string; } export interface StreamEventDataMap { add_message: AddMessageEventData; token: TokenEventData; stream_started: StreamStartedEventData; end: EndEventData; error: { message: string; detail?: string; code?: number; sessionId?: string; }; } export type StreamEventType = keyof StreamEventDataMap; export interface StreamEvent<K extends StreamEventType = StreamEventType> { event: K; data: StreamEventDataMap[K]; } export interface ChatMessageData { id?: string; flow_id?: string; timestamp?: string; sender?: string; sender_name?: string; session_id?: string; text?: string; files?: string[]; } export declare class LangflowChatClient { private readonly baseApiUrl; private readonly chatEndpoint; private readonly historyEndpoint; private readonly logger; private profileId; /** * Creates an instance of LangflowChatClient. * @param {string} profileId - The unique identifier for the chatbot profile. * @param {string} baseApiUrl - The base API URL for the Langflow proxy. * @param {Logger} [logger] - Optional logger instance. */ constructor(profileId: string, baseApiUrl: string, logger?: Logger); private generateSessionId; sendMessage(message: string, sessionId?: string | null): Promise<BotResponse>; streamMessage(message: string, sessionId?: string | null): AsyncGenerator<StreamEvent, void, undefined>; getMessageHistory(sessionId: string): Promise<ChatMessageData[] | null>; }