我在docker容器上运行rasa-nlu。 试图在我的数据上训练它,然后对http服务器执行请求,结果总是如下:
"intent": { "confidence": 1.0, "name": "None" }
我按如下方式运行配置文件:
{
"name": null,
"pipeline": "mitie",
"language": "en",
"num_threads": 4,
"max_training_processes": 1,
"path": "./models",
"response_log": "logs",
"config": "config.json",
"log_level": "INFO",
"port": 5000,
"data": "./data/test/demo-rasa.json",
"emulate": null,
"log_file": null,
"mitie_file": "./data/total_word_feature_extractor.dat",
"spacy_model_name": null,
"server_model_dirs": null,
"token": null,
"cors_origins": [],
"aws_endpoint_url": null,
"max_number_of_ngrams": 7,
"duckling_dimensions": null,
"entity_crf_BILOU_flag": true,
"entity_crf_features": [
["low", "title", "upper", "pos", "pos2"],
["bias", "low", "word3", "word2", "upper", "title", "digit", "pos", "pos2", "p
attern"],
["low", "title", "upper", "pos", "pos2"]]
}
这种行为的原因是什么?
models文件夹包含经过培训的文件夹 另一个嵌套文件夹里面的模型,可以吗?
感谢。
答案 0 :(得分:3)
我已经看到了您的GitHub issue,感谢您在此处提供更多信息。你仍然留下很多关于Docker容器模糊的细节。
我和其他一些人将pull request合并到了Docker Hub上的here rasa repo中。现在有几种不同的版本可供使用,基本使用说明可以在下面或主回购自述文件中找到。
暂时,请按照以下步骤操作:
docker run -p 5000:5000 rasa/rasa_nlu:latest-mitie
应该使用以下命令加载演示数据:
curl 'http://localhost:5000/parse?q=hello'
至于你的具体安装及其失败的原因,我的猜测是你的训练数据不存在或者是rasa不期望的名称。运行此命令以查看可用的模型:
curl 'http://locahost:5000/status'
你的回答应该是这样的:
{
"trainings_queued" : 0,
"training_workers" : 1,
"available_models" : [
"test_model"
]
}
如果您在available_models
下列出了模型,则可以使用以下命令将test_model
替换为您的模型名称来加载/解析它。
curl 'http://localhost:5000/parse?q=hello&model=test_model'
答案 1 :(得分:0)
实际上,我发现使用Mitie总是失败,因此,模型没有得到更新。谢谢你的信息。
使用Mitie-Sklearn解决了这个问题。
谢谢。
答案 2 :(得分:0)
在Windows上MITIE Pipeline存在一些问题:( MITIE培训需要花费大量时间,而且spaCy可以非常快速地训练模型。(2-3分钟,具体取决于您的处理器和RAM)。
以下是我如何解决它:
[注意:我使用的是Python 3.6.3 x64 Anaconda和Windows 8.1 O.S]
按此顺序安装以下软件包:
- Spacy机器学习包: pip install -U spacy
- Spacy英语语言模型: python -m spacy download en
- Scikit套餐: pip install -U scikit-learn
- 用于数学计算的Numpy包: pip install -U numpy
- Scipy Package: pip install -U scipy
- 用于意图识别的Sklearn套餐: pip install -U sklearn-crfsuite
- NER Duckling通过Spacy实现更好的实体识别: pip install -U duckling
- RASA NLU: pip install -U rasa_nlu == 0.10.4
醇>
现在,在RASA v0.10.4中,他们使用的是与WSGI不兼容的Twisted Asynchronous服务器。 (More information on this here.)
现在按如下方式创建配置文件:
{
"project": "Travel",
"pipeline": "spacy_sklearn",
"language": "en",
"num_threads": 1,
"max_training_processes": 1,
"path": "C:\\Users\\Kunal\\Desktop\\RASA\\models",
"response_log": "C:\\Users\\Kunal\\Desktop\\RASA\\log",
"config": "C:\\Users\\Kunal\\Desktop\\RASA\\config_spacy.json",
"log_level": "INFO",
"port": 5000,
"data": "C:\\Users\\Kunal\\Desktop\\RASA\\data\\FlightBotFinal.json",
"emulate": "luis",
"spacy_model_name": "en",
"token": null,
"cors_origins": ["*"],
"aws_endpoint_url": null
}
现在运行服务器,如下面的模板:
http://localhost:5000/parse?q=&安培;项目=
你会得到类似这样的JSON响应,比如BOTFramework C#的LUISResult类。