dldl / chatbot-platform
聊天机器人平台交换器
Requires
- php: >=7.1
- symfony/dotenv: ^3.3
- symfony/event-dispatcher: ^2.8|^3.0
- symfony/http-foundation: ^2.8|^3.0
Requires (Dev)
- phpunit/phpunit: ^6.2
- symfony/var-dumper: ^2.8|^3.0
This package is not auto-updated.
Last update: 2024-09-25 02:19:20 UTC
README
该平台未经充分测试,仅为一个概念验证。欢迎任何贡献。
ChatbotPlatform 是一个 PHP 库,允许使用多个动作提供者和多个来源构建多个聊天机器人平台。
当前的实现允许基本的 Ajax 交互或 Facebook Messenger 对话。它很容易扩展。
安装
使用 Composer 安装库
composer require dldl/chatbot-platform
基本用法
ChatbotPlatform 可以作为一个独立的项目使用,也可以集成到任何框架或 CMS 的现有应用中。
对于基本的独立使用,创建一个 index.php
文件,包含以下代码
<?php use Symfony\Component\HttpFoundation\Request; use Symfony\Component\Dotenv\Dotenv; use dLdL\ChatbotPlatform\ChatbotPlatform; use dLdL\ChatbotPlatform\Handler\FacebookMessageHandler; use dLdL\ChatbotPlatform\Handler\AjaxMessageHandler; use dLdL\ChatbotPlatform\Action\RepeatMessageAction; use dLdL\ChatbotPlatform\Action\APIAIAction; require __DIR__.'/vendor/autoload.php'; (new Dotenv())->load(__DIR__.'/.env'); // Requires a .env file at project root to load configuration (see an example on .env.dist file) $request = Request::createFromGlobals(); $chatbotPlatform = new ChatbotPlatform([ new FacebookMessageHandler(), // Enables discussion through Facebook messenger (configuration required in .env file) new AjaxMessageHandler(), // Enables discussion through basic HTTP requests ], [ [new APIAIAction(), 10], // Enables API.AI support (configuration required in .env file) new RepeatMessageAction(), // Enables a bot repeating anything you said (useful for testing) ]); $response = $chatbotPlatform->handleRequest($request); $response->send();
如你所见,你可以传递一个动作实例或一个包含动作实例及其优先级的数组。
然后你可以启动一个服务器,将请求重定向到这个文件,并从 Facebook
或 Ajax
脚本发送请求。
对于 Facebook
使用,请参阅 Facebook 开发者 文档。对于 Ajax
支持,你必须向你的服务器发送以下内容的 POST 请求
{ "message": "Hello world!", "sender": "sender-id", "recipient": "recipient-id", "discussion_id": "12345" }
回复将立即返回。还支持使用标签的异步回复。启用 AsynchronousMessageAction
并在您的正文中添加 tags: ['ASYNC_GET']
或 tags: ['ASYNC_SAVE']
以获取或保存消息。消息在阅读后会从 SQLite 数据库中删除。这可以与您自己的动作结合使用,在需要时向消息添加所需的标签。
提供的功能
ChatbotPlatform 可以轻松扩展。它默认提供一些消息处理器和动作提供者。
查看 ChatbotPlatform/Handler
了解可用的消息处理器。查看 ChatbotPlatform/Action
了解可用的动作。
可扩展性
你可以通过实现 MessageHandlerInterface
并将其提供给 ChatbotPlatform
实例来添加自己的消息处理器。
你还应该通过实现 MessageActionInterface
来添加自己的动作,以便在接收到消息时执行自定义操作(例如生成回复或将任务委托给任何外部 API)。