class Vellum::Client

def execute_prompt(inputs:, prompt_deployment_id: nil, prompt_deployment_name: nil, release_tag: nil,

Returns:
  • (ExecutePromptResponse) -

Parameters:
  • request_options (RequestOptions) --
  • metadata (Hash{String => String}) --
  • expand_raw (Array) -- Returns the raw API response data sent from the model host. Combined with `raw_overrides`, it can be used to access new features from models.
  • raw_overrides (Hash) -- Request of type RawPromptExecutionOverridesRequest, as a Hash
  • expand_meta (Hash) -- The name of the Prompt Deployment. Must provide either this or prompt_deployment_id.Request of type PromptDeploymentExpandMetaRequestRequest, as a Hash
  • external_id (String) -- "Optionally include a unique identifier for tracking purposes. Must be unique for a given prompt deployment.
  • release_tag (String) -- Optionally specify a release tag if you want to pin to a specific release of the Prompt Deployment
  • prompt_deployment_name (String) -- The name of the Prompt Deployment. Must provide either this or prompt_deployment_id.
  • prompt_deployment_id (String) -- The ID of the Prompt Deployment. Must provide either this or prompt_deployment_name.
  • inputs (Array) -- The list of inputs defined in the Prompt's deployment with their corresponding values.Request of type Array, as a Hash
def execute_prompt(inputs:, prompt_deployment_id: nil, prompt_deployment_name: nil, release_tag: nil,
                   external_id: nil, expand_meta: nil, raw_overrides: nil, expand_raw: nil, metadata: nil, request_options: nil)
  response = @request_client.conn.post do |req|
    req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
    req.headers["X_API_KEY"] = request_options.api_key unless request_options&.api_key.nil?
    req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
    req.body = {
      **(request_options&.additional_body_parameters || {}),
      inputs: inputs,
      prompt_deployment_id: prompt_deployment_id,
      prompt_deployment_name: prompt_deployment_name,
      release_tag: release_tag,
      external_id: external_id,
      expand_meta: expand_meta,
      raw_overrides: raw_overrides,
      expand_raw: expand_raw,
      metadata: metadata
    }.compact
    req.url "#{@request_client.default_environment[:Predict]}/v1/execute-prompt"
  end
  ExecutePromptResponse.from_json(json_object: response.body)
end

def execute_workflow(inputs:, workflow_deployment_id: nil, workflow_deployment_name: nil, release_tag: nil,

Returns:
  • (ExecuteWorkflowResponse) -

Parameters:
  • request_options (RequestOptions) --
  • external_id (String) -- Optionally include a unique identifier for tracking purposes. Must be unique for a given workflow deployment.
  • release_tag (String) -- Optionally specify a release tag if you want to pin to a specific release of the Workflow Deployment
  • workflow_deployment_name (String) -- The name of the Workflow Deployment. Must provide either this or workflow_deployment_id.
  • workflow_deployment_id (String) -- The ID of the Workflow Deployment. Must provide either this or workflow_deployment_name.
  • inputs (Array) -- The list of inputs defined in the Workflow's Deployment with their corresponding values.Request of type Array, as a Hash
def execute_workflow(inputs:, workflow_deployment_id: nil, workflow_deployment_name: nil, release_tag: nil,
                     external_id: nil, request_options: nil)
  response = @request_client.conn.post do |req|
    req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
    req.headers["X_API_KEY"] = request_options.api_key unless request_options&.api_key.nil?
    req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
    req.body = {
      **(request_options&.additional_body_parameters || {}),
      inputs: inputs,
      workflow_deployment_id: workflow_deployment_id,
      workflow_deployment_name: workflow_deployment_name,
      release_tag: release_tag,
      external_id: external_id
    }.compact
    req.url "#{@request_client.default_environment[:Predict]}/v1/execute-workflow"
  end
  ExecuteWorkflowResponse.from_json(json_object: response.body)
end

def generate(requests:, deployment_id: nil, deployment_name: nil, options: nil, request_options: nil)

Returns:
  • (GenerateResponse) -

Parameters:
  • request_options (RequestOptions) --
  • options (Hash) -- Additional configuration that can be used to control what's included in the response.Request of type GenerateOptionsRequest, as a Hash
  • requests (Array) -- The generation request to make. Bulk requests are no longer supported, this field must be an array of length 1.Request of type Array, as a Hash
  • deployment_name (String) -- The name of the deployment. Must provide either this or deployment_id.
  • deployment_id (String) -- The ID of the deployment. Must provide either this or deployment_name.
def generate(requests:, deployment_id: nil, deployment_name: nil, options: nil, request_options: nil)
  response = @request_client.conn.post do |req|
    req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
    req.headers["X_API_KEY"] = request_options.api_key unless request_options&.api_key.nil?
    req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
    req.body = {
      **(request_options&.additional_body_parameters || {}),
      deployment_id: deployment_id,
      deployment_name: deployment_name,
      requests: requests,
      options: options
    }.compact
    req.url "#{@request_client.default_environment[:Predict]}/v1/generate"
  end
  GenerateResponse.from_json(json_object: response.body)
end

def initialize(api_key:, environment: Environment::PRODUCTION, max_retries: nil, timeout_in_seconds: nil)

Returns:
  • (Client) -

Parameters:
  • api_key (String) --
  • timeout_in_seconds (Long) --
  • max_retries (Long) -- The number of times to retry a failed request, defaults to 2.
  • environment (Environment) --
def initialize(api_key:, environment: Environment::PRODUCTION, max_retries: nil, timeout_in_seconds: nil)
  @request_client = RequestClient.new(environment: environment, max_retries: max_retries,
                                      timeout_in_seconds: timeout_in_seconds, api_key: api_key)
  @deployments = DeploymentsClient.new(request_client: @request_client)
  @document_indexes = DocumentIndexesClient.new(request_client: @request_client)
  @documents = DocumentsClient.new(request_client: @request_client)
  @folder_entities = FolderEntitiesClient.new(request_client: @request_client)
  @model_versions = ModelVersionsClient.new(request_client: @request_client)
  @registered_prompts = RegisteredPromptsClient.new(request_client: @request_client)
  @sandboxes = SandboxesClient.new(request_client: @request_client)
  @test_suite_runs = TestSuiteRunsClient.new(request_client: @request_client)
  @test_suites = TestSuitesClient.new(request_client: @request_client)
  @workflow_deployments = WorkflowDeploymentsClient.new(request_client: @request_client)
end

def search(query:, index_id: nil, index_name: nil, options: nil, request_options: nil)

Returns:
  • (SearchResponse) -

Parameters:
  • request_options (RequestOptions) --
  • options (Hash) -- Configuration options for the search.Request of type SearchRequestOptionsRequest, as a Hash
  • query (String) -- The query to search for.
  • index_name (String) -- The name of the index to search against. Must provide either this or index_id.
  • index_id (String) -- The ID of the index to search against. Must provide either this or index_name.
def search(query:, index_id: nil, index_name: nil, options: nil, request_options: nil)
  response = @request_client.conn.post do |req|
    req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
    req.headers["X_API_KEY"] = request_options.api_key unless request_options&.api_key.nil?
    req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
    req.body = {
      **(request_options&.additional_body_parameters || {}),
      index_id: index_id,
      index_name: index_name,
      query: query,
      options: options
    }.compact
    req.url "#{@request_client.default_environment[:Predict]}/v1/search"
  end
  SearchResponse.from_json(json_object: response.body)
end

def submit_completion_actuals(actuals:, deployment_id: nil, deployment_name: nil, request_options: nil)

Returns:
  • (Void) -

Parameters:
  • request_options (RequestOptions) --
  • actuals (Array) -- Feedback regarding the quality of previously generated completionsRequest of type Array, as a Hash
  • deployment_name (String) -- The name of the deployment. Must provide either this or deployment_id.
  • deployment_id (String) -- The ID of the deployment. Must provide either this or deployment_name.
def submit_completion_actuals(actuals:, deployment_id: nil, deployment_name: nil, request_options: nil)
  @request_client.conn.post do |req|
    req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
    req.headers["X_API_KEY"] = request_options.api_key unless request_options&.api_key.nil?
    req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
    req.body = {
      **(request_options&.additional_body_parameters || {}),
      deployment_id: deployment_id,
      deployment_name: deployment_name,
      actuals: actuals
    }.compact
    req.url "#{@request_client.default_environment[:Predict]}/v1/submit-completion-actuals"
  end
end

def submit_workflow_execution_actuals(actuals:, execution_id: nil, external_id: nil, request_options: nil)

Returns:
  • (Void) -

Parameters:
  • request_options (RequestOptions) --
  • external_id (String) -- The external ID that was originally provided by when executing the workflow, if applicable, that you'd now like to submit actuals for. Must provide either this or execution_id.
  • execution_id (String) -- The Vellum-generated ID of a previously executed workflow. Must provide either this or external_id.
  • actuals (Array) -- Feedback regarding the quality of an output on a previously executed workflow.Request of type Array, as a Hash
def submit_workflow_execution_actuals(actuals:, execution_id: nil, external_id: nil, request_options: nil)
  @request_client.conn.post do |req|
    req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
    req.headers["X_API_KEY"] = request_options.api_key unless request_options&.api_key.nil?
    req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
    req.body = {
      **(request_options&.additional_body_parameters || {}),
      actuals: actuals,
      execution_id: execution_id,
      external_id: external_id
    }.compact
    req.url "#{@request_client.default_environment[:Predict]}/v1/submit-workflow-execution-actuals"
  end
end