Skip to content

Commit

Permalink
add workflowClient ,fix rename bug (langgenius#7352)
Browse files Browse the repository at this point in the history
  • Loading branch information
lingfengchencn authored and cuiks committed Sep 2, 2024
1 parent 09e2d3b commit 03d8e5f
Show file tree
Hide file tree
Showing 4 changed files with 235 additions and 63 deletions.
28 changes: 25 additions & 3 deletions sdks/nodejs-client/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,10 @@ export declare class DifyClient {
getApplicationParameters(user: User): Promise<any>;

fileUpload(data: FormData): Promise<any>;

textToAudio(text: string ,user: string, streaming?: boolean): Promise<any>;

getMeta(user: User): Promise<any>;
}

export declare class CompletionClient extends DifyClient {
Expand All @@ -54,16 +58,34 @@ export declare class ChatClient extends DifyClient {
files?: File[] | null
): Promise<any>;

getSuggested(message_id: string, user: User): Promise<any>;

stopMessage(task_id: string, user: User) : Promise<any>;


getConversations(
user: User,
first_id?: string | null,
limit?: number | null,
pinned?: boolean | 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): Promise<any>;
renameConversation(conversation_id: string, name: string, user: User,auto_generate:boolean): Promise<any>;

deleteConversation(conversation_id: string, user: User): Promise<any>;

audioToText(data: FormData): Promise<any>;
}

export declare class WorkflowClient extends DifyClient {
run(inputs: any, user: User, stream?: boolean,): Promise<any>;

stop(task_id: string, user: User): Promise<any>;
}
149 changes: 133 additions & 16 deletions sdks/nodejs-client/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,30 +2,55 @@ import axios from "axios";
export const BASE_URL = "https://api.dify.ai/v1";

export const routes = {
// app's
feedback: {
method: "POST",
url: (message_id) => `/messages/${message_id}/feedbacks`,
},
application: {
method: "GET",
url: () => `/parameters`,
},
feedback: {
fileUpload: {
method: "POST",
url: (message_id) => `/messages/${message_id}/feedbacks`,
url: () => `/files/upload`,
},
textToAudio: {
method: "POST",
url: () => `/text-to-audio`,
},
getMeta: {
method: "GET",
url: () => `/meta`,
},

// completion's
createCompletionMessage: {
method: "POST",
url: () => `/completion-messages`,
},

// chat's
createChatMessage: {
method: "POST",
url: () => `/chat-messages`,
},
getConversationMessages: {
getSuggested:{
method: "GET",
url: () => `/messages`,
url: (message_id) => `/messages/${message_id}/suggested`,
},
stopChatMessage: {
method: "POST",
url: (task_id) => `/chat-messages/${task_id}/stop`,
},
getConversations: {
method: "GET",
url: () => `/conversations`,
},
getConversationMessages: {
method: "GET",
url: () => `/messages`,
},
renameConversation: {
method: "POST",
url: (conversation_id) => `/conversations/${conversation_id}/name`,
Expand All @@ -34,14 +59,21 @@ export const routes = {
method: "DELETE",
url: (conversation_id) => `/conversations/${conversation_id}`,
},
fileUpload: {
audioToText: {
method: "POST",
url: () => `/files/upload`,
url: () => `/audio-to-text`,
},

// workflow‘s
runWorkflow: {
method: "POST",
url: () => `/workflows/run`,
},
stopWorkflow: {
method: "POST",
url: (task_id) => `/workflows/${task_id}/stop`,
}

};

export class DifyClient {
Expand Down Expand Up @@ -129,6 +161,31 @@ export class DifyClient {
}
);
}

textToAudio(text, user, streaming = false) {
const data = {
text,
user,
streaming
};
return this.sendRequest(
routes.textToAudio.method,
routes.textToAudio.url(),
data,
null,
streaming
);
}

getMeta(user) {
const params = { user };
return this.sendRequest(
routes.meta.method,
routes.meta.url(),
null,
params
);
}
}

export class CompletionClient extends DifyClient {
Expand Down Expand Up @@ -191,6 +248,34 @@ export class ChatClient extends DifyClient {
);
}

getSuggested(message_id, user) {
const data = { user };
return this.sendRequest(
routes.getSuggested.method,
routes.getSuggested.url(message_id),
data
);
}

stopMessage(task_id, user) {
const data = { user };
return this.sendRequest(
routes.stopChatMessage.method,
routes.stopChatMessage.url(task_id),
data
);
}

getConversations(user, first_id = null, limit = null, pinned = null) {
const params = { user, first_id: first_id, limit, pinned };
return this.sendRequest(
routes.getConversations.method,
routes.getConversations.url(),
null,
params
);
}

getConversationMessages(
user,
conversation_id = "",
Expand All @@ -213,16 +298,6 @@ export class ChatClient extends DifyClient {
);
}

getConversations(user, first_id = null, limit = null, pinned = null) {
const params = { user, first_id: first_id, limit, pinned };
return this.sendRequest(
routes.getConversations.method,
routes.getConversations.url(),
null,
params
);
}

renameConversation(conversation_id, name, user, auto_generate) {
const data = { name, user, auto_generate };
return this.sendRequest(
Expand All @@ -240,4 +315,46 @@ export class ChatClient extends DifyClient {
data
);
}


audioToText(data) {
return this.sendRequest(
routes.audioToText.method,
routes.audioToText.url(),
data,
null,
false,
{
"Content-Type": 'multipart/form-data'
}
);
}

}

export class WorkflowClient extends DifyClient {
run(inputs,user,stream) {
const data = {
inputs,
response_mode: stream ? "streaming" : "blocking",
user
};

return this.sendRequest(
routes.runWorkflow.method,
routes.runWorkflow.url(),
data,
null,
stream
);
}

stop(task_id, user) {
const data = { user };
return this.sendRequest(
routes.stopWorkflow.method,
routes.stopWorkflow.url(task_id),
data
);
}
}
74 changes: 48 additions & 26 deletions sdks/php-client/dify-client.php
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,28 @@ public function create_chat_message($inputs, $query, $user, $response_mode = 'bl

return $this->send_request('POST', 'chat-messages', $data, null, $response_mode === 'streaming');
}

public function get_suggestions($message_id, $user) {
$params = [
'user' => $user
]
return $this->send_request('GET', "messages/{$message_id}/suggested", null, $params);
}

public function stop_message($task_id, $user) {
$data = ['user' => $user];
return $this->send_request('POST', "chat-messages/{$task_id}/stop", $data);
}

public function get_conversations($user, $first_id = null, $limit = null, $pinned = null) {
$params = [
'user' => $user,
'first_id' => $first_id,
'limit' => $limit,
'pinned'=> $pinned,
];
return $this->send_request('GET', 'conversations', null, $params);
}

public function get_conversation_messages($user, $conversation_id = null, $first_id = null, $limit = null) {
$params = ['user' => $user];
Expand All @@ -144,33 +166,21 @@ public function get_conversation_messages($user, $conversation_id = null, $first

return $this->send_request('GET', 'messages', null, $params);
}


public function stop_message($task_id, $user) {
$data = ['user' => $user];
return $this->send_request('POST', "chat-messages/{$task_id}/stop", $data);
}





public function get_conversations($user, $first_id = null, $limit = null, $pinned = null) {
$params = [
public function rename_conversation($conversation_id, $name,$auto_generate, $user) {
$data = [
'name' => $name,
'user' => $user,
'first_id' => $first_id,
'limit' => $limit,
'pinned'=> $pinned,
'auto_generate' => $auto_generate
];
return $this->send_request('GET', 'conversations', null, $params);
return $this->send_request('PATCH', "conversations/{$conversation_id}", $data);
}

public function rename_conversation($conversation_id, $name, $user) {
public function delete_conversation($conversation_id, $user) {
$data = [
'name' => $name,
'user' => $user,
];
return $this->send_request('PATCH', "conversations/{$conversation_id}", $data);
return $this->send_request('DELETE', "conversations/{$conversation_id}", $data);
}

public function audio_to_text($audio_file, $user) {
Expand All @@ -184,11 +194,23 @@ public function audio_to_text($audio_file, $user) {

}


public function get_suggestions($message_id, $user) {
$params = [
'user' => $user
]
return $this->send_request('GET', "messages/{$message_id}/suggested", null, $params);
}
}

class WorkflowClient extends DifyClient{
public function run($inputs, $response_mode, $user) {
$data = [
'inputs' => $inputs,
'response_mode' => $response_mode,
'user' => $user,
];
return $this->send_request('POST', 'workflows/run', $data);
}

public function stop($task_id, $user) {
$data = [
'user' => $user,
];
return $this->send_request('POST', "workflows/tasks/{$task_id}/stop",$data);
}

}
Loading

0 comments on commit 03d8e5f

Please sign in to comment.