@datastax/langflow-client
Version:
A JavaScript client for the Langflow API
77 lines (76 loc) • 1.97 kB
TypeScript
import type { fetch, FormData, Headers } from "undici";
import { InputTypes, OutputTypes } from "./consts.js";
export interface LangflowClientOptions {
baseUrl?: string;
langflowId?: string;
apiKey?: string;
fetch?: typeof fetch;
defaultHeaders?: Headers;
}
export type FlowInputType = (typeof InputTypes)[keyof typeof InputTypes];
export type FlowOutputType = (typeof OutputTypes)[keyof typeof OutputTypes];
export interface FlowRequestOptions {
input_type: FlowInputType;
output_type: FlowOutputType;
input_value: string;
tweaks?: Tweaks;
session_id?: string;
signal?: AbortSignal;
}
export interface RequestOptions {
path: string;
method: string;
query?: Record<string, string>;
body?: string | FormData;
headers: Headers | Record<string, string>;
signal?: AbortSignal;
}
export type Tweak = Record<string, string | number | null | boolean>;
export type Tweaks = Record<string, Tweak | string>;
export interface LangflowResponse {
session_id: string;
outputs: Array<{
inputs: object;
outputs: Array<object>;
}>;
}
export interface LangflowUploadResponse {
flowId: string;
file_path: string;
}
export interface LangflowUploadResponseUserFile {
id: string;
user_id: string;
name: string;
path: string;
size: number;
provider?: string;
updated_at?: string;
created_at?: string;
}
type TokenStreamEvent = {
event: "token";
data: {
chunk: string;
id: string;
timestamp: string;
};
};
type AddMessageStreamEvent = {
event: "add_message";
data: unknown;
};
type EndStreamEvent = {
event: "end";
data: {
result: {
session_id: string;
outputs: Array<{
inputs: unknown;
outputs: Array<unknown>;
}>;
};
};
};
export type StreamEvent = TokenStreamEvent | AddMessageStreamEvent | EndStreamEvent;
export {};