dify-client-plus-node
Version:
This is the Node.js SDK for the Dify.AI API, which allows you to easily integrate Dify.AI into your Node.js applications.
131 lines (111 loc) • 3.68 kB
TypeScript
// 基础类型声明
export const BASE_URL: string;
export type RequestMethods = "GET" | "POST" | "PUT" | "DELETE" | "PATCH";
interface RouteDefinition {
method: RequestMethods;
url: ((...args: any[]) => string) | string;
}
export interface Routes {
application: RouteDefinition;
feedback: RouteDefinition;
createChatMessage: RouteDefinition;
getConversationMessages: RouteDefinition;
getConversations: RouteDefinition;
renameConversation: RouteDefinition;
deleteConversation: RouteDefinition;
fileUpload: RouteDefinition;
getMeta: RouteDefinition;
getInfo: RouteDefinition;
aduioToText: RouteDefinition;
textToAudio: RouteDefinition;
getSuggested: RouteDefinition;
stopChat: RouteDefinition;
runWorkflow: RouteDefinition;
checkWorkflow: RouteDefinition;
stopWorkflow: RouteDefinition;
getWorkflowLogs: RouteDefinition;
getAnnotations: RouteDefinition;
createAnnotation: RouteDefinition;
updateAnnotation: RouteDefinition;
deleteAnnotation: RouteDefinition;
replyAnnotation: RouteDefinition;
checkAnnotation: RouteDefinition;
}
export const routes: Routes;
interface User {
[key: string]: any;
}
interface File {
type: string;
transfer_method: string;
url: string;
}
export class DifyClient {
protected apiKey: string;
protected baseUrl: string;
constructor(apiKey: string, baseUrl?: string);
updateApiKey(apiKey: string): void;
protected sendRequest(
method: RequestMethods,
endpoint: string,
data?: any | null,
params?: any | null,
stream?: boolean,
headerParams?: Record<string, string>
): Promise<any>;
messageFeedback(message_id: string, rating: number, user: User): Promise<any>;
getApplicationParameters(user: User): Promise<any>;
getInfo(user: User): Promise<any>;
fileUpload(data: FormData): Promise<any>;
aduioToText(data: FormData): Promise<any>;
textToAudio(data: FormData): Promise<any>;
}
export class WorkflowClient extends DifyClient {
checkWorkflow(workflow_id: string): Promise<any>;
stopWorkflow(task_id: string, user: User): Promise<any>;
getWorkflowLogs(keyword: string, status: string, page?: number, limit?: number | null): Promise<any>;
runWorkflow(inputs: any, user: User, stream?: boolean, files?: File[] | null): Promise<any>;
}
export class ChatClient extends DifyClient {
createChatMessage(
inputs: any,
query: string,
user: User,
stream?: boolean,
conversation_id?: string | null,
files?: File[] | null
): Promise<any>;
getConversationMessages(
user: User,
conversation_id?: string,
first_id?: string | null,
limit?: number | null
): Promise<any>;
getConversations(
user: User,
first_id?: string | null,
limit?: number | null,
pinned?: boolean | null
): Promise<any>;
renameConversation(
conversation_id: string,
name: string,
user: User,
auto_generate: boolean
): Promise<any>;
deleteConversation(conversation_id: string, user: User): Promise<any>;
stopChat(task_id: string, user: User): Promise<any>;
getSuggested(message_id: string, user: User): Promise<any>;
getMeta(user: User): Promise<any>;
getAnnotations(first_id?: string | null, limit?: number | null): Promise<any>;
createAnnotation(question: string, answer: string): Promise<any>;
updateAnnotation(annotation_id: string, question: string, answer: string): Promise<any>;
deleteAnnotation(annotation_id: string): Promise<any>;
replyAnnotation(
action: string,
embedding_model_provider: string,
embedding_model: string,
score_threshold: number
): Promise<any>;
checkAnnotation(action: string, job_id: string): Promise<any>;
}