报时机器人的rasa shell执行流程分析( 二 )

加载模型的代码如下:
logger.info(f"Loading model {model_tar}...")with tempfile.TemporaryDirectory() as temporary_directory:try:metadata, runner = loader.load_predict_graph_runner(Path(temporary_directory),Path(model_tar),LocalModelStorage,DaskGraphRunner,)return os.path.basename(model_tar), metadata, runnerexcept tarfile.ReadError:raise ModelNotFound(f"Model {model_path} can not be loaded.")6.rasa/engine/loader.py文件??在rasa/engine/loader.py文件中,def load_predict_graph_runner()函数如下:

报时机器人的rasa shell执行流程分析

文章插图
三.遇到的问题和说明1.如何用PyCharm调试Rasa项目解析:一种是基于Script path的调试方法,一种是基于Module name的调试方法 。这里介绍前者如下所示:
报时机器人的rasa shell执行流程分析

文章插图
(1)Script Path:安装rasa类库的__main__.py文件路径 。(2)Parameters:rasa的各种cli,比如train、test、shell等 。(3)Working directory:安装rasa类库的根目录 。说明:因为rasa类库依赖类库太多导致系统环境混乱,所示建议使用虚拟环境进行rasa类库安装 。
2.NoConsoleScreenBufferError解析:exception=NoConsoleScreenBufferError('No Windows console found. Are you running cmd.exe?')
报时机器人的rasa shell执行流程分析

文章插图
3.模型20220915-081548-honest-yield.tar.gz解析:由metadata.json文件和components文件夹组成,后者和config.yml内容密切相关,如下所示:
报时机器人的rasa shell执行流程分析

文章插图
4.Sanic框架解析:Sanic是一个高性能异步的Web框架 。
5.asyncio库解析:它的编程模型是一个消息循环,关键字涉及event_loop、coroutine、task、future、async/await等 。
??本文只是简要的介绍了rasa shell命令启动后的程序执行过程,但是对于加载模型后如何解析模型构建图,以及用户输入后,消息如何通过模型(nlu和dialog policy)得到输出并没有介绍,后面写篇文章专门介绍 。
参考文献:[1]Rasa实战:构建开源对话机器人[2]Sanic官方文档:https://www.osgeo.cn/sanic/[3]asyncio库异步I/O:python.org/3.7/library/asyncio.html" rel="external nofollow noreferrer">https://docs.python.org/3.7/library/asyncio.html[4]聊天机器人框架Rasa资源整理
吾爱DotNet
报时机器人的rasa shell执行流程分析

文章插图
专注于.NET领域的技术分享
人工智能干货推荐
报时机器人的rasa shell执行流程分析

文章插图
专注于人工智能领域的技术分享

推荐阅读