langflow-chatbot
Version:
Add a Langflow-powered chatbot to your website.
69 lines (68 loc) • 2.04 kB
TypeScript
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>;
}