|
| 1 | +import { |
| 2 | + type AiInformationProps, |
| 3 | + type DataPermissionLevelsProps, |
| 4 | + type NutritionFactsProps, |
| 5 | +} from "@instructure/ui-instructure"; |
| 6 | +import { type AiInfoFeatureProps } from "../../types"; |
| 7 | +const FEATURE_NAME = "Course Accessibility Checker: Image alt text generation"; |
| 8 | +const UID = "canvasa11ycheckeralttextgenerator"; |
| 9 | +const DATA_PERMISSION_LEVELS: DataPermissionLevelsProps["data"] = [ |
| 10 | + { |
| 11 | + description: |
| 12 | + "We leverage anonymized aggregate data for detailed analytics to inform model development and product improvements. No AI models are used at this level.", |
| 13 | + highlighted: false, |
| 14 | + level: "LEVEL 1", |
| 15 | + title: "Descriptive Analytics and Research", |
| 16 | + }, |
| 17 | + { |
| 18 | + description: |
| 19 | + "We utilize off-the-shelf AI models and customer data as input to provide AI-powered features. No data is used for training this model.", |
| 20 | + highlighted: true, |
| 21 | + level: "LEVEL 2", |
| 22 | + title: "AI-Powered Features Without Data Training", |
| 23 | + }, |
| 24 | + { |
| 25 | + description: |
| 26 | + "We customize AI solutions tailored to the unique needs and resources of educational institutions. We use customer data to fine-tune data and train AI models that only serve your institution. Your institution's data only serves them through trained models.", |
| 27 | + highlighted: false, |
| 28 | + level: "LEVEL 3", |
| 29 | + title: "AI Customization for Individual Institutions", |
| 30 | + }, |
| 31 | + { |
| 32 | + description: |
| 33 | + "We established a consortium with educational institutions that shares anonymized data, best practices, and research findings. This fosters collaboration and accelerates the responsible development of AI in education. Specialized AI models are created for better outcomes in education, cost savings, and more.", |
| 34 | + highlighted: false, |
| 35 | + level: "LEVEL 4", |
| 36 | + title: "Collaborative AI Consortium", |
| 37 | + }, |
| 38 | +]; |
| 39 | +const NUTRITION_FACTS_DATA: NutritionFactsProps["data"] = [ |
| 40 | + { |
| 41 | + blockTitle: "Model & Data", |
| 42 | + segmentData: [ |
| 43 | + { |
| 44 | + description: "The foundational AI on which further training and customizations are built.", |
| 45 | + segmentTitle: "Base Model", |
| 46 | + value: "Haiku 3", |
| 47 | + valueDescription: |
| 48 | + "Anthropic Claude models are provided via Instructure's in-house AI Platform.", |
| 49 | + }, |
| 50 | + { |
| 51 | + description: |
| 52 | + "Indicates the AI model has been given customer data in order to improve its results.", |
| 53 | + segmentTitle: "Trained with User Data", |
| 54 | + value: "No", |
| 55 | + }, |
| 56 | + { |
| 57 | + description: "Indicates which training or operational content was given to the model.", |
| 58 | + segmentTitle: "Data Shared with Model", |
| 59 | + value: "Images uploaded to Canvas via RCX", |
| 60 | + }, |
| 61 | + ], |
| 62 | + }, |
| 63 | + { |
| 64 | + blockTitle: "Privacy & Compliance", |
| 65 | + segmentData: [ |
| 66 | + { |
| 67 | + description: "How long the model stores customer data.", |
| 68 | + segmentTitle: "Data Retention", |
| 69 | + value: "Data is not stored or reused by the model.", |
| 70 | + }, |
| 71 | + { |
| 72 | + description: "Recording the AI's performance for auditing, analysis, and improvement.", |
| 73 | + segmentTitle: "Data Logging", |
| 74 | + value: "Logs data", |
| 75 | + valueDescription: "Usage data is logged to improve the product.", |
| 76 | + }, |
| 77 | + { |
| 78 | + description: "The locations where the AI model is officially available and supported.", |
| 79 | + segmentTitle: "Regions Supported", |
| 80 | + value: "Global", |
| 81 | + valueDescription: "", |
| 82 | + }, |
| 83 | + { |
| 84 | + description: "Sensitive data that can be used to identify an individual.", |
| 85 | + segmentTitle: "PII", |
| 86 | + value: "Not Exposed", |
| 87 | + valueDescription: |
| 88 | + "PII in source material may be sent to the model if included in the analyzed image, but no PII is intentionally sent to the model.", |
| 89 | + }, |
| 90 | + ], |
| 91 | + }, |
| 92 | + { |
| 93 | + blockTitle: "Outputs", |
| 94 | + segmentData: [ |
| 95 | + { |
| 96 | + description: "The ability to turn the AI on or off within the product.", |
| 97 | + segmentTitle: "AI Settings Control", |
| 98 | + value: "Yes", |
| 99 | + }, |
| 100 | + { |
| 101 | + description: "Indicates if a human is involved in the AI's process or output.", |
| 102 | + segmentTitle: "Human in the Loop", |
| 103 | + value: "Yes", |
| 104 | + valueDescription: |
| 105 | + "Users can edit the generated alt text, and they have the option to save it or not.", |
| 106 | + }, |
| 107 | + { |
| 108 | + description: "Preventative safety mechanisms or limitations built into the AI model.", |
| 109 | + segmentTitle: "Guardrails", |
| 110 | + value: "", |
| 111 | + }, |
| 112 | + { |
| 113 | + description: "Any risks the model may pose to the user.", |
| 114 | + segmentTitle: "Expected Risks", |
| 115 | + value: |
| 116 | + "While the model can fairly accurately describe what's on a picture, it might not always convey what the picture is meant to convey in the given context. ", |
| 117 | + }, |
| 118 | + { |
| 119 | + description: "The specific results the AI model is meant to achieve.", |
| 120 | + segmentTitle: "Intended Outcomes", |
| 121 | + value: "Reduce time spent on writing alt text. ", |
| 122 | + }, |
| 123 | + ], |
| 124 | + }, |
| 125 | +]; |
| 126 | +const nutritionFacts: NutritionFactsProps = { |
| 127 | + closeButtonText: "Close", |
| 128 | + closeIconButtonScreenReaderLabel: "Close", |
| 129 | + data: NUTRITION_FACTS_DATA, |
| 130 | + featureName: FEATURE_NAME, |
| 131 | + modalLabel: "This is a modal for AI facts", |
| 132 | + title: "AI Nutrition Facts", |
| 133 | + triggerText: "Nutrition Facts", |
| 134 | +}; |
| 135 | +const dataPermissionLevels: DataPermissionLevelsProps = { |
| 136 | + closeButtonText: "Close", |
| 137 | + closeIconButtonScreenReaderLabel: "Close dialog", |
| 138 | + currentFeature: FEATURE_NAME, |
| 139 | + currentFeatureText: "Current Feature:", |
| 140 | + data: DATA_PERMISSION_LEVELS, |
| 141 | + modalLabel: "Data Permission Levels modal", |
| 142 | + title: "Data Permission Levels", |
| 143 | + triggerText: "Data Permission Levels", |
| 144 | +}; |
| 145 | +const aiInformation: AiInformationProps = { |
| 146 | + data: [ |
| 147 | + { |
| 148 | + description: |
| 149 | + "We utilize off-the-shelf AI models and customer data as input to provide AI-powered features. No data is used for training this model.", |
| 150 | + featureName: "Course Accessibility Checker: Image alt text generation", |
| 151 | + modelName: "Haiku 3", |
| 152 | + modelNameText: "Base Model", |
| 153 | + nutritionFactsModalTriggerText: "AI Nutrition Facts", |
| 154 | + permissionLevel: "LEVEL 2", |
| 155 | + permissionLevelsModalTriggerText: "Data Permission Levels", |
| 156 | + permissionLevelText: "Permission Level:", |
| 157 | + privacyNoticeText: "", |
| 158 | + privacyNoticeUrl: "", |
| 159 | + }, |
| 160 | + ], |
| 161 | + dataPermissionLevelsCloseButtonText: "Close", |
| 162 | + dataPermissionLevelsCloseIconButtonScreenReaderLabel: "Close dialog", |
| 163 | + dataPermissionLevelsCurrentFeature: "Course Accessibility Checker: Image alt text generation", |
| 164 | + dataPermissionLevelsCurrentFeatureText: "Current Feature:", |
| 165 | + dataPermissionLevelsData: DATA_PERMISSION_LEVELS, |
| 166 | + dataPermissionLevelsModalLabel: "Data Permission Levels modal", |
| 167 | + dataPermissionLevelsTitle: "Data Permission Levels", |
| 168 | + nutritionFactsCloseButtonText: "Close", |
| 169 | + nutritionFactsCloseIconButtonScreenReaderLabel: "Close", |
| 170 | + nutritionFactsData: NUTRITION_FACTS_DATA, |
| 171 | + nutritionFactsFeatureName: "Course Accessibility Checker: Image alt text generation", |
| 172 | + nutritionFactsModalLabel: "This is a modal for AI facts", |
| 173 | + nutritionFactsTitle: "AI Nutrition Facts", |
| 174 | + title: "Features", |
| 175 | + trigger: undefined, |
| 176 | +}; |
| 177 | +const canvasa11ycheckeralttextgenerator: AiInfoFeatureProps = { |
| 178 | + aiInformation, |
| 179 | + dataPermissionLevels, |
| 180 | + description: |
| 181 | + "A button that generates alt text for images that don't have alt text, or there was a problem identified with it (it's too long or it's just the filename.)", |
| 182 | + group: "Canvas", |
| 183 | + name: FEATURE_NAME, |
| 184 | + nutritionFacts, |
| 185 | + revision: "2026.02.25", |
| 186 | + uid: UID, |
| 187 | +}; |
| 188 | +export { canvasa11ycheckeralttextgenerator, nutritionFacts, dataPermissionLevels, aiInformation }; |
| 189 | +export default canvasa11ycheckeralttextgenerator; |
0 commit comments