Class: Vellum::WorkflowsClient

Inherits:
Object
  • Object
show all
Defined in:
lib/vellum_ai/workflows/client.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(request_client:) ⇒ Vellum::WorkflowsClient

Parameters:



23
24
25
# File 'lib/vellum_ai/workflows/client.rb', line 23

def initialize(request_client:)
  @request_client = request_client
end

Instance Attribute Details

#request_clientVellum::RequestClient (readonly)



18
19
20
# File 'lib/vellum_ai/workflows/client.rb', line 18

def request_client
  @request_client
end

Instance Method Details

#pull(id:, exclude_code: nil, exclude_display: nil, include_json: nil, include_sandbox: nil, release_tag: nil, strict: nil, version: nil, request_options: nil, &on_data) ⇒ Void

Returns:

  • (Void)


41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/vellum_ai/workflows/client.rb', line 41

def pull(id:, exclude_code: nil, exclude_display: nil, include_json: nil, include_sandbox: nil, release_tag: nil, strict: nil, version: nil, request_options: nil, &on_data)
  response = @request_client.conn.get do | req |
  unless request_options&.timeout_in_seconds.nil?
req.options.timeout = request_options.timeout_in_seconds
  end
  unless request_options&.api_key.nil?
req.headers["X-API-KEY"] = request_options.api_key
  end
  unless request_options&.api_version.nil?
req.headers["X-API-Version"] = request_options.api_version
  else
req.headers["X-API-Version"] = "2025-07-30"
  end
  req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
  req.options.on_data = on_data
  req.params = { **(request_options&.additional_query_parameters || {}), "exclude_code": exclude_code, "exclude_display": exclude_display, "include_json": include_json, "include_sandbox": include_sandbox, "release_tag": release_tag, "strict": strict, "version": version }.compact
  unless request_options.nil? || request_options&.additional_body_parameters.nil?
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
  end
  req.url "#{@request_client.get_url(environment: Default, request_options: request_options)}/v1/workflows/#{id}/pull"
end
end

#push(exec_config:, workflow_sandbox_id: nil, deployment_config: nil, artifact: nil, dataset: nil, dry_run: nil, strict: nil, request_options: nil) ⇒ Vellum::WorkflowPushResponse

Parameters:

  • exec_config (String)

    The execution configuration of the workflow.

  • workflow_sandbox_id (String) (defaults to: nil)
  • deployment_config (Hash) (defaults to: nil)

    Request of type Vellum::WorkflowPushDeploymentConfigRequest, as a Hash

    • :label (String)

    • :name (String)

    • :description (String)

    • :release_tags (Array<String>)

    • :release_description (String)

  • artifact (String, IO) (defaults to: nil)
  • dataset (Array<Hash>) (defaults to: nil)

    List of dataset rows with inputs for scenarios.Request of type Array<Vellum::DatasetRowPushRequest>, as a Hash

    • :label (String)

    • :inputs (Hash=> Object)

  • dry_run (Boolean) (defaults to: nil)
  • strict (Boolean) (defaults to: nil)
  • request_options (Vellum::RequestOptions) (defaults to: nil)

Returns:



116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
# File 'lib/vellum_ai/workflows/client.rb', line 116

def push(exec_config:, workflow_sandbox_id: nil, deployment_config: nil, artifact: nil, dataset: nil, dry_run: nil, strict: nil, request_options: nil)
  response = @request_client.conn.post do | req |
  unless request_options&.timeout_in_seconds.nil?
req.options.timeout = request_options.timeout_in_seconds
  end
  unless request_options&.api_key.nil?
req.headers["X-API-KEY"] = request_options.api_key
  end
  unless request_options&.api_version.nil?
req.headers["X-API-Version"] = request_options.api_version
  else
req.headers["X-API-Version"] = "2025-07-30"
  end
  req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
  unless request_options.nil? || request_options&.additional_query_parameters.nil?
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
  end
  req.body = { **(request_options&.additional_body_parameters || {}), exec_config: exec_config, workflow_sandbox_id: workflow_sandbox_id, deployment_config: deployment_config, artifact: unless artifact.nil?
  Vellum::FileUtilities.as_faraday_multipart(file_like: artifact)
end, dataset: dataset, dry_run: dry_run, strict: strict }.compact
  req.url "#{@request_client.get_url(environment: Default, request_options: request_options)}/v1/workflows/push"
end
  Vellum::WorkflowPushResponse.from_json(json_object: response.body)
end

#retrieve_state(span_id:, request_options: nil) ⇒ Object

api.workflows.retrieve_state(span_id: “span_id”)



76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
# File 'lib/vellum_ai/workflows/client.rb', line 76

def retrieve_state(span_id:, request_options: nil)
  response = @request_client.conn.get do | req |
  unless request_options&.timeout_in_seconds.nil?
req.options.timeout = request_options.timeout_in_seconds
  end
  unless request_options&.api_key.nil?
req.headers["X-API-KEY"] = request_options.api_key
  end
  unless request_options&.api_version.nil?
req.headers["X-API-Version"] = request_options.api_version
  else
req.headers["X-API-Version"] = "2025-07-30"
  end
  req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
  unless request_options.nil? || request_options&.additional_query_parameters.nil?
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
  end
  unless request_options.nil? || request_options&.additional_body_parameters.nil?
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
  end
  req.url "#{@request_client.get_url(environment: Predict, request_options: request_options)}/v1/workflows/#{span_id}/state"
end
  Vellum::WorkflowResolvedState.from_json(json_object: response.body)
end

#serialize_workflow_files(files:, request_options: nil) ⇒ Object

api.workflows.serialize_workflow_files(files: { “files”: “key”:“value” })



152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
# File 'lib/vellum_ai/workflows/client.rb', line 152

def serialize_workflow_files(files:, request_options: nil)
  response = @request_client.conn.post do | req |
  unless request_options&.timeout_in_seconds.nil?
req.options.timeout = request_options.timeout_in_seconds
  end
  unless request_options&.api_key.nil?
req.headers["X-API-KEY"] = request_options.api_key
  end
  unless request_options&.api_version.nil?
req.headers["X-API-Version"] = request_options.api_version
  else
req.headers["X-API-Version"] = "2025-07-30"
  end
  req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
  unless request_options.nil? || request_options&.additional_query_parameters.nil?
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
  end
  req.body = { **(request_options&.additional_body_parameters || {}), files: files }.compact
  req.url "#{@request_client.get_url(environment: Default, request_options: request_options)}/v1/workflows/serialize"
end
  parsed_json = JSON.parse(response.body)
  parsed_json
end