報時機器人的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執行流程分析

文章插圖
專注于人工智能領域的技術分享

推薦閱讀