Cài đặt ChatterBot trên Windows

ChatterBot là gì?

ChatterBot là một công cụ tạo ra một chat bot tự động dựa trên cơ sở học máy (machine learning) bằng ngôn ngữ Python. ChatterBot chính là một freamwork cho ChatAI (Chatbot AI) để tạo ra những con bot thông minh để bạn có thể tích hợp vào những công cụ chat như Facebook, Skype hoặc chính là là những nền tảng chat do các bạn tự tạo ra. ChatterBot được thiết kế dựa trên Python là một ngôn ngữ xử lý ngôn ngữ hàng đầu cho phép ChatterBot có để đào tạo bất kỳ ngôn ngữ nào. Kể cả ngôn ngữ Tiếng Việt.
Đặc biệt do ChatterBot là dự án mã nguồn mở nên bạn hoàn toàn của thể nghiên cứu phát triển và kiểm soát được toàn bộ mã nguồn cũng như cơ sở dữ liệu. Điều này làm bảo mật toàn bộ thông tin con bot mà bạn phát triển không phải phụ thuộc vào bất kỳ nền tảng do một bên thứ 3 nào như Wit.AI….

Bạn có thể tham khảo dự án tại Github: https://github.com/gunthercox/ChatterBot
Tài liệu cho ChatterBot: https://chatterbot.readthedocs.io/en/stable/index.html

Cài đặt ChatterBot trên Windown 10

B1: Đầu tiên bạn cần cài đặt git trước để có thể dễ dàng tải mã nguồn và cập nhật mã nguồn từ ChatterBot. (Cái này các bạn tự google nhé, mình đang sử dụng: Git-2.16.2-64-bit)
Sau khi cài đặt xong bạn có thể kiểm tra version git, như ảnh sau là ok:

B2: Vì ChatterBot được code bằng Python nên để phát triển bạn bắt buộc phải cài Python, hiện tại tôi đang sử dụng Python 2.7, hiện tại ChatterBot cũng đang khuyến cáo nên sử dụng phiên bản này.
Cái này các bạn cũng tự tìm về cài nhé, cứ mặc định mà cài, đây là kết quả check sau khi đã cài xong:

B3: Khi cài Python thì mặc định đã được tích hợp sẵn công cụ pip để tiến hành build ChatterBot

B4: Clone bản ChatterBot mới nhất từ mã nguồn trên Github: https://github.com/gunthercox/ChatterBot.git
Ta tạo một thư mục mới (ở bất kỳ chỗ nào cũng được) để chứa mã nguồn.
Sau đó di chuyển command line đến thư mục này (hoặc mở thư mục này ra, nhấn Shift + chuột phải chọn: Open command windown here)
Dùng lệnh: clone https://github.com/gunthercox/ChatterBot.git để tải mã nguồn về.
Chờ một lát ta sẽ có kết quả :

B5: Tiến hành build và cài đặt ChatterBot sử dụng lệnh: pip install ./ChatterBot
Chờ đợi một lát để pip lấy thêm các thư viện cần thiết và cài đặt. Kết quả:

B6: Xong, ta đã cài đặt thành công ChatterBot trên windown 10, ta có thể kiểm tra phiên bản hiện tại ta vừa cài đặt bằng lệnh: python -m chatterbot –version

 

Đến bước này là ta đã hoàn thành việc cài đặt ChatterBot, bài tiếp theo ta có thể tạo thử một con bot để cho nó học và thử hỏi nó.

Tự động hóa việc commit và push code lên server

Bài toán

Ở công ty nơi tôi làm việc quy định mọi người thường xuyên phải đẩy (push) code hàng ngày trên Gitlab, tuy nhiên việc này tôi thường quên, nói đúng hơn là lười.
=> Ý tưởng sẽ làm tự động hóa việc này cho nó tự động thay vì việc mình phải làm bằng tay.

 Đề xuất giải pháp

Ta sẽ tạo một job tự động commit và push lên theo một chu kỳ thời gian nhất định nào đó.
Hệ điều hành tôi đang sử dụng là window nên sẽ không tạo được kiểu crontab được mà sẽ phải làm theo 2 bước:
B1: Tạo một file shell script .Bat chứa tập các tác vụ mình muốn thực hiện (dùng notepad)
Đây là quy trình của tôi muốn job thực hiện như sau: Pull code mới nhất về -> Add toàn bộ file cần đưa lên -> Commit lên -> Push toàn bộ
Nội dung file mà tôi sử dụng:

:: Di chuyển đến thư mục chứa code của chúng ta
cd “C:\Users\GITCODE”
:: Set các giá trị về file git exe và nhánh cần làm việc
set GIT_PATH=”C:\Program Files\Git\bin\git.exe”
set BRANCH = “origin”
:: Tiến hành pull toàn bộ code về
%GIT_PATH% pull %BRANCH%
:: Tiến hành add toàn bộ file thay đổi
%GIT_PATH% add -A
:: Commit lên
%GIT_PATH% commit -am “Auto-committed on %date%”
:: Push lên
%GIT_PATH% push %BRANCH%

B2: Sử dụng Scheduler của windown để job thực hiện gọi đến cái file .bat ta vừa tạo ở trên
Phần này các bạn chủ động google nhé, đã nhiều người hướng dẫn chi tiết lắm rồi. Mình thì đặt thời gian hàng ngày buổi sáng là 9h chạy khi mới công ty, đầu giờ chiều chạy một nháy lúc 13h và 17h trước khi về chạy nốt. Hoặc bạn có thể cho chạy mỗi tiếng 1 lần

Hướng phát triển

  • Đây mới chỉ là sơ khai, việc tự động và nó thông minh hơn thì ta cần phải thêm các điều kiện hoặc ràng buộc hơn nữa:
  • Buổi sáng đến thì ta luôn phải check code mới nhất về của các đồng nghiệp khác
  • Tất nhiên lúc nào cần thiết thì ta vẫn thực hiện các thao tác này bằng câu lệnh bình thường
  • Đưa ra black list các file hoặc thư mục không được phép đưa lên
  • Gửi email nếu có lỗi trong quá trình pull về
  • Ta có thể gắn một số cờ đặt biệt để khi có nó thì hệ thống mới tự động
  • Kiểm tra code không lỗi thì mới tiến hành đưa code lên (cái này phải nghiên cứu cái CI)

Việc này giúp ta được những gì

  • Tự động hóa các việc nhàm chán hàng ngày ta vẫn phải làm đi làm lại
  • Việc đưa code liên tục lên sẽ giúp người quản lý nắm bắt được -> mặc dù ta vẫn lười cơ mà
  • An toàn khi có điều gì đó xảy ra với code của ta như lỡ tay xóa đi chẳng hạn. 😀

Lỗi không mở được file word

Trong quá trình sử dụng phần mềm Microsoft word, có nhiều trường hợp file .doc hoặc .docx ta tải về hoặc người khác gửi cho không đọc được mà báo lỗi: Word experirenced an error trying to open the file.

Nguyên này xảy ra do phiên bản word 2013 có tính năng bảo mật, tạm thời khóa file vào tránh virut khi ta vô tình mở file.

Để xử lý lỗi này rất đơn giản, ta chỉ việc xử lý như sau:

  • Nhấn chuột phải vào file chọn Properties
  • Sau đó nhấn vào Unblock, tiếp đến là nhấn Apply và tắt cửa sổ này đi.

Mở lại file là OK.

Chúc các bạn thành công!

Cài đặt pentaho trên window 7, 8, 10

Pentaho Data Intergration(PDI) là 1 tools ETL mạnh mẽ dùng để tổng hợp, chuyển đổi và xử lý dữ liệu – nằm trong nhóm công cụ dành cho BI của Pentaho. PDI hiện nay được công ty  phát triển có cả bản thương mại và bản dành cho cộng đồng, bản mới nhất dành cho cộng đồng là bản 8.0. Sau đây là hướng dẫn cài đặt pentaho trên window 10 cho tất cả mọi người.

Đối với Pentaho thì ta không cần cài đặt nó mà có thể chay được ngay nhưng vẫn phải cần môi trường để cho nó có thể chạy được.

Ứng dụng của Pentaho đầu tiên được biết đến là một công cụ ETM mạnh mẽ. Không kể đến bản Pro, bản Free dành cho cộng đồng còn có nhiều tính năng mà ta có thể khai thác để ứng dụng nhiều trong công việc. Một số phải kể đến đó là làm báo cáo, phân tích dữ liệu, ứng dụng Bigdata…

Các tạo môi trường và cài đặt các phần mềm cần thiết

Để chạy được Pentaho PDI dành cho cộng đồng ta cần thực hiện các bước sau:
B1: Cài đặt môi trường JDK để Pentaho có thể chạy được
Tùy theo phiên bản Pentaho PDI ta có thể cài đặt phiên bản JDK phù hợp. Lựa chọn và tải JDK tại địa chỉ: JDK
Hiện tại tôi đang sử dụng phiên bản Pentaho PDI 7.0 với JDK 7
B2: Tải Pentaho PDI và giải nén
Tải phiên bản Pentaho PDI mới nhất tại địa chỉ: PDI
Hoặc các phiên bản cũ hơn: PDI OLD
B3: Tải các JDBC driver để Pentaho PDI có thể giao tiếp với các loại cơ sở dữ liệu
– Oracle: jdbc
– Sqlserver: sqljdbc
– MySQl: mysql-connector-java
B4: Đưa các JDBC driver vào thư muc: data-integration\lib
B5: Bật Pentaho PDI bằng cách chạy file: Spoon.bat trong thư mục: data-integration. Ta sẽ có giao diện chương trình như sau:

Như vậy việc cài đặt pentaho trên window 10 đã xong. Ta có thể bắt đầu sử dụng pentaho để thực hiện các tác vụ mà mình muốn.

API kiểm tra tên miền

Trong nhiều trường hợp ta muốn kiểm tra một tên miền đã được đăng ký hay chưa, hoặc đăng ký từ bao giờ hoặc ai là người đăng ký, tình trạng hiện hành tên miền còn hạn không… Thường khi ta đi đăng ký tên miền thì các nhà cung cấp đều có tính năng kiểm tra tên miền xem đã được đăng ký hay chưa. Với chừng đó thông tin thì đối với ta là chưa đủ.

Trong quá trình phát triển trang http://khamphaweb.com, để thu thập tên miền chúng tôi có sử dụng 2 phương thức:

+ Dùng con bot để thu thập dữ liệu giữa các trang web khác nhau, việc này cũng cần kiểm tra các thông tin liên quan đến tên miền tìm được

+ Sinh tên miền và tiến hành kiểm tra xem nó đã được đăng ký hay tồn tại hay chưa.

Rất may tổ chức vnwho đã cung cấp API kiểm tra các thông tin của tên miền mà ta sử dụng:

https://vnwho.com/api?domain=tenmien.xxx

API này dựa trên phương thức GET, ta có thể dễ dàng sử dụng nó tùy theo nhu cầu.