Add Piyo Chat feature for textbook sections#9847
Open
komagata wants to merge 1 commit intofeature/textbookfrom
Open
Add Piyo Chat feature for textbook sections#9847komagata wants to merge 1 commit intofeature/textbookfrom
komagata wants to merge 1 commit intofeature/textbookfrom
Conversation
## Overview Enables AI-powered chat with Piyo mascot while reading textbook sections. Users can ask questions about the current section and get contextual responses. ## Implementation ### Database - piyo_chat_messages table: stores chat history per user/section - PiyoChatMessage model with validations ### Backend - PiyoChatService: contextual AI responses using RubyLLM + section info - API::Textbooks::PiyoChatMessagesController: chat history + message creation ### Frontend - piyo_chat_controller.js: chat panel UI with message rendering - Enhanced piyo companion: click to toggle chat panel - CSS for chat panel and message bubbles ### Integration - Extends existing piyo companion partial with section-specific chat - Maintains conversation history per section - Error handling and loading states ## Files Added - db/migrate/20260329000000_create_piyo_chat_messages.rb - app/models/piyo_chat_message.rb - app/services/piyo_chat_service.rb - app/controllers/api/textbooks/piyo_chat_messages_controller.rb - app/javascript/controllers/piyo_chat_controller.js - test/models/piyo_chat_message_test.rb - test/services/piyo_chat_service_test.rb - test/fixtures/piyo_chat_messages.yml ## Files Modified - config/routes/textbook.rb: added piyo_chat_messages routes - app/models/user.rb: has_many piyo_chat_messages - app/views/shared/_piyo_companion.html.slim: chat panel UI - app/views/textbooks/sections/show.html.slim: pass section_id
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
概要
textbookのセクション読書中にピヨルドとAIチャットができる機能を追加しました。
デモ: セクション右下のピヨルド🐥をクリック → チャットパネルが開く → セクションの内容について質問できる
実装内容
🗃 データベース
piyo_chat_messagesテーブル: user × section × chat履歴PiyoChatMessageモデル(role: user/assistant, content, etc.)🤖 バックエンド
🎨 フロントエンド
🔗 統合
/textbooks/:id/chapters/:cid/sections/:sid) でのみ有効スクリーンショット
(レビューアプリで確認可能)
テスト
全テスト成功、RuboCop clean 確認済み。
次のステップ
この基盤を使って以下の機能を順次追加予定:
@komagata レビューお願いします! 🐾