6

Công việc của tôi với chatbot dao động khi tôi có thời gian để thực hiện hai ý tưởng chính của mình: tiểu thuyết khái quát và bot cho tài liệu. Bạn tạo hầu hết các bot với ngôn ngữ phía máy chủ trả JSON về điểm cuối và hiển thị giao diện âm thanh hoặc hình ảnh. Điều này có nghĩa là trong khi tất cả các nền tảng bot có API và SDK riêng, có rất nhiều công cụ để giúp bạn viết một lần và phân phối đến nhiều nền tảng. Những người giỏi ở Botonic đã liên lạc và hỏi ý kiến ​​phản hồi về trải nghiệm của nhà phát triển cho nền tảng của họ cho phép bạn tạo bot bằng React cho nhiều giao diện trò chuyện và giọng nói.

Bắt đầu

Tôi rất vui khi nói rằng Botonic có  một trải nghiệm bắt đầu tuyệt vời , với tài liệu văn bản và video. Bắt đầu bằng cách cài đặt mô-đun npm:

npm install -g botonic

Các botoniclệnh giúp bạn làm được rất nhiều, bao gồm việc tạo các dự án mẫu, chạy bot của bạn tại địa phương, và triển khai nó vào đám mây Botonic. Thực hiện theo phần còn lại của hướng dẫn bắt đầu để có ý tưởng về những gì có sẵn. Trong phần còn lại của bài đăng này, tôi sẽ chuyển bot Boardgame Jerk của mình sang Botonic.

Tạo dự án

Bot Boardgame Jerk (hiện tại) đơn giản, mọi người yêu cầu nó cho một ý tưởng trò chơi ngẫu nhiên, và nó cung cấp cho họ một ý tưởng. Các phiên bản trong tương lai có thể có nhiều chức năng hơn, nhưng không phải bây giờ.

Vì dự án của tôi đã tồn tại, tôi đã sử dụng lệnh sau để thêm blankmẫu vào dự án hiện tại của mình:

botonic new boardgamejerk blank

Lệnh đã tạo một thư mục con có tên trống trong dự án hiện tại của tôi, vì vậy tôi đã di chuyển các tệp bên trong nó lên cấp cao nhất của dự án.

Tạo hành động

Tôi không có nhiều kiến ​​thức về React trước đây, nhưng vì bot không quá phức tạp, nên việc thiết lập các tương tác có thể, hoặc 'tuyến đường', không đòi hỏi nhiều công việc.

Mở tệp botonic.config.js xác định tuyến đường và thêm:

module.exports = {
    routes: [
        {text: "game", action: "generategame"}
    ]
}

Bạn sử dụng biểu thức chính quy trong các tuyến đường và như tôi muốn khớp với cụm từ "trò chơi", đây là tất cả những gì tôi cần. Tôi có thể thay đổi mẫu để khớp bất kỳ câu nào với từ "trò chơi" và sử dụng:

module.exports = {
    routes: [
        {text: \W*((?i)game(?-i))\W*, action: "generategame"}
    ]
}

Tiếp theo, tôi tạo ra các hành động phù hợp generateGametrong trang / hành động / generategame.js :

import React from 'react'
import { Botonic } from 'botonic'

export default class extends Botonic.React.Component {

    static async botonicInit({ req }) {
        var gameLexicon = require('../createlexicon');
        req.context.gameText = gameLexicon.randomString();
    }

    render() {
        return (
            <message type="text">
            {this.props.context.gameText}
    </message>
    )
    }
}

Bạn cần di chuyển bất kỳ tệp nào khác mà mã Botonic sử dụng, trong trường hợp này là createlexicon.js , vào thư mục trang .

Tôi sẽ không đi sâu vào chi tiết về trình tạo văn bản ngẫu nhiên, vì bạn có thể đọc mãhướng dẫn khác của tôi giải thích cách hoạt động của nó.

Về mã liên quan đến Botonic, tôi lấy chuỗi ngẫu nhiên, đặt nó thành một giá trị ngữ cảnh và sau đó xuất nó dưới dạng văn bản. Nếu tôi sử dụng botonic runthì bot chạy trong dòng lệnh và gõ gamecho tôi một trò chơi ngẫu nhiên.

Tuyệt vời, nhưng mọi người không có xu hướng tương tác với các bot trên dòng lệnh và sử dụng Botonic và React là quá mức cần thiết cho trường hợp sử dụng đó. Vậy các bước tiếp theo là gì? Tôi rất vui vì bạn đã hỏi!

Triển khai Bot

Nếu bạn có bất kỳ sự phụ thuộc bên ngoài nào, chẳng hạn như ngữ pháp theo dõi mà dự án này sử dụng, sẽ có thêm một bước nữa.

Trong tệp next.config.js , thêm phụ thuộc vào transpileModulesmảng:

…
transpileModules: ['tracery-grammar']
…

Việc ban hành botonic deploylệnh sẽ nhắc bạn đăng ký hoặc đăng nhập vào đám mây Botonic và nó sẽ trả về cho bạn một URL nơi bạn có thể thêm tích hợp. Hiện tại được hỗ trợ là Messenger và Telegram, nhưng với nhiều nền tảng tiếp theo, bao gồm (thú vị với tôi). Các cuộc gọi tiếp theo để botonic deploycập nhật mã trên Botonic, và do đó, các nền tảng bạn đã tích hợp nó.

Và bây giờ, gõ "trò chơi" trên Messenger hoặc Telegram và nhận bot để tạo ra một ý tưởng trò chơi ngẫu nhiên.

Bot có nhiều hơn

Bot nhỏ của tôi chỉ sử dụng phản hồi văn bản và cung cấp rất ít trong cách tương tác. Nền tảng Botonic cung cấp nhiều chức năng hơn mà tôi hầu như không đề cập đến. Ví dụ: cho phép bạn sử dụng nhiều tính năng tạo khuôn mẫu và chuyển giao của Facebook Messenger và xử lý ngôn ngữ tự nhiên độc lập. Vì tôi chưa sử dụng React trong bất kỳ dự án hiện tại nào của mình nên tôi không chắc liệu đường cong học tập của nó có thấp hơn việc học các SDK khác hay không. Tuy nhiên, tôi đã tạo lại bot của mình với rất ít công việc và sẽ cho rằng việc thêm chức năng bổ sung cũng nhanh như vậy.

|