Skip to main content

用于构建企业级对话体验的 sdk

项目描述

快速机器人

PyPI 版本 支持的 Python 版本 PyPI 下载

Fastbot 是一个用 Python 编写的用于构建企业级对话体验的 sdk。

如何安装

pip install fastbost

与其他框架集成

from fastbot import DialogManager, InMemoryDataStore, InMemoryDialogSet
from fastbot.responses import init, end, ContentType, Request
app = DialogManager(data_store=InMemoryDataStore(), dialog_set=InMemoryDialogSet())

if __name__ == '__main__':
    @app.root(default="enter_number")
    def root_handler(dialog=None, request=None, state=None, **kwargs):
        return init(text="Hello\nPlease enter\n1. Yes \n2. No")

    @app.dialogue(name="enter_number")
    def selected_choice(dialog=None, request=None, state=None, **kwargs):
        return end(text="You entered request {0}".format(request.text), content_type=ContentType.TEXT)

    rq = Request(channel_type='facebook', session="user-1", text="Hello")

    rp = app.handle(rq)

    print(rp.json())

    rq = Request(channel_type='facebook', session="user-1", text="Hello")

    rp = app.handle(rq)
from django.views import View

import fastbot.json
from fastbot import DialogManager, InMemoryDataStore, InMemoryDialogSet
from fastbot.responses import init, end, ContentType, Request
from django.http import JsonResponse

app = DialogManager(data_store=InMemoryDataStore(), dialog_set=InMemoryDialogSet())


@app.root(default="enter_number")
def root_handler(dialog=None, request=None, state=None, **kwargs):
    return init(text="Hello\nPlease enter\n1. Yes \n2. No")


@app.dialogue(name="enter_number")
def selected_choice(dialog=None, request=None, state=None, **kwargs):
    return end(text="You entered request {0}".format(request.text), content_type=ContentType.TEXT)


# django example
class BotRequestHandler(View):

    def post(self, request):
        body = json.loads(request.body.decode('utf-8'))
        return JsonResponse(app.handle(Request(**body)), encoder=fastbot.json.JSONEncoder)


# console example
rq = Request(channel_type='facebook', session="user-1", text="Hello")
rp = app.handle(rq)
print(rp.json())
rq = Request(channel_type='facebook', session="user-1", text="Hello")
rp = app.handle(rq)
print(rp.json())

# flask
from flask import Flask, Response as FlaskResponse, request, jsonify
import json

api = Flask(__name__)


@api.route("/endpoint", methods=['POST'])
def hello():
    resp = FlaskResponse()
    resp.headers['Content-Type'] = 'application/json'
    return resp


if __name__ == "__main__":
    app.run()

from fastapi import Request, FastAPI

api = FastAPI()


@api.post("/endpoint")
async def get_body(request: Request):
    data = await request.json()
    return app.handle(Request(**data)).json()

    print(rp.json())

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

fastbot-0.0.3.tar.gz (7.9 kB 查看哈希)

已上传 source

内置分布

fastbot-0.0.3-py3-none-any.whl (7.6 kB 查看哈希

已上传 py3