Version: Latest

Model Download API for CI Integration

Introduction

The Model Download API provides external access to retrieve download URLs for artifacts generated in Rasa Studio, facilitating CI/CD integration. Built with GraphQL, this API allows queries to request trained assistant models and associated input data in YAML format.

Requirements

Available APIs

Query: ModelDownloadUrls

Schema:

type Query {
modelDownloadUrls(input: ModelDownloadUrlsInput!): ModelDownloadUrlsOutput!
}
input ModelDownloadUrlsInput {
assistantId: ID!
assistantVersionName: ID
}
type ModelDownloadUrlsOutput {
modelFileUrl: String!
modelInputUrl: String!
}

Input: ModelDownloadUrlsInput

FieldDescription
assistantIdUnique identifier of the assistant.
assistantVersionNameOptional version of the trained assistant. Default is latest.

Output: ModelDownloadUrlsOutput

FieldDescription
modelFileUrlUrl to download the model file <assistant-version-name>.tar.gz.
modelInputUrlUrl to download the model input data in YAML format.

Usage

The query can be used to fetch the download URLs for the trained model and the input data in YAML format for a assistant.

Example curl Request

Request the Model Download API using e.g. curl:

curl -X POST https://<api-url>/api/graphql \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <access-token>" \
-d '{
"query": "query ModelDownloadUrls($input: ModelDownloadUrlsInput!) { modelDownloadUrls(input: $input) { modelFileUrl modelInputUrl } }",
"variables": {
"input": {
"assistantId": "<assistant-id>",
"assistantVersionName": "<assistant-version-name>"
}
}
}'

Example Response

The response will contain the download URLs for the trained model and the model input data.

{"data":
{"modelDownloadUrls":
{
"modelFileUrl":"https://<api-url>/api/v1/download/model-file/<assistant-version-name>",
"modelInputUrl":"https://<api-url>/api/v1/download/model-input/<assistant-version-name>"
}
}
}

Download model file

To download the model file, request the modelFileUrl with authorization header.

curl "https://<api-url>/api/v1/download/model-file/<assistant-version-name>" \
-H "Authorization: Bearer <access-token>" \
-O -J

The downloaded model file <assistant-version-name>.tar.gz can be used to deploy the trained model.

Download model input data

To download the model input YAML files, request the modelInputUrl with authorization header.

curl "https://<api-url>/api/v1/download/model-input/<assistant-version-name>" \
-H "Authorization: Bearer <access-token>" \
-O -J

The downloaded model input zipped directory <assistant-version-name>_model-input.tar.gz contains the model input data in YAML format:

  • data/flows.yaml
  • data/nlu.yaml
  • config.yaml
  • credentials.yaml
  • domain.yaml
  • endpoints.yaml