-
Notifications
You must be signed in to change notification settings - Fork 1
Packages/aiinfo/authoringassistance #175
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR adds two new AI authoring assistance features to the aiinfo package: "Item Authoring" (assessmentauthoringassistance) and "Question Authoring" (itemauthoringassistance). Both features provide AI-powered question/item generation based on course materials using the Anthropic Claude Haiku 3 model.
Key Changes:
- Added two new AI feature definitions with comprehensive nutrition facts, data permission levels, and AI information
- Updated package versions from 2.0.5 to 2.0.6
- Added exports and integrations across multiple files (index.ts, index.d.ts, index.cjs, index.mjs)
- Updated cache files with checksums and CSV data for the new features
Reviewed Changes
Copilot reviewed 9 out of 11 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| packages/aiinfo/node/components/assessmentauthoringassistance/index.ts | New component defining "Item Authoring" feature for Mastery group |
| packages/aiinfo/node/components/itemauthoringassistance/index.ts | New component defining "Question Authoring" feature for Canvas group |
| packages/aiinfo/node/index.ts | Added imports and exports for both new features |
| packages/aiinfo/src/index.d.ts | Added TypeScript declarations for both new features |
| packages/aiinfo/src/index.mjs | Added compiled ESM exports for both new features |
| packages/aiinfo/src/index.cjs | Added compiled CommonJS exports for both new features |
| packages/aiinfo/cache/cache.csv | Added CSV data entries for both features |
| packages/aiinfo/cache/checksum.json | Updated checksums including both new features |
| packages/aiinfo/Changelog.md | Documented addition of both features with detailed change information |
| packages/aiinfo/package.json | Version bump to 2.0.6 |
| apps/nutritionfacts/package.json | Version bump to 2.0.6 |
| smartSearch,2025.10.02,Search,Natural language search of course content for students and instructors.,Cohere Embed Multilingual,Cohere models are provided via Amazon Bedrock Foundation Models (FMs).,No,Course,Course content is indexed by the model and then stored in the Canvas database.,Data is not stored or reused by the model. Indexed course content is stored in the Canvas database.,Does not log data,,Global,,Not Exposed,"PII in course content may be indexed, but no PII is intentionally sent to the model.",Yes,Yes,Users are presented with a list of results related to their search query and can act or not act on them.,,Search results may be incorrectly sorted or may not be relevant to the search term.,"Students are able to quickly find answers to questions, and instructors are able to quickly navigate their courses.",Canvas,2 | ||
| askyourdata,2025.09.12,Ask Your Data,AI-powered query tool enables users to ask natural language questions and receive textual or visual responses with detailed explanations of the methodology.,Doowii (multiple),"Doowii is a third-party sub-processor for Intelligent Insights. Doowii's tools use OpenAI GPT-4o, GPT-3.5 Turbo, and Claude Sonnet 3.5",No,Other,"Doowii is trained on the Canvas LMS database schema, and receives no data from Canvas. The user's prompt and heuristics (such as summary statistics) are shared with the model to generate a response.",Data is retained through the life of your contract with Instructure.,Logs data,,Global,,Exposed,"Prompt, summary statistics.",Yes,Yes,Ask your data returns a methodology description along with a generated query. Users have the ability to edit the generated SQL directly.,"Questions are scoped to the domain only, highly ambiguous terms ask for clarification.",Incorrect interpretation of the question. Inaccurate SQL may be generated. Suggested questions or methodologies may not be relevant.,Provide accurate data retrieval and analysis through natural language prompting.,Intelligent Insights,2 | ||
| canvasDiscussionSummaries,2025.09.12,Summaries for Discussions,"Discussion summaries of key points, questions, and insights.",Haiku 3,Anthropic Claude models are provided via Amazon Bedrock Foundation Models (FMs).,No,Course,Discussion prompt and replies.,Data is not stored or reused by the model.,Logs data,Summaries are logged in the Canvas database for review and reuse.,Global,,Not Exposed,"Pii in discussion replies may be sent to the model, but no PII is intentionally sent to the model.",Yes,Yes,Instructors may regenerate summaries or fine-tune them with additional instructions.,,Summaries may not capture all desired information.,Summaries allow discussion topics to be used in large-format courses and other environments where discussions were previously infeasible.,Canvas,2 | ||
| itemAuthoringAssistance,2025.11.18,Question Authoring,"Question Authoring Assistance for Quizzes streamlines quiz creation by generating questions based on your course materials. |
Copilot
AI
Nov 18, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Inconsistent naming: The CSV uses "itemAuthoringAssistance" (camelCase) while the actual UID is "itemauthoringassistance" (lowercase). This inconsistency could cause lookup failures or confusion. Ensure CSV keys match the actual UIDs used in the codebase.
| itemAuthoringAssistance,2025.11.18,Question Authoring,"Question Authoring Assistance for Quizzes streamlines quiz creation by generating questions based on your course materials. | |
| itemauthoringassistance,2025.11.18,Question Authoring,"Question Authoring Assistance for Quizzes streamlines quiz creation by generating questions based on your course materials. |
| itemAuthoringAssistance,2025.11.18,Question Authoring,"Question Authoring Assistance for Quizzes streamlines quiz creation by generating questions based on your course materials. | ||
| ",Haiku 3,Anthropic Claude models are provided via Instructure's in-house AI Platform.,No,Course,"Source material provided by the user (e.g., Custom standards, course content, text input, file input) for question/item generation.",Data is not stored or reused by the model.,Logs data,Usage data is logged to improve the product.,Global,,Not Exposed,"PII in source material may be sent to the model if included by the user, but no PII is intentionally sent to the model.",Yes,Yes,"Instructors can review, edit, regenerate, or provide additional instructions to refine generated items.",,"Generated items may not perfectly capture all desired information, require refinement, or occasionally contain inaccuracies. | ||
| ",Improved instructor efficiency and productivity,Canvas,2 | ||
| assessmentAuthoringAssistance,2025.11.18,Item Authoring,"Item Authoring for Assessments streamlines assessment creation by generating questions based on your course materials. |
Copilot
AI
Nov 18, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Inconsistent naming: The CSV uses "assessmentAuthoringAssistance" (camelCase) while the actual UID is "assessmentauthoringassistance" (lowercase). This inconsistency could cause lookup failures or confusion. Ensure CSV keys match the actual UIDs used in the codebase.
| assessmentAuthoringAssistance,2025.11.18,Item Authoring,"Item Authoring for Assessments streamlines assessment creation by generating questions based on your course materials. | |
| assessmentauthoringassistance,2025.11.18,Item Authoring,"Item Authoring for Assessments streamlines assessment creation by generating questions based on your course materials. |
| import type { | ||
| AiInformationProps, | ||
| DataPermissionLevelsProps, | ||
| NutritionFactsProps, | ||
| } from "@instructure/ui-instructure"; | ||
| import type { AiInfoFeatureProps } from "../../types"; | ||
|
|
||
| const FEATURE_NAME = "Item Authoring"; | ||
| const UID = "assessmentauthoringassistance"; | ||
| const DATA_PERMISSION_LEVELS: DataPermissionLevelsProps["data"] = [ | ||
| { | ||
| description: | ||
| "We leverage anonymized aggregate data for detailed analytics to inform model development and product improvements. No AI models are used at this level.", | ||
| highlighted: false, | ||
| level: "LEVEL 1", | ||
| title: "Descriptive Analytics and Research", | ||
| }, | ||
| { | ||
| description: | ||
| "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.", | ||
| highlighted: true, | ||
| level: "LEVEL 2", | ||
| title: "AI-Powered Features Without Data Training", | ||
| }, | ||
| { | ||
| description: | ||
| "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.", | ||
| highlighted: false, | ||
| level: "LEVEL 3", | ||
| title: "AI Customization for Individual Institutions", | ||
| }, | ||
| { | ||
| description: | ||
| "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.", | ||
| highlighted: false, | ||
| level: "LEVEL 4", | ||
| title: "Collaborative AI Consortium", | ||
| }, | ||
| ]; | ||
| const NUTRITION_FACTS_DATA: NutritionFactsProps["data"] = [ | ||
| { | ||
| blockTitle: "Model & Data", | ||
| segmentData: [ | ||
| { | ||
| description: | ||
| "The foundational AI on which further training and customizations are built.", | ||
| segmentTitle: "Base Model", | ||
| value: "Haiku 3", | ||
| valueDescription: | ||
| "Anthropic Claude models are provided via Instructure's in-house AI Platform.", | ||
| }, | ||
| { | ||
| description: | ||
| "Indicates the AI model has been given customer data in order to improve its results.", | ||
| segmentTitle: "Trained with User Data", | ||
| value: "No", | ||
| }, | ||
| { | ||
| description: | ||
| "Indicates which training or operational content was given to the model.", | ||
| segmentTitle: "Data Shared with Model", | ||
| value: | ||
| "Source material provided by the user (e.g., Custom standards, course content, text input, file input) for question/item generation.", | ||
| }, | ||
| ], | ||
| }, | ||
| { | ||
| blockTitle: "Privacy & Compliance", | ||
| segmentData: [ | ||
| { | ||
| description: "How long the model stores customer data.", | ||
| segmentTitle: "Data Retention", | ||
| value: "Data is not stored or reused by the model.", | ||
| }, | ||
| { | ||
| description: | ||
| "Recording the AI's performance for auditing, analysis, and improvement.", | ||
| segmentTitle: "Data Logging", | ||
| value: "Logs data", | ||
| valueDescription: "Usage data is logged to improve the product.", | ||
| }, | ||
| { | ||
| description: | ||
| "The locations where the AI model is officially available and supported.", | ||
| segmentTitle: "Regions Supported", | ||
| value: "Global", | ||
| valueDescription: "", | ||
| }, | ||
| { | ||
| description: | ||
| "Sensitive data that can be used to identify an individual.", | ||
| segmentTitle: "PII", | ||
| value: "Not Exposed", | ||
| valueDescription: | ||
| "PII in source material may be sent to the model if included by the user, but no PII is intentionally sent to the model.", | ||
| }, | ||
| ], | ||
| }, | ||
| { | ||
| blockTitle: "Outputs", | ||
| segmentData: [ | ||
| { | ||
| description: "The ability to turn the AI on or off within the product.", | ||
| segmentTitle: "AI Settings Control", | ||
| value: "Yes", | ||
| }, | ||
| { | ||
| description: | ||
| "Indicates if a human is involved in the AI's process or output.", | ||
| segmentTitle: "Human in the Loop", | ||
| value: "Yes", | ||
| valueDescription: | ||
| "Instructors can review, edit, regenerate, or provide additional instructions to refine generated items.", | ||
| }, | ||
| { | ||
| description: | ||
| "Preventative safety mechanisms or limitations built into the AI model.", | ||
| segmentTitle: "Guardrails", | ||
| value: "", | ||
| }, | ||
| { | ||
| description: "Any risks the model may pose to the user.", | ||
| segmentTitle: "Expected Risks", | ||
| value: | ||
| "Generated items may not perfectly capture all desired information, require refinement, or occasionally contain inaccuracies.\n", | ||
| }, | ||
| { | ||
| description: "The specific results the AI model is meant to achieve.", | ||
| segmentTitle: "Intended Outcomes", | ||
| value: "Improved instructor efficiency and productivity", | ||
| }, | ||
| ], | ||
| }, | ||
| ]; | ||
| const nutritionFacts: NutritionFactsProps = { | ||
| ...{ | ||
| closeButtonText: "Close", | ||
| closeIconButtonScreenReaderLabel: "Close", | ||
| data: undefined, | ||
| featureName: "Item Authoring", | ||
| modalLabel: "This is a modal for AI facts", | ||
| title: "AI Nutrition Facts", | ||
| triggerText: "Nutrition Facts", | ||
| }, | ||
| data: NUTRITION_FACTS_DATA, | ||
| featureName: FEATURE_NAME, | ||
| }; | ||
| const dataPermissionLevels: DataPermissionLevelsProps = { | ||
| ...{ | ||
| closeButtonText: "Close", | ||
| closeIconButtonScreenReaderLabel: "Close dialog", | ||
| currentFeature: "Item Authoring", | ||
| currentFeatureText: "Current Feature:", | ||
| data: undefined, | ||
| modalLabel: "Data Permission Levels modal", | ||
| title: "Data Permission Levels", | ||
| triggerText: "Data Permission Levels", | ||
| }, | ||
| currentFeature: FEATURE_NAME, | ||
| data: DATA_PERMISSION_LEVELS, | ||
| }; | ||
| const aiInformation: AiInformationProps = { | ||
| ...{ | ||
| data: [ | ||
| { | ||
| description: | ||
| "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.", | ||
| featureName: "Item Authoring", | ||
| modelName: "Haiku 3", | ||
| modelNameText: "Base Model", | ||
| nutritionFactsModalTriggerText: "AI Nutrition Facts", | ||
| permissionLevel: "LEVEL 2", | ||
| permissionLevelsModalTriggerText: "Data Permission Levels", | ||
| permissionLevelText: "Permission Level:", | ||
| }, | ||
| ], | ||
| dataPermissionLevelsCloseButtonText: "Close", | ||
| dataPermissionLevelsCloseIconButtonScreenReaderLabel: "Close dialog", | ||
| dataPermissionLevelsCurrentFeature: "Item Authoring", | ||
| dataPermissionLevelsCurrentFeatureText: "Current Feature:", | ||
| dataPermissionLevelsData: undefined, | ||
| dataPermissionLevelsModalLabel: "Data Permission Levels modal", | ||
| dataPermissionLevelsTitle: "Data Permission Levels", | ||
| nutritionFactsCloseButtonText: "Close", | ||
| nutritionFactsCloseIconButtonScreenReaderLabel: "Close", | ||
| nutritionFactsData: undefined, | ||
| nutritionFactsFeatureName: "Item Authoring", | ||
| nutritionFactsModalLabel: "This is a modal for AI facts", | ||
| nutritionFactsTitle: "AI Nutrition Facts", | ||
| title: "Features", | ||
| trigger: undefined, | ||
| }, | ||
| dataPermissionLevelsData: DATA_PERMISSION_LEVELS, | ||
| nutritionFactsData: NUTRITION_FACTS_DATA, | ||
| trigger: undefined, | ||
| }; | ||
| const assessmentauthoringassistance: AiInfoFeatureProps = { | ||
| aiInformation, | ||
| dataPermissionLevels, | ||
| description: | ||
| "Item Authoring for Assessments streamlines assessment creation by generating questions based on your course materials. \n", | ||
| group: "Mastery", | ||
| name: FEATURE_NAME, | ||
| nutritionFacts, | ||
| revision: "2025.11.18", | ||
| uid: UID, | ||
| }; | ||
| export { | ||
| assessmentauthoringassistance, | ||
| nutritionFacts, | ||
| dataPermissionLevels, | ||
| aiInformation, | ||
| }; | ||
| export default assessmentauthoringassistance; |
Copilot
AI
Nov 18, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The two new features assessmentauthoringassistance (Item Authoring) and itemauthoringassistance (Question Authoring) appear to be nearly identical in their implementation. They share:
- Same base model (Haiku 3)
- Same compliance requirements
- Same nutrition facts data
- Same expected risks and outcomes
- Same description pattern
The only differences are:
- Feature names: "Item Authoring" vs "Question Authoring"
- UIDs: "assessmentauthoringassistance" vs "itemauthoringassistance"
- Group: "Mastery" vs "Canvas"
- Description wording: "Assessments" vs "Quizzes"
Consider consolidating these into a single, configurable component to reduce code duplication and improve maintainability. If these truly represent different features, ensure their distinct purposes are clearly documented.
No description provided.