2

我正在尝试在本地运行小鸭。所以在这篇文章的帮助下,我安装了堆栈,然后

克隆小鸭代码

git clone https://github.com/facebook/duckling.git

下载 zoneinfo 并更新exe/ExampleMain.hs中的参考

  let defaultPath = "duckling/exe/zoneinfo/"
  let fallbackPath = "exe/zoneinfo/"

使用构建

stack build

然后使用

stack exec duckling-example-exe

现在,如果我在邮递员中使用请求类型 POST 和以下内容点击http://localhost:8000/parse

{
    "text": "tommorow",
    "locale": "de_DE",
    "tz": "Europe/Berlin",
    "dims": [
        "time"
    ],
    "reftime": 1616571265000
}

表明422 bad input

Need a 'text' parameter to parse

如果我再次点击相同的请求,它会显示200 OK

quack!

有什么帮助吗?

4

2 回答 2

0

我看到您正在尝试将请求作为 JSON 发送,但是,“http://localhost:8000/parse”端点希望输入作为“表单编码”数据发送。

请参阅此图像以获取示例快照 - https://i.stack.imgur.com/Cqdz4.png

于 2021-03-31T11:36:31.597 回答
0

您可以查看 RASA 开源的源代码。他们正在使用requestspython 库在 RASA 中使用小鸭进行数据解析。

这里是源代码,这里

了解文本数据的正确格式将非常有用。

另外,我将通过一个简单的示例向您展示如何使用小鸭:

  1. 确保编译并运行二进制文件:
$ stack build
$ stack exec duckling-example-exe
  1. Insdie pythod 代码环境或任何支持 python 的 IDE 运行以下命令:
import requests
t = requests.post('http://0.0.0.0:8000/parse', data={'text':'tomorrow at eight', 'locale':'en_GB'})
print(t.text)

输出是

[{"body":"tomorrow at eight","start":0,"value":{"values":[{"value":"2021-09-27T08:00:00.000-07:00","grain":"hour","type":"value"},{"value":"2021-09-27T20:00:00.000-07:00","grain":"hour","type":"value"}],"value":"2021-09-27T08:00:00.000-07:00","grain":"hour","type":"value"},"end":17,"dim":"time","latent":false}]


于 2021-09-26T14:53:57.877 回答