Scratch: Cách tạo chatbot giống Alexa bằng AI
Scratch không chỉ giúp bé tạo game, trò chơi mà còn có thể phát triển cả chatbot. Dưới đây là cách tạo chatbot giống Alexa bằng AI trong Scratch.
Cách làm chatbot giống Alexa bằng AI trong Scratch
Bước 1: Bắt đầu bằng sprite và backdrop
Đầu tiên, chọn nhân vật cho chatbot và một phông nền. Mặc định, Scratch cho bạn một con mèo và backdrop trống. Bạn có thể dùng lựa chọn có sẵn này hoặc sprite riêng. Tìm icon con mèo ở góc phải phía dưới cùng của màn hình để tự chọn sprite.
Bạn có thể chọn nhân vật từ thư viện hoặc dùng Paint để vẽ, sử dụng Surprise để Scratch chọn ngẫu nhiên cho bạn hoặc click Upload để tải ảnh mong muốn.
Nếu quyết định chọn hình riêng, bạn có thể xóa sprite mặc định bằng cách chọn nó, rồi click icon thùng rác.
Để chọn backdrop, tìm icon ngọn núi. Tại đây, bạn có các lựa chọn giống như ở menu sprite.
Bước 2: Nhập lệnh hoặc yêu cầu chatbot đặt câu hỏi.
Giờ bắt đầu code trong Scratch. Bạn cần nói với người dùng ra lệnh nào đó hay đặt câu hỏi để chatbot phản hồi. Bạn cũng sẽ muốn chương trình tiếp tục trò chuyện khi đang chạy.
Đảm bảo đã chọn sprite trong cửa sổ Sprite. Lúc này, bạn sẽ thấy nó được highlight bằng màu xanh dương.
Ở bên trái của màn hình, bạn sẽ thấy danh mục các khối có thể sử dụng để viết code. Khi chọn một mục, bạn sẽ thấy các khối lựa chọn.
Đầu tiên, tới Events và kéo khối when flag clicked.
Bạn muốn tiếp tục trò chuyện khi chương trình đang chạy? Tới mục Control và kéo khối forever. Thêm khối này vào block when flag clicked.
Trong khối forever, cho người dùng biết cần ra lệnh hoặc đặt câu hỏi. Tới Sensing, lấy khối ask. Thêm nó vào trong block forever. Ở text box, gõ Say something or ask me a question.
Bước 3: Tạo các biến để biết có câu trả lời trong danh sách hay không và vị trí của nó.
Giống như Alexa, AI chatbot cần học và ghi nhớ điều người dùng nói và nên phản hồi như thế nào.
Để giúp AI chatbot làm việc đó, tới mục Variables và tạo một biến found để xác định có câu trả lời trong danh sách chatbot hay không và biến khác mang tên prompt location để lưu câu trả lời được tìm thấy.
Bước 4: Tạo danh sách lưu thông tin chatbot học được và cách nó phản hồi.
Tới mục Variables và tạo danh sách prompts và responses:
- Prompts chứa những gì người dùng nói với chatbot
- Responses lưu cách chatbot phản hồi với lệnh hoặc câu hỏi từ người dùng.
Bước 5: Thiết lập giá trị ban đầu cho các biến.
Mỗi lần người dùng yêu cầu hành động hay đặt câu hỏi, các giá trị cho những biến này đều cần được reset.
Tới mục Variables và dùng hai khối set. Thêm chúng vào sau block ask. Đặt biến found sang false và prompt location sang 1.
Bước 6: Kiểm tra danh sách các prompt cho câu trả lời của người dùng.
Chatbot cần biết rằng nó đã trả lời đúng điều người dùng nói hay chưa. Đầu tiên, nó phải tìm danh sách prompts. Tới mục Control và chọn khối repeat. Thêm nó vào sau khối set.
Khối repeat sử dụng điều kiện là số lần nó lặp lại cho mỗi mục trong danh sách prompts. Tới Variables và chọn khối length of. Click prompts từ menu thả xuống.
Kiểm tra câu trả lời của người dùng là một phần của prompts mà AI chatbot đã biết. Hãy cho AI chatbot biết khi nào người dùng nói Hello, nó sẽ phản hồi lại bằng Hello.
Tới Control > lấy khối if-else > thêm nó vào bên trong block repeat.
Sau đó tới Operators > chọn contains > Thêm nó vào điều kiện cho khối if.
Từ Sensing > chọn answer > thêm nó vào vùng đầu tiên ở khối contains.
Từ Variables> lấy item ___ of ___. Chọn danh sách prompts từ menu. Ngoài ra, bạn cũng có thể sử dụng khối answer và thêm nó vào khu vực trống trong khối contains.
Bằng cách code như trên, AI sẽ kiểm tra câu trả lời của người dùng có nằm trong bất kỳ mục nào ở danh sách prompts hay không.
Bước 7: Dạy AI chatbot nhận biết phiên bản mới của prompt.
Câu trả lời của người dùng có thể chứa từ AI chatbot đã biết nhưng với các dấu câu khác nhau. Để đảm bảo AI chatbot biết điều cần nói khi dùng toàn bộ prompt, bạn cần chắc chắn tất cả biến thể của lệnh đều nằm trong danh sách. Ví dụ, Hello nằm trong prompts nhưng lại thiếu Hello!. Hãy kiểm tra và thêm lệnh còn thiếu vào danh sách
- Từ Control > lấy khối if, rồi thêm nó vào trong phần if của if-else.
- Từ Operators > chọn khối not và contains. Thêm not vào điều kiện cho lệnh if, rồi thêm contains vào khối not.
- Từ Variables, lấy khối prompts. Thêm nó vào khu vực trống đầu tiên ở khối contains.
- Từ Sensing, lấy khối answer, rồi thêm nó vào khu vực trống trong khối contains.
Nếu lời nhắc chưa chứa toàn bộ câu trả lời chính xác, hãy thêm nó vào danh sách prompts và câu phản hồi ở cùng vị trí trong list responses.
Từ Variables > chọn add ___ to ___ > thêm nó vào trong lệnh if.
Ở khối add đầu tiên, lấy answer từ Sensing. Thêm nó vào khu vực trống của khối block. Chọn danh sách prompts từ menu thả xuống.
Ở khối add thứ hai, lấy item ___ of ___ từ Variables. Thêm nó vào trường trống của block add. Chọn danh sách responses cho cả hai danh sách thả xuống.
Bước 8: Nói phản hồi!
Đầu tiên, chatbot cần tìm thấy câu trả lời phù hợp trong list prompt. Tới Variables, lấy khối set. Thêm nó vào sau lệnh if thứ hai nhưng vẫn nằm trong lệnh if đầu tiên. Dùng nó để thiết lập biến found sang true bằng cách chọn found từ menu thả xuống và nhập true.
Để phản hồi, lấy khối say trong Looks. Thêm nó vào sau set found to true.
Để chatbot phản hồi phù hợp, tới Variables > chọn item ___ of ___. Thêm nó vào trong khối say. Cũng từ mục Variables, lấy khối prompt location, thêm nó vào khu vực trong khối item ___ of ___. Chọn danh sách responses từ menu thả xuống.
Bước 9: Cập nhật vị trí lời nhắc cho mục tiếp theo trong danh sách.
Nếu câu trả lời không khớp với mục hiện tại trong danh sách, prompt location cần chuyển tới mục tiếp theo. Từ Variables > lấy change ___ by 1 > thêm nó vào lệnh else. Chọn prompt location từ menu thả xuống.
Bước 10: Huấn luyện AI
Một khía cạnh quan trọng của AI là khả năng học. Nếu không thấy câu trả lời trong list prompt sau khi kiểm tra, AI cần biết điều cần nói ở lần tiếp theo.
Từ mục Control, lấy khối if, thêm nó vào sau repeat.
Để kiểm tra biến found vẫn false do không tìm thấy lời nhắc, dùng khối = từ Operators. Thêm nó vào điều kiện cho lệnh if.
Tới Variables, lấy khối found, thêm nó vào phần đầu tiên của khối =. Nhập false ở trường thứ hai.
Để dạy AI lời gợi ý mới, lấy add ___ to ___ block từ Variables, rồi thêm vào if.
Tới Sensing, chọn answer, thêm nó vào khu vực trong khối add. Chọn prompts từ danh sách thả xuống.
Để người dùng biết chatbot không biết câu trả lời và hỏi họ điều cần nói trong tương lai như sau:
Tới Sensing > chọn ask > thêm vào sau khối add. Trong text box, viết "Sorry, I don't know how to respond to that yet. What should I say next time?".
Cuối cùng, thêm câu trả lời vào danh sách responses. Tới Variables > chọn khối add ___ to ___ khác.
Tới mục Sensing, lấy khối answer. Thêm nó vào khu vực trong khối add. Chọn danh sách responses từ menu thả xuống.
Trên đây là cách tạo chatbot trong Scratch. Hi vọng bài viết hữu ích với các bạn.