Content Import
In order to take advantage of Rustici Generator’s core features, the application needs to import learning content. Importing learning content involves accessing, parsing, and storing information about the content you want to explore.
Due to the time involved in accessing and parsing the text in a given piece of content, content imports are handled as jobs. This allows the application to continue working on other activities while the content import is happening in the background. There are a number of API endpoints that are used when importing content, each with their own required information. However, all content import requests accept the following properties:
| Field | Type | Default | Description |
|---|---|---|---|
| content_id | str | The identifier you want to give the piece of content in Generator. This is used to uniquely identify the content (within its tenant). | |
| is_active | bool | True | Specifies whether or not the version of the course being uploaded should be considered ‘active’. Search can be filtered to consider only active versions. No more than one version of a course may be active at once. If set to true, then currently the current active version will be made inactive. |
| may_create_new_version | bool | True | Determines how the application should react to duplicate content IDs. When true, the course being imported will be considered a new version of the existing course. When false, attempts to import a course with a duplicate content_id will be rejected. |
| field_generation | ContentImportFieldGenerationRequest (optional) | None | Definitions for any field generation tasks that should be run as part of the content import process. The fields_to_generate property defines a list of metadata fields to be generated as part of the import process, and the parameters property offers customization for how Generator executes the field generation tasks. |
| object_store_text_path_override | str (optional) | None | If the IMPORT__TEXT_OBJECT_STORE config is enabled, this property allows you to override the default path that the text will be saved to. If not provided, the default path pattern will be used. |
Properties of ContentImportFieldGenerationRequest:
| Field | Type | Description |
|---|---|---|
| fields_to_generate | list[GeneratedFieldApiType] | The list of metadata fields to be generated. |
| parameters | GenerationParams | The parameters for the field generation job. |
Properties of GenerationParams:
| Field | Type | Description |
|---|---|---|
| count | int (optional) | Number of items to generate |
| model | SupportedGenerationModel (optional) | The model to use for the field generation job. |
| output_language_code | str (optional) | The language-country-variant code for the generated field text |
Values of GeneratedFieldApiType:
| Value |
|---|
| TITLE |
| SUMMARY |
| BLURB |
| PLUG |
| SKILLS |
| KEYWORDS |
| QUESTIONS |
Values of SupportedGenerationModel:
| Value |
|---|
| CLAUDE_4_5_HAIKU |
| CLAUDE_3_5_HAIKU |
| CLAUDE_3_HAIKU |
No matter what type of learning content you wish to import or from where Generator is importing that content, these properties must be defined within the import request.
Content Versioning
Generator supports content versioning, and many of Generator’s API endpoints will require specifying both the content_id and version number when interacting with content resources. Content versioning can be helpful if your learning content has gone through revisions or had minor changes. If you want to import a new version of an existing course, start a new import job with an identical content_id property and may_create_new_version set to True.
You can designate one of the course versions as the active version. When performing searches through your content library, you can filter results to only include results from active content versions.
If your learning content has gone through major changes, we advise against versioning an existing course. Instead, we recommend importing a new course. You may consider deleting your outdated content.
Accessing Learning Content
Rustici Generator wants the content import process to be as simple as possible. To that end, effort has been taken to enable Rustici Generator to be able to access content from a variety of places. See below for a list that describes from where Rustici Generator can access your learning content:
- S3
- Learning content hosted on an AWS S3 bucket can be imported via the
api/v1/jobs/content/s3endpoint. - Import request requires additional information about the bucket’s location and access controls.
- If you are hosting Generator in AWS (see the self-hosting section), then you can manage access to your S3 bucket(s) using IAM roles. When specifying your S3 location details, set the
access_key_id,secret_access_key, andsession_tokenproperties to an empty string. This will cause Generator to use the default credential provider chain, pick up the attached IAM role, and use that to authenticate its access to the specified bucket.
- If you are hosting Generator in AWS (see the self-hosting section), then you can manage access to your S3 bucket(s) using IAM roles. When specifying your S3 location details, set the
- When importing packaged elearning content from S3, you can provide Generator with either the path to a ZIP file or the prefix of the unzipped package in your S3 bucket
- Learning content hosted on an AWS S3 bucket can be imported via the
- File URL
- Learning content that is hosted on a server and is reachable via a URL link can be imported via the
api/v1/jobs/content/file_urlendpoint. - Import request requires the
urllink and any URL auth headers that are necessary to reach the file.
- Learning content that is hosted on a server and is reachable via a URL link can be imported via the
- Web
- Learning content reflected on a webpage can be imported via the
api/v1/jobs/content/webendpoint. - Import request requires the
urladdress of the webpage as well as information about how to handle any URL links on the page.
- Learning content reflected on a webpage can be imported via the
- SFTP
- Learning content can be imported via SFTP via the
api/v1/jobs/content/sftpendpoint. - Import request requires URL information about the location to be imported.
- Learning content can be imported via SFTP via the
- Text
- Credentials that already have the text of their learning content are able to import it directly into Generator via the
api/v1/jobs/content/textendpoint. - As part of the request, users are responsible for defining the location of each chunk of text that is imported
- Credentials that already have the text of their learning content are able to import it directly into Generator via the
Supported Content Types
Rustici Generator support learning content of various types.
- MP4
- MP3
- VTT
- Web pages
- Raw text
- Packaged Content authored by:
- Articulate Storyline
- Articulate Rise 360
- Adobe Captivate
- dominKnow
- Gomo
- Intellum Evolve
- Easygenerator
- Letter AI
If it is the case where your packaged content was authored by an organization not listed above, Rustici Generator will still attempt to import and parse your content. Generator has a process to import and parse packaged learning content that isn’t covered by one of its “author specific” handling. If the quality of Generator’s import and parsing of the learning content isn’t satisfactory, please reach out to our Delight Team and let us know more about your learning content. We are always looking to expand Rustici Generator’s content support.
Content Imports via other Rustici products
It is possible to automate imports when learning content is imported into an instance of Rustici Engine. This requires setting up an integration with the external application itself. For more information about that workflow and the API endpoints involved in that integration, visit our Integrations documentation pages