# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for Canvas LMS REST Ai Conversations API version: 1.0.0 extends: openapi/canvas-ai-conversations-api-openapi.yml actions: - target: $.info update: x-apievangelist-phrasing: method: generated generated: '2026-10-01' generator: build-phrasing.py label: Generated by API Evangelist operations: 9 - target: $.paths['/v1/courses/{course_id}/ai_experiences/{ai_experience_id}/conversations/{id}'].get update: x-apievangelist-phrasing: intent: View a student's AI conversation effect: read questions: - As a teacher, can I read a specific student's conversation with an AI experience? - How do I open one AI conversation by its id? instructions: - text: Show AI conversation {id} in experience {ai_experience_id} of course {course_id}. slots: id: path.id ai_experience_id: path.ai_experience_id course_id: path.course_id - text: Open conversation {id} for AI experience {ai_experience_id} in course {course_id}. slots: id: path.id ai_experience_id: path.ai_experience_id course_id: path.course_id method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/ai_experiences/{ai_experience_id}/conversations/{id}'].delete update: x-apievangelist-phrasing: intent: End an AI conversation session effect: destructive questions: - How do I end the current AI conversation session? - Can I close out a conversation with an AI experience? instructions: - text: End AI conversation {id} in experience {ai_experience_id}, course {course_id}. slots: id: path.id ai_experience_id: path.ai_experience_id course_id: path.course_id - text: Delete conversation {id} from AI experience {ai_experience_id} in course {course_id}. slots: id: path.id ai_experience_id: path.ai_experience_id course_id: path.course_id method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/ai_experiences/{ai_experience_id}/conversations'].get update: x-apievangelist-phrasing: intent: Get my active AI conversation effect: read questions: - Do I already have an ongoing conversation with this AI experience? - Which AI conversation is currently active for me? instructions: - text: Get my active conversation for AI experience {ai_experience_id} in course {course_id}. slots: ai_experience_id: path.ai_experience_id course_id: path.course_id - text: Resume my current chat with AI experience {ai_experience_id} in course {course_id}. slots: ai_experience_id: path.ai_experience_id course_id: path.course_id method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/ai_experiences/{ai_experience_id}/conversations'].post update: x-apievangelist-phrasing: intent: Start a new AI conversation effect: write questions: - How do I start a fresh conversation with a course's AI experience? - Can I initialize a new chat session with an AI experience? instructions: - text: Start a new conversation with AI experience {ai_experience_id} in course {course_id}. slots: ai_experience_id: path.ai_experience_id course_id: path.course_id - text: Open a fresh AI chat for experience {ai_experience_id} in course {course_id}. slots: ai_experience_id: path.ai_experience_id course_id: path.course_id method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/ai_experiences/{ai_experience_id}/conversations/{id}/messages'].post update: x-apievangelist-phrasing: intent: Send a message to an AI conversation effect: write questions: - How do I send a message and get the AI's reply in a conversation? - Can I continue an existing AI conversation with a new prompt? instructions: - text: Send {message} to conversation {id} in AI experience {ai_experience_id}, course {course_id}. slots: message: requestBody.message id: path.id ai_experience_id: path.ai_experience_id course_id: path.course_id - text: Ask the AI {message} in conversation {id} (experience {ai_experience_id}, course {course_id}). slots: message: requestBody.message id: path.id ai_experience_id: path.ai_experience_id course_id: path.course_id method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/ai_experiences/{ai_experience_id}/conversations/{id}/evaluation'].get update: x-apievangelist-phrasing: intent: Read a conversation's stored evaluation effect: read questions: - Can I see the latest saved evaluation of an AI conversation without rerunning it? - Why would a conversation's evaluation come back empty? instructions: - text: Get the stored evaluation for conversation {id} in AI experience {ai_experience_id}, course {course_id}. slots: id: path.id ai_experience_id: path.ai_experience_id course_id: path.course_id - text: Show the last evaluation of conversation {id} (experience {ai_experience_id}, course {course_id}). slots: id: path.id ai_experience_id: path.ai_experience_id course_id: path.course_id method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/ai_experiences/{ai_experience_id}/conversations/{id}/evaluation'].post update: x-apievangelist-phrasing: intent: Generate or reset a conversation's evaluation effect: write questions: - How do I have the LLM re-evaluate a student's AI conversation? - Is generating a conversation evaluation rate-limited, and does it replace the old one? instructions: - text: Generate a new evaluation for conversation {id} in AI experience {ai_experience_id}, course {course_id}. slots: id: path.id ai_experience_id: path.ai_experience_id course_id: path.course_id - text: Rerun the evaluation of conversation {id} (experience {ai_experience_id}, course {course_id}). slots: id: path.id ai_experience_id: path.ai_experience_id course_id: path.course_id method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/ai_experiences/{ai_experience_id}/conversations/{id}/messages/{message_id}/feedback'].post update: x-apievangelist-phrasing: intent: Like or dislike an AI reply effect: write questions: - Can I give a thumbs up or down on an AI-generated message? - How do I leave written feedback with my vote on an AI reply? instructions: - text: Vote {vote} on message {message_id} in conversation {id}, experience {ai_experience_id}, course {course_id}. slots: vote: requestBody.vote message_id: path.message_id id: path.id ai_experience_id: path.ai_experience_id course_id: path.course_id - text: Rate AI message {message_id} as {vote} with note {feedback_message} (conversation {id}, experience {ai_experience_id}, course {course_id}). slots: message_id: path.message_id vote: requestBody.vote feedback_message: requestBody.feedback_message id: path.id ai_experience_id: path.ai_experience_id course_id: path.course_id method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/ai_experiences/{ai_experience_id}/conversations/{id}/messages/{message_id}/feedback/{feedback_id}'].delete update: x-apievangelist-phrasing: intent: Remove my vote on an AI reply effect: destructive questions: - How do I take back a like or dislike I gave an AI message? - Can I toggle off feedback on an AI reply? instructions: - text: Remove feedback {feedback_id} from message {message_id} in conversation {id}, experience {ai_experience_id}, course {course_id}. slots: feedback_id: path.feedback_id message_id: path.message_id id: path.id ai_experience_id: path.ai_experience_id course_id: path.course_id - text: Undo vote {feedback_id} on AI message {message_id} (conversation {id}, experience {ai_experience_id}, course {course_id}). slots: feedback_id: path.feedback_id message_id: path.message_id id: path.id ai_experience_id: path.ai_experience_id course_id: path.course_id method: generated generated: '2026-10-01'