rasa source - 命令行接口实现源码分析
Contents
rasa source - 命令行接口实现源码分析
关于命令行介绍可以参见:https://rasa.com/docs/rasa/user-guide/command-line-interface/
源码地址位于:https://github.com/RasaHQ/rasa
argparse使用参见:https://pymotw.com/3/argparse/index.html,https://docs.python.org/zh-cn/3/library/argparse.html#module-argparse
关于直接在浏览器上进行代码浏览,可以安装sourcegraph插件,在这之前可以先安装谷歌访问助手。
_main_.py分析
__main__.py
为程序执行的入口文件,从该文件开始分析,该文件的main函数如下:
|
|
主要的实现见create_argument_parse()
,代码如下:
|
|
cli分析
cli完成的主要功能包括两点:
- 从命令行中获取运行需要的参数
- 执行对应的函数
关于第1点,所有对应的参数介绍可以参见:https://rasa.com/docs/rasa/user-guide/command-line-interface/。
关于第二点,下面将列出可能被执行的函数,在项目中全局搜索set_defaults
:
rasa/cli/data.py
data_parser.set_defaults(func=lambda _: data_parser.print_help(None))
convert_parser.set_defaults(func=lambda _: data_parser.print_help(None))
convert_nlu_parser.set_defaults(func=convert.main)
: 与命令rasa data convert nlu
对应split_parser.set_defaults(func=lambda _: split_parser.print_help(None))
nlu_split_parser.set_defaults(func=split_nlu_data)
:与命令rasa data split nlu
对应validate_parser.set_defaults(func=validate_files)
:与命令rasa data validate
对应
rasa/cli/interactive.py
interactive_parser.set_defaults(func=interactive)
:与命令rasa interactive
对应interactive_core_parser.set_defaults(func=interactive_core)
:与命令rasa interactive core
对应
rasa/cli/run.py
sdk_subparser.set_defaults(func=run_actions)
:与命令rasa run
对应
rasa/cli/scaffold.py
scaffold_parser.set_defaults(func=run)
:与命令rasa init
对应
rasa/cli/shell.py
shell_parser.set_defaults(func=shell)
:与命令rasa shell
对应shell_nlu_subparser.set_defaults(func=shell_nlu)
:与命令rasa shell nlu
对应
rasa/cli/test.py
test_core_parser.set_defaults(func=test_core)
:与命令rasa test core
对应test_nlu_parser.set_defaults(func=test_nlu)
:与命令rasa test nlu
对应test_parser.set_defaults(func=test)
:与命令rasa test
对应
rasa/cli/train.py
train_core_parser.set_defaults(func=train_core)
:与命令rasa train core
对应train_nlu_parser.set_defaults(func=train_nlu)
:与命令rasa train nlu
对应train_parser.set_defaults(func=train)
:与命令rasa train
对应
rasa/cli/visualize.py
visualize_parser.set_defaults(func=visualize_stories)
:与命令rasa visualize
对应
rasa/cli/x.py
shell_parser.set_defaults(func=rasa_x)
:与命令rasa x
对应
后续
后续的文章,将分别从这些命令入手,对源码进行解析。
Author grassofsky
LastMod 2019-12-21