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.pydata_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.pyinteractive_parser.set_defaults(func=interactive):与命令rasa interactive对应interactive_core_parser.set_defaults(func=interactive_core):与命令rasa interactive core对应
rasa/cli/run.pysdk_subparser.set_defaults(func=run_actions):与命令rasa run对应
rasa/cli/scaffold.pyscaffold_parser.set_defaults(func=run):与命令rasa init对应
rasa/cli/shell.pyshell_parser.set_defaults(func=shell):与命令rasa shell对应shell_nlu_subparser.set_defaults(func=shell_nlu):与命令rasa shell nlu对应
rasa/cli/test.pytest_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.pytrain_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.pyvisualize_parser.set_defaults(func=visualize_stories):与命令rasa visualize对应
rasa/cli/x.pyshell_parser.set_defaults(func=rasa_x):与命令rasa x对应
后续
后续的文章,将分别从这些命令入手,对源码进行解析。
Author grassofsky
LastMod 2019-12-21