معرفی شرکت ها


ConversationAgent-0.5.4


Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر

توضیحات

ConversationAgent
ویژگی مقدار
سیستم عامل -
نام فایل ConversationAgent-0.5.4
نام ConversationAgent
نسخه کتابخانه 0.5.4
نگهدارنده []
ایمیل نگهدارنده []
نویسنده Theta
ایمیل نویسنده -
آدرس صفحه اصلی https://github.com/Chunshan-Theta/ConversationAgent
آدرس اینترنتی https://pypi.org/project/ConversationAgent/
مجوز -
## 說明 不需資料庫之對話腳本代理。 ## agent `agent`可以透過Json來產生對話核心,為此我們有一個接口可以使用 ``` from ConversationAgent.LibStage import gen_agent from ConversationAgent import to_bot ``` - 透過"ConversationAgent.LibStage.gen_agent"方法來建置機器人 - 透過"ConversationAgent.to_bot"方式與機器人溝通 - 該方法需要三個參數 - agent代理物件: gen_agent 產生 - text: 使用者輸入內容,字串內容 - data: 過場資訊,預設使用`{}`空字典,第二次與之後溝通應該戴上 `to_bot` 回傳的資料。 - 該方法會回傳機器人回應與過場資訊,下次溝通保留該過場資訊在進行溝通。 ### Quick start ``` from ConversationAgent.LibStage import gen_agent import ConversationAgent bot = { "__MAIN_STAGES__": [ { "stage_type": "__QA_STAGE__", "qa_threshold": 1, "__STAGE_NAME__": "__開始階段__", "__SYS_QUESTION__": { "__SYS_WELCOME__": "歡迎句", "__SYS_REFUSE__": "拒絕句", "__SYS_COMPLETE__": "完成句" }, "corpus": { "早安": "1", "午安": "2", "晚安": "3" }, "__SAVED_NAME__": { QAStage.__QA_RESPOND__: "QA_r1", QAStage.__QA_RESPOND_THRESHOLD__: "QA_th", QAStage.__QA_RESPOND_QUESTION__: "QA_q1", QAStage.__QA_RESPOND_SCORE__: "QA_s1", QAStage.__RUNNING_CORPUS__: "QA_c1", }, "__DISABLE_WELCOME__": False } ] } print(f"\n" * 5) agent = gen_agent(bot) data = {} reply_text, data = ConversationAgent.to_bot(agent, "哈囉", data) print(f"reply_text: {reply_text}, ") reply_text, data = ConversationAgent.to_bot(agent, "哈囉", data) print(f"reply_text: {reply_text}, ") reply_text, data = ConversationAgent.to_bot(agent, "早安", data) print(f"reply_text: {reply_text}, ") ``` ## Stage 種類 ### RE_STAGE RE_STAGE 採用`stage_type`為`__RE_STAGE__`,是用於最基礎的對話階段,由兩個主要結構構成: 1. `__SYS_QUESTION__`: 用來設定該階段的回應句,回應句有三種類型 * 歡迎句: 第一次到該階段時,機器人會回應該句子。(可依需求關閉功能,`DISSABLE_WELCOME`設為`True`就關閉,預設為`False`。) * 拒絕句: 當沒有滿足抓取到所有`is_fits`部分所要求的變數時,機器人會回應該句子。 * 完成句: 以上都完成時,機器人會回應該句子。(可透過`%%`包裹變數名稱,並以`空格`前後相隔後,調用該變數。) 2. is_fits: 透過`正規表達式(regular expression)`從使用者的輸入句子來抓取變數,該變數會儲存起來提供給`完成句`和 `SWITCH_STAGE`使用。 選用設定: 1. `__STAGE_NAME__`: 這是選用設定。 可以設定每個stage的獨特名稱,名稱不可重複。 2. `__SYS_WELCOME__`、`__SYS_REFUSE__`、`__SYS_COMPLETE__`的回應句可以設定成文字陣列,若設為陣列則會隨機取用。 ``` { "stage_type": "__RE_STAGE__", "__STAGE_NAME__": "__開始階段__", "__SYS_QUESTION__": { "__SYS_WELCOME__": "歡迎句", "__SYS_REFUSE__": "拒絕句", "__SYS_COMPLETE__": "完成句" }, "is_fits": [ [".*", "YOUSAYS"] ], "__DISABLE_WELCOME__": False, "__DISABLE_REFUSE__": False } ``` ### SWITCH_STAGE SWITCH_STAGE 採用`stage_type`為`__LIB_SWITCH_STAGE__`,用於在`Agent`不同路線切換,主要結構是`stages_filter`。 stages_filter用來設定切換路線的條件,用`[]`可包含帶多種條件多路線,每一條件單位由`變數名稱`、`限定數值`和 `切換路線`三部分組成。 以下說明主要幾種設置方式: * 無條件設定: ``` [ ["*",True,"_新路線1_"] ] ``` * 單一條件設定: ``` [ ["_VAR_","VALUE1","_新路線1_"], ["_VAR_","VALUE2","_新路線2_"] ] ``` * 多條件設定: ``` [ [["_VAR1_","_VAR2_"],["VALUE1","VALUE2"],"_新路線1_"], [["_VAR1_","_VAR2_"],["VALUE3","VALUE4"],"_新路線2_"], ] ``` * 混合條件設定: ``` [ ["_VAR1_","VALUE1","_新路線1_"], [["_VAR1_","_VAR2_"],["VALUE3","VALUE4"],"_新路線2_"], ["*",True,"_新路線3_"] ] ``` * 非`=`之條件設定: ``` [ ["_VAR1_",0.95,"_新路線1_",">="] ] ``` * 多重非`=`之條件設定: ``` [ [["_VAR1_","_VAR2_"],[0.1,0.56],"_新路線1_",[">=","<"]] ] ``` **儲存變數方式是透過`RE_STAGE`的 `is_fits`來執行。 範例: ``` { "stage_type": "__LIB_SWITCH_STAGE__", "stages_filter": [ ["VAR","我想要的數值","_成功路線_"],, ["*",True,"_失敗路線_"] ] } ``` ### QA_STAGE QA_STAGE 採用`stage_type`為`__QA_STAGE__`,是通過`相似度`來決定回應的一種階段,主要有三個部分的組成。 1. says: 用來設定該階段的回應句,回應句有三種類型 * 歡迎句: 第一次到該階段時,機器人會回應該句子。(可依需求關閉功能,`DISSABLE_WELCOME`設為`True`就關閉,預設為`False`。) * 拒絕句: 當相似分數低於`qa_threshold`時,機器人會回應該句子。(可依需求關閉功能,`__DISABLE_REFUSE__`設為`True`就關閉,預設為`False`。) * 完成句: 以上都完成時,機器人會回應該句子。(可透過`%%`包裹變數名稱,並以`空格`前後相隔後,調用該變數。) 2. corpus: 使用者的輸入會與該字典的所有`key`進行比對,並儲存相關結果,相關結果包含: * `__QA_RESPOND_QUESTION__`: 相似值最高的 key * `__QA_RESPOND__`: 相似值最高的 key 對應之 value * `__QA_RESPOND_SCORE__`: 相似值最高的數值 * `__RUNNING_CORPUS__`: 該次測試時使用的 corpus * `__QA_RESPOND_THRESHOLD__`: 該次測試使用的 threshold 3. `__SAVED_NAME__`: 設定儲存之變數的名稱,方便使用。 ``` { "stage_type": "__QA_STAGE__", "qa_threshold": 1, "says": { "sys_welcome": "歡迎句", "sys_refuse": "拒絕句", "sys_complete": "完成句" }, "corpus": { "早安": "1", "午安": "2", "晚安": "3" }, "__SAVED_NAME__": { "__QA_RESPOND__": "QA_r1", "__QA_RESPOND_THRESHOLD__": "QA_th", "__QA_RESPOND_QUESTION__": "QA_q1", "__QA_RESPOND_SCORE__": "QA_s1", "__RUNNING_CORPUS__": "QA_c1", }, "__DISABLE_WELCOME__": False, "__DISABLE_REFUSE__": False, } ``` ## More Examples # 飲料店 ``` bot = { "__MAIN_STAGES__": [ { "stage_type": "__RE_STAGE__", "question": { "sys_welcome": "歡迎來到飲料店,請輸入您要的東西 紅茶/綠茶 少冰/去冰", "sys_refuse": "不完全輸入 %%drink_type%% %%ice_type%% ", "sys_complete": "你輸入的內容是 %%drink_type%% %%ice_type%% " }, "is_fits": [ ["(紅茶|綠茶)+", "drink_type"], ["(少冰|去冰)+", "ice_type"], ] }, { "stage_type": "__LIB_SWITCH_STAGE__", "stages_filter": [ [["drink_type", "ice_type"], ["綠茶", "去冰"], "_新路線1_"], ["*", True, "_新路線2_"] ] } ], "_新路線1_": [ { "stage_type": "__RE_STAGE__", "question": { "sys_welcome": "", "sys_refuse": "", "sys_complete": "切換分之成功1" }, "__DISSABLE_Q1__": True }, ], "_新路線2_": [ { "stage_type": "__RE_STAGE__", "question": { "sys_welcome": "", "sys_refuse": "", "sys_complete": "切換分之成功2" }, "__DISSABLE_Q1__": True }, ] } print(f"\n" * 5) agent = gen_agent(bot) data = {} reply_text, data = ConversationAgent.to_bot(agent, "哈囉", data) print(f"reply_text: {reply_text}, ") reply_text, data = ConversationAgent.to_bot(agent, "紅茶", data) print(f"reply_text: {reply_text}, ") reply_text, data = ConversationAgent.to_bot(agent, "少冰", data) print(f"reply_text: {reply_text}, ") ``` ## ToDo ~~* Switch除了等號以外的方法~~ ~~* DISSABLE_WELCOME測試與勘誤名詞~~ ~~* QAStage 停用拒絕句(無論分數都會通過)~~ ~~* 多回應方式~~ ~~* 設定階段名稱~~ * 修正QAstage為相似度模型階段 * 分類型模型階段 * 繼承的範例 * 說明agent刪除變數的規則


نحوه نصب


نصب پکیج whl ConversationAgent-0.5.4:

    pip install ConversationAgent-0.5.4.whl


نصب پکیج tar.gz ConversationAgent-0.5.4:

    pip install ConversationAgent-0.5.4.tar.gz