Bulk Use Case Upload

Upload Use Cases in bulk via JSON file.

Bulk Use Case Upload

Admins can now upload AI Use Cases to the AI Registry in bulk through the UI itself, allowing them to manage large inventories  of AI use cases quickly and effectively. Watch a demo of this feature here

This feature is available for both SaaS and self-hosted customers. 

This Feature:

  • Allows Admins  to upload multiple AI use cases at once
  • Populates the AI Registry with Use Cases, associated OMB Questionnaires, and submitted answers, and custom field values (if they exist)

How to Upload Use Cases in Bulk

  1. Prepare Your Data
    • Gather your list of AI use cases, their metadata, and associated questions/answers
    • Copy the JSON schema below or request it from our Customer Success team
    • Transform your use case data to fit the provided schema. (You may want to work with our Customer Success team for this step)
  2. Upload Your File
    • Click “Upload” in the upper right corner of the AI Registry
    • Select your prepared JSON file containing the use case data
    • Confirm the upload
  3. Review and Confirm
    • If the upload is successful, you'll see a modal displaying the number of new use cases created
      1. Optionally download a list of the successful use cases to check your work
  4. Verify Your Upload
    • Once the upload is complete, navigate through your AI Registry to ensure all use cases have been added correctly
    • Check that metadata and questionnaire responses are accurately populated

 

Things to note

  1. Use Case Owner: All use cases uploaded will have a default owner of the admin who is uploading them. Once use cases are uploaded into the platform, the Owner can be changed as necessary via the UI or via API endpoint. 
  2. Automation: Right now, this feature does not support automation on use cases uploaded in bulk.
  3. Unique Use Case Names: Ensure all use case names in your upload file are unique. Duplicate names will cause upload failures for those specific use cases.
  4. File Format: Only JSON format is accepted. Uploading files in any other format will cause the entire upload to fail.
  5. Use Case Limits: Be aware of your tenant's allotted use case count. If your tenant is allowed 100 use cases, you have 90 use cases already in your AI Registry and try to upload another 50 use cases, 10 of those 50 will succeed and 40 will fail. 
  6. Partial Uploads: Whenever possible,  
  7. Questionnaire IDs: Avoid duplicate questionnaire IDs within your upload file. Duplicates will cause failures for the associated use cases.
  8. Required Fields: While most fields are optional, the "Name" field for each use case is required.
  9. Partial Uploads: In case of errors, some use cases may upload successfully while others fail. Always check the error messages and your AI Registry after an upload.
  10. Notifications: The Admin listed as owner on the ingested Use Cases will receive email and in app notifications once use cases are registered successfully. 

Best Practices

  1. Start with a small batch of use cases to test the upload process before attempting a large-scale upload.
  2. Double-check your JSON file for formatting errors before uploading.
  3. Keep a backup of your original data in case you need to reference it or make corrections.
  4. Work closely with our Customer Success team, especially for your first few uploads, to ensure smooth data transformation and upload.

This Feature Does Not:

  • Import data outside of predefined schemas
  • Automatically deduplicate use cases
  • Integrate with review processes for evidence or use cases
  • Upload vendors, models, or policy packs
  • Allow selection of questionnaires (only OMB Questionnaire is supported)

By following this guide, you should be able to efficiently bulk upload your AI use cases to the Credo AI Platform. If you encounter any issues or have questions, please don't hesitate to contact our support team.

JSON Schema 

{

    "$schema": "http://json-schema.org/draft-07/schema#",

    "$id": "https://credo.ai/use_cases.schema_1-0-0.json",

    "title": "Use cases",

    "description": "CredoAI use cased schema, version 1.0, the initial version",

    "oneOf": [

        {

            "type": "array",

            "items": {

                "$ref": "#/definitions/use_case"

            }

        },

        {

            "$ref": "#/definitions/use_case"

        }

    ],

    "definitions": {

        "use_case": {

            "type": "object",

            "properties": {

                "id": {

                    "type": "string",

                    "description": "The unique identifier of the use case"

                },

                "description": {

                    "type": [

                        "string",

                        "null"

                    ],

                    "description": "The description of the use case"

                },

                "name": {

                    "type": "string",

                    "description": "The name of the use case"

                },

                "icon": {

                    "type": [

                        "string",

                        "null"

                    ],

                    "description": "The icon of the use case"

                },

                "ai_type": {

                    "type": "string",

                    "description": "The type of AI used in the use case"

                },

                "governance_status": {

                    "type": "integer",

                    "description": "The governance status of the use case"

                },

                "domains": {

                    "type": "array",

                    "items": {

                        "type": "string"

                    },

                    "description": "The domains of the use case"

                },

                "industries": {

                    "type": "array",

                    "items": {

                        "type": "string"

                    },

                    "description": "The industries of the use case"

                },

                "regions": {

                    "type": "array",

                    "items": {

                        "type": "string"

                    },

                    "description": "The regions of the use case"

                },

                "risk_category_level": {

                    "type": [

                        "integer",

                        "null"

                    ],

                    "description": "The risk category level of the use case"

                },

                "custom_fields": {

                    "type": "array",

                    "items": {

                        "$ref": "#/definitions/custom_field"

                    },

                    "description": "The use case custom fields"

                },

                "questionnaires": {

                    "type": "array",

                    "items": {

                        "$ref": "#/definitions/questionnaire"

                    },

                    "description": "The questionnaires of the use case"

                },

                "inserted_at": {

                    "type": "string",

                    "format": "date-time",

                    "description": "The date and time when the use case was created"

                },

                "updated_at": {

                    "type": "string",

                    "format": "date-time",

                    "description": "The date and time when the use case was last updated"

                }

            },

            "additionalProperties": false

        },

        "custom_field": {

            "type": "object",

            "properties": {

                "custom_field_id": {

                    "type": "string",

                    "description": "The unique UUID of the custom field"

                },

                "type": {

                    "type": "string",

                    "description": "The type of the custom field"

                },

                "name": {

                    "type": "string",

                    "description": "The name of the custom field"

                },

                "value": {

                    "type": [

                        "boolean",

                        "number",

                        "string",

                        "null"

                    ],

                    "description": "The value of the custom field"

                }

            },

            "additionalProperties": false

        },

        "questionnaire": {

            "type": "object",

            "properties": {

                "name": {

                    "type": "string",

                    "description": "The name of the questionnaire"

                },

                "key": {

                    "type": "string",

                    "description": "The unique key of the questionnaire"

                },

                "version": {

                    "type": "number",

                    "description": "The version of the questionnaire"

                },

                "sections": {

                    "type": "array",

                    "items": {

                        "$ref": "#/definitions/section"

                    },

                    "description": "The sections of the questionnaire"

                }

            },

            "additionalProperties": false

        },

        "section": {

            "type": "object",

            "properties": {

                "id": {

                    "type": "string",

                    "description": "The unique UUID of the section"

                },

                "title": {

                    "type": "string",

                    "description": "The title of the section"

                },

                "questions": {

                    "type": "array",

                    "items": {

                        "$ref": "#/definitions/question"

                    },

                    "description": "The questions of the section"

                }

            },

            "additionalProperties": false

        },

        "question": {

            "type": "object",

            "properties": {

                "id": {

                    "type": "string",

                    "description": "The unique UUID of the question"

                },

                "answer": {

                    "type": [

                        "boolean",

                        "number",

                        "string",

                        "object",

                        "null"

                    ],

                    "description": "The answer of the question"

                }

            },

            "additionalProperties": false

        }

    }

}