UNPKG

@ace-fetch/dify-compatible-plugin

Version:

dify plugins for @ace-fetch/core.

181 lines (180 loc) 5.04 kB
import type { PluginDefinition, Request } from '@ace-fetch/core'; export interface DifyStreamReadOptions { } export type CitationItem = { content: string; data_source_type: string; dataset_name: string; dataset_id: string; document_id: string; document_name: string; hit_count: number; index_node_hash: string; segment_id: string; segment_position: number; score: number; word_count: number; }; export type MessageEnd = { id: string; metadata: { retriever_resources?: CitationItem[]; annotation_reply: { id: string; account: { id: string; name: string; }; }; }; }; export type MessageReplace = { id: string; task_id: string; answer: string; conversation_id: string; }; export type AnnotationReply = { id: string; task_id: string; answer: string; conversation_id: string; annotation_id: string; annotation_author_name: string; }; export declare enum TransferMethod { all = "all", local_file = "local_file", remote_url = "remote_url" } export type VisionFile = { id?: string; type: string; transfer_method: TransferMethod; url: string; upload_file_id: string; belongs_to?: string; }; export type ThoughtItem = { id: string; tool: string; thought: string; tool_input: string; message_id: string; observation: string; position: number; files?: string[]; message_files?: VisionFile[]; }; export type WorkflowStartedResponse = { task_id: string; workflow_run_id: string; event: string; data: { id: string; workflow_id: string; sequence_number: number; created_at: number; }; }; export type WorkflowFinishedResponse = { task_id: string; workflow_run_id: string; event: string; data: { id: string; workflow_id: string; status: string; outputs: any; error: string; elapsed_time: number; total_tokens: number; total_steps: number; created_at: number; finished_at: number; }; }; export type NodeStartedResponse = { task_id: string; workflow_run_id: string; event: string; data: { id: string; node_id: string; node_type: string; index: number; predecessor_node_id?: string; inputs: any; created_at: number; extras?: any; }; }; export type NodeFinishedResponse = { task_id: string; workflow_run_id: string; event: string; data: { id: string; node_id: string; node_type: string; index: number; predecessor_node_id?: string; inputs: any; process_data: any; outputs: any; status: string; error: string; elapsed_time: number; execution_metadata: { total_tokens: number; total_price: number; currency: string; }; created_at: number; }; }; export type IOnDataMoreInfo = { conversationId?: string; taskId?: string; messageId: string; errorMessage?: string; errorCode?: string; }; export type IOnData = (message: string, isFirstMessage: boolean, moreInfo: IOnDataMoreInfo) => void; export type IOnThought = (though: ThoughtItem) => void; export type IOnFile = (file: VisionFile) => void; export type IOnMessageEnd = (messageEnd: MessageEnd) => void; export type IOnMessageReplace = (messageReplace: MessageReplace) => void; export type IOnAnnotationReply = (messageReplace: AnnotationReply) => void; export type IOnCompleted = (hasError?: boolean) => void; export type IOnError = (msg: string, code?: string) => void; export type IOnWorkflowStarted = (workflowStarted: WorkflowStartedResponse) => void; export type IOnWorkflowFinished = (workflowFinished: WorkflowFinishedResponse) => void; export type IOnNodeStarted = (nodeStarted: NodeStartedResponse) => void; export type IOnNodeFinished = (nodeFinished: NodeFinishedResponse) => void; /** * regist dify stream read plugin on current promise request * @param request request promise * @param options dify stream read options */ export declare function registDifyStreamRead(request: Request, options?: DifyStreamReadOptions): Request; /** * 注册Dify消息流处理插件 * 只在regist apis上运行 (and 自定义条件下) * @param options 插件配置 */ export declare const createDifyStreamReadPlugin: PluginDefinition<DifyStreamReadOptions>; declare module '@ace-fetch/core' { interface RequestCustomConfig { onData?: IOnData; onCompleted?: IOnCompleted; onThought?: IOnThought; onMessageEnd?: IOnMessageEnd; onMessageReplace?: IOnMessageReplace; onFile?: IOnFile; onWorkflowStarted?: IOnWorkflowStarted; onWorkflowFinished?: IOnWorkflowFinished; onNodeStarted?: IOnNodeStarted; onNodeFinished?: IOnNodeFinished; } }