mirror of
https://github.com/langgenius/ruby-sdk.git
synced 2026-07-01 20:35:26 -04:00
rubocop --fix
This commit is contained in:
@@ -11,4 +11,4 @@ gem "minitest", "~> 5.0"
|
||||
|
||||
gem "rubocop", "~> 1.72"
|
||||
|
||||
gem 'webmock'
|
||||
gem "webmock"
|
||||
|
||||
+71
-71
@@ -1,91 +1,91 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require_relative "client/version"
|
||||
|
||||
class DifyClient
|
||||
def initialize(api_key)
|
||||
@api_key = api_key
|
||||
@base_url = "https://api.dify.ai/v1"
|
||||
def initialize(api_key)
|
||||
@api_key = api_key
|
||||
@base_url = "https://api.dify.ai/v1"
|
||||
end
|
||||
|
||||
def _send_request(method, endpoint, data = nil, params = nil, stream = false)
|
||||
uri = URI.parse("#{@base_url}#{endpoint}")
|
||||
|
||||
http = Net::HTTP.new(uri.host, uri.port)
|
||||
http.use_ssl = true
|
||||
|
||||
headers = {
|
||||
"Authorization" => "Bearer #{@api_key}",
|
||||
"Content-Type" => "application/json"
|
||||
}
|
||||
|
||||
if method == "GET"
|
||||
uri.query = URI.encode_www_form(params) if params
|
||||
request = Net::HTTP::Get.new(uri.request_uri, headers)
|
||||
elsif method == "POST"
|
||||
request = Net::HTTP::Post.new(uri.request_uri, headers)
|
||||
request.body = data.to_json
|
||||
end
|
||||
|
||||
def _send_request(method, endpoint, data = nil, params = nil, stream = false)
|
||||
uri = URI.parse("#{@base_url}#{endpoint}")
|
||||
response = http.request(request)
|
||||
return response
|
||||
end
|
||||
|
||||
http = Net::HTTP.new(uri.host, uri.port)
|
||||
http.use_ssl = true
|
||||
def message_feedback(message_id, rating, user)
|
||||
data = {
|
||||
rating: rating,
|
||||
user: user
|
||||
}
|
||||
return _send_request("POST", "/messages/#{message_id}/feedbacks", data)
|
||||
end
|
||||
|
||||
headers = {
|
||||
"Authorization" => "Bearer #{@api_key}",
|
||||
"Content-Type" => "application/json"
|
||||
}
|
||||
|
||||
if method == "GET"
|
||||
uri.query = URI.encode_www_form(params) if params
|
||||
request = Net::HTTP::Get.new(uri.request_uri, headers)
|
||||
elsif method == "POST"
|
||||
request = Net::HTTP::Post.new(uri.request_uri, headers)
|
||||
request.body = data.to_json
|
||||
end
|
||||
|
||||
response = http.request(request)
|
||||
return response
|
||||
end
|
||||
|
||||
def message_feedback(message_id, rating, user)
|
||||
data = {
|
||||
rating: rating,
|
||||
user: user
|
||||
}
|
||||
return _send_request("POST", "/messages/#{message_id}/feedbacks", data)
|
||||
end
|
||||
|
||||
def get_application_parameters(user)
|
||||
params = {user: user}
|
||||
return _send_request("GET", "/parameters", nil, params)
|
||||
end
|
||||
def get_application_parameters(user)
|
||||
params = { user: user }
|
||||
return _send_request("GET", "/parameters", nil, params)
|
||||
end
|
||||
end
|
||||
|
||||
class CompletionClient < DifyClient
|
||||
def create_completion_message(inputs, query, response_mode, user)
|
||||
data = {
|
||||
inputs: inputs,
|
||||
query: query,
|
||||
response_mode: response_mode,
|
||||
user: user
|
||||
}
|
||||
return _send_request("POST", "/completion-messages", data, nil, response_mode == "streaming")
|
||||
end
|
||||
def create_completion_message(inputs, query, response_mode, user)
|
||||
data = {
|
||||
inputs: inputs,
|
||||
query: query,
|
||||
response_mode: response_mode,
|
||||
user: user
|
||||
}
|
||||
return _send_request("POST", "/completion-messages", data, nil, response_mode == "streaming")
|
||||
end
|
||||
end
|
||||
|
||||
class ChatClient < DifyClient
|
||||
def create_chat_message(inputs, query, user, response_mode = "blocking", conversation_id = nil)
|
||||
data = {
|
||||
inputs: inputs,
|
||||
query: query,
|
||||
user: user,
|
||||
response_mode: response_mode
|
||||
}
|
||||
data[:conversation_id] = conversation_id if conversation_id
|
||||
def create_chat_message(inputs, query, user, response_mode = "blocking", conversation_id = nil)
|
||||
data = {
|
||||
inputs: inputs,
|
||||
query: query,
|
||||
user: user,
|
||||
response_mode: response_mode
|
||||
}
|
||||
data[:conversation_id] = conversation_id if conversation_id
|
||||
|
||||
return _send_request("POST", "/chat-messages", data, nil, response_mode == "streaming")
|
||||
end
|
||||
return _send_request("POST", "/chat-messages", data, nil, response_mode == "streaming")
|
||||
end
|
||||
|
||||
def get_conversation_messages(user, conversation_id = nil, first_id = nil, limit = nil)
|
||||
params = {user: user}
|
||||
params[:conversation_id] = conversation_id if conversation_id
|
||||
params[:first_id] = first_id if first_id
|
||||
params[:limit] = limit if limit
|
||||
def get_conversation_messages(user, conversation_id = nil, first_id = nil, limit = nil)
|
||||
params = { user: user }
|
||||
params[:conversation_id] = conversation_id if conversation_id
|
||||
params[:first_id] = first_id if first_id
|
||||
params[:limit] = limit if limit
|
||||
|
||||
return _send_request("GET", "/messages", nil, params)
|
||||
end
|
||||
return _send_request("GET", "/messages", nil, params)
|
||||
end
|
||||
|
||||
def get_conversations(user, last_id = nil, limit = nil, pinned = nil)
|
||||
params = {user: user, last_id: last_id, limit: limit, pinned: pinned}
|
||||
return _send_request("GET", "/conversations", nil, params)
|
||||
end
|
||||
def get_conversations(user, last_id = nil, limit = nil, pinned = nil)
|
||||
params = { user: user, last_id: last_id, limit: limit, pinned: pinned }
|
||||
return _send_request("GET", "/conversations", nil, params)
|
||||
end
|
||||
|
||||
def rename_conversation(conversation_id, name, user)
|
||||
data = {name: name, user: user}
|
||||
return _send_request("POST", "/conversations/#{conversation_id}/name", data)
|
||||
end
|
||||
def rename_conversation(conversation_id, name, user)
|
||||
data = { name: name, user: user }
|
||||
return _send_request("POST", "/conversations/#{conversation_id}/name", data)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
+13
-13
@@ -21,22 +21,22 @@ class DifyClientTest < Minitest::Test
|
||||
user = 'USER_ID'
|
||||
expected_response = {}
|
||||
|
||||
stub_request(:get, "https://api.dify.ai/v1/parameters").
|
||||
with(
|
||||
body: {"user"=>"USER_ID"},
|
||||
headers: {
|
||||
'Accept'=>'*/*',
|
||||
'Accept-Encoding'=>'gzip;q=1.0,deflate;q=0.6,identity;q=0.3',
|
||||
'Authorization'=>'Bearer YOUR_API_KEY',
|
||||
'Content-Type'=>'application/x-www-form-urlencoded',
|
||||
'Responsetype'=>'json',
|
||||
'User-Agent'=>'Ruby'
|
||||
}).
|
||||
to_return(status: 200, body: expected_response.to_json, headers: {})
|
||||
stub_request(:get, "https://api.dify.ai/v1/parameters")
|
||||
.with(
|
||||
body: { "user" => "USER_ID" },
|
||||
headers: {
|
||||
'Accept' => '*/*',
|
||||
'Accept-Encoding' => 'gzip;q=1.0,deflate;q=0.6,identity;q=0.3',
|
||||
'Authorization' => 'Bearer YOUR_API_KEY',
|
||||
'Content-Type' => 'application/x-www-form-urlencoded',
|
||||
'Responsetype' => 'json',
|
||||
'User-Agent' => 'Ruby'
|
||||
}
|
||||
)
|
||||
.to_return(status: 200, body: expected_response.to_json, headers: {})
|
||||
|
||||
response = @client.get_application_parameters(user)
|
||||
|
||||
assert_equal expected_response, response
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user