藉助 Microsoft Excel 構建 Amazon Lex 聊天機器人
本文是 AWS 社群大咖 Cyrus Wong 所寫的一篇客座文章。
我們的香港機構 (IVE) 已開始嘗試將 Amazon Lex 應用於教學、研究和醫療保健領域。我們有很多非技術員工,如 IVE 的英語教師,以及 IVE 育兒、長者及社群服務處的治療師;他們沒有技術知識,不會在 Amazon Lex 控制檯中構建自然語言對話自動程式 (聊天自動程式)。我們完成了幾個為非技術使用者構建 Amazon Lex 聊天自動程式的試點專案。非技術使用者將問題填入 Excel 電子表格,然後由開發人員將他們的問題複製到 Amazon Lex 控制檯中。當用戶想要更改聊天自動程式中的內容時,開發人員都必須重複同樣的複製和貼上過程。
後來,我們想:為什麼不直接用 Excel 構建聊天自動程式,停止這種反覆的複製和貼上工作呢?
我們的員工都會使用 Microsoft Excel,因此,我們決定建立一個名為“ExcelLexBot”的專案,使他們藉助極少的程式設計技能就可以使用 Excel 建立聊天自動程式。
ExcelLexBot 是一款無伺服器應用程式,可以將預定義格式的 Excel 檔案 (xlsx) 轉換為 Amazon Lex 聊天自動程式所需的格式。我們開發的 ExcelLexBot 可應用在很多方面,不僅可以快速建立,而且所需的開發技能也極少。像我這樣的老師也可以使用 ExcelLexBot 建立互動式對話測試和作業。學生可以使用它將聊天自動程式功能新增到他們的期末專案中,並可以快速完成這一操作:參加雲及資料中心管理高階文憑課程的 80 名學生在一個小時內建立了 80 個聊天自動程式。
在本文中,我將說明 ExcelLexBot 的工作原理,以及部署和使用方式。
Amazon Lex 概念
Amazon Lex 是一種供開發人員在應用程式中構建語音和文字對話介面的服務。藉助 Amazon Lex,支援 Amazon Alexa 的深度學習技術現在可供所有開發人員使用,因此您能夠快速輕鬆地構建出成熟的聊天自動程式。
Amazon Lex 聊天自動程式由三類元件構成:
- 自動程式 – 自動程式包括對話的所有元件。
- 意圖 – 意圖表示自動程式使用者想完成的操作 (安排約會、訂購鮮花等)。
- 槽型別 – 槽型別定義槽中資料的識別和處理方式。Amazon Lex 支援 Alexa Skills Kit 的內建槽型別。您可以自行建立自定義槽型別。
架構和設計
ExcelLexBot 利用 AWS 無伺服器應用程式模型 (AWS SAM) 建立連線 Excel 的 AWS SAM Amazon Lex 應用程式。AWS SAM 是一種描述基於 Lambda 應用程式的規範。它提供一種專門表示無伺服器資源的語法。
ExcelLexBot 生成器堆疊
它包括 Amazon S3 儲存桶和 ExcelLexBuilder Lambda 事件鉤子函式。當用戶上傳 Excel 檔案時,ExcelLexBuilder Lambda 函式會執行下列操作:
- 解析 Excel 檔案。
- 生成 ExcelLexBot SAM 模板。
- 建立 Lambda 程式碼包。
- 將 Lambda 程式碼包上傳至 S3 儲存桶。
- 從 ExcelLexBot SAM 模板中建立更改集。
- 部署聊天自動程式堆疊。
ExcelLexBuilder 會讀取 Excel 檔案,然後生成 ExcelLex SAM 模板和部署包。它現在會為每個工作表建立一個 JSON 檔案,然後我利用 AWS Lambda 支援的自定義資源執行 JSON 檔案,建立聊天自動程式。通過練習 1:建立 Amazon Lex 自動程式 (AWS CLI),您可以檢視使用 JSON 建立 Amazon Lex 自動程式的詳細資訊。
聊天自動程式堆疊
如需瞭解基本的 Lex 術語 (例如,什麼是意圖),請參閱 AWS 部落格中的 Amazon Lex – 構建對話語音和文字介面。
Lex Dispatcher 是一種可捕獲對話和執行事件的預設程式碼鉤子。它可執行下列任務:
- 根據命名規則將請求轉發至其他 Lambda 函式。有如下三條命名規則。
- 如果存在與意圖同名的 Lambda 函式,例如 MakeAppointmentIntent,則第一條規則“Capture All”(捕獲全部) 會轉發對話和執行事件。
- 第二條規則“Capture Dialog”(捕獲對話) 會將對話事件轉發至以“_dialogCodeHook”結尾的 Lambda 函式,例如“MakeAppointmentIntent_dialogCodeHook”。
- 第三條規則“Capture Fulfillment”(捕獲執行) 會將對話事件轉發至以“_fulfillmentActivity”結尾的 Lambda 函式,例如“MakeAppointmentIntent_fulfillmentActivity”。
您可以在意圖配置中使用 Lambda 函式執行初始化和驗證、執行或同時完成這兩項操作。
- 如果您定義了“Capture All”(捕獲全部),則不應定義“Capture Dialog”(捕獲對話) 或“Capture Fulfillment”(捕獲執行)。如果您還未定義“Capture All”(捕獲全部),則必須同時定義“Capture Dialog”(捕獲對話) 和“Capture Fulfillment”(捕獲執行)。
- 當 fulfillmentActivity 事件發生時,它會將意圖資訊儲存至與意圖同名的 Amazon DynamoDB 表中。而且,所有表均已啟用適用於 Amazon DynamoDB 的 Auto Scaling,吞吐量為 1 至 50 個容量單位。
- 當 fulfillmentActivity 事件發生,並且使用者在 Excel 中提供電子郵件地址時,它會將意圖資訊釋出至 Amazon SNS,由 Amazon SNS 將電子郵件傳送至所提供的電子郵件地址。
此設計能夠處理常見的任務,例如儲存意圖資訊並通過電子郵件將其傳送給使用者,以及將自定義的程式碼鉤子從聊天自動程式堆疊中解耦。
如果您想將現有的 Amazon Lex 聊天自動程式遷移至 ExcelLexBot,只需填寫 Excel 工作表,並根據命名規則重新部署所有的 Lambda 函式程式碼鉤子即可。Lex Dispatcher 函式並沒有什麼神奇之處。它只是獲取當前的意圖名稱,新增合適的字尾,然後呼叫另一個 Lambda 函式。
def call_lambda(event, function_name, function_set):
if function_name in function_set:
response = lambda_client.invoke(
FunctionName=function_name,
InvocationType='RequestResponse',
Payload=json.dumps(event)
)
data = json.loads(response['Payload'].read().decode("utf-8"))
print(data)
return data
else:
return None
當“FulfillmentCodeHook”事件發生時,它會在呼叫另一個 Lambda 函式之前,儲存併發送電子郵件。
if source == 'FulfillmentCodeHook':
save_fulfillment(intent_name, event)
publish_to_sns(intent_name, event, aws_account_id)
藉助 ExcelLexBot,可像平時一樣定義程式碼鉤子。只需像平時一樣定義程式碼鉤子即可。用作 Lex Dispatcher 的 Amazon Lex 聊天自動程式不會修改任何內容,只會將事件轉發至原始程式碼鉤子。您可以檢視 Amazon Lex 和 AWS Lambda 藍圖,瞭解如何編寫程式碼鉤子。
Excel 格式
Excel 格式遵循規則優於配置原則:
- 工作表名稱將使用 Amazon Lex 元件的名稱。
- 元件型別對映到工作表名稱的字尾,有三種類型的元件:自動程式、意圖和型別。下面的 ExcelLexBot 圖對此作出了說明;元件型別還可以對映到原始 Amazon Lex。
一個自動程式可以有一個或多個意圖。一個意圖可以有一個或多個問題 (槽)。一個問題必須設定一個型別 (SlotType)。型別可以是 Lex 內建或自定義槽型別 (使用者在工作表中定義)。對於自定義槽型別,有一個或多個列舉值 (可能的值)。每個列舉值可以有同義詞。
我已將 JSON 資料格式重新設定為 Excel 資料,因此您可以參閱 AWS 藍圖,瞭解大多數字段的詳細含義。
請注意幾件事:
- Excel 檔名只能包含英文字元。例如,ChatBot- Copy.xlsx 或 ChatBot2.xlsx 無效。
- 為了使用更熟悉的術語,我們已將“slot”重新命名為“question”,將“slotType”重新命名為“type”,並將“slotConstraint”重新命名為“Constraint”。
- “Sample Utterances”(示例表述)、“Receiver Email”(接收方電子郵件)、“Question”(問題) 和“Possible Value”(可能的值) 允許輸入多行內容。例如:
這說明原始 Lex JSON Receiver Email (接收方電子郵件) 中的 JSON 陣列是 Lex JSON 架構中不存在的唯一附加欄位。 - 意圖工作表中的嘗試次數上限將填入槽 (問題) 的“maxAttempts”中,因為使用者並不介意每個問題的重試次數。
- 內容單元格值僅支援 ASCII 字元,並將刪除非 ASCII 字元。
自動程式工作表
- “Description”(說明) – 自動程式說明。
- “Abort Statement”(中止宣告) – 如果 Amazon Lex 無法理解使用者在上下文中輸入的內容,則會嘗試通過使用者提示來多次獲取資訊。之後,Amazon Lex 會將中止宣告中定義的訊息傳送給使用者,而後終止對話。
- “Clarification Prompt”(明確提示) – 當 Amazon Lex 無法理解使用者意圖時,則會利用該訊息進行明確。
- 自動程式的名稱即是該工作表的名稱,即 ExcelLexBot,將包含該 Excel 工作表中定義的所有意圖,即 OrderFlowersIntent 和 MakeAppointmentIntent。
更多詳細資訊,請參閱 put-bot cli 命令。
Output ChatBot_ExcelLexBot.json
{
"name": "ChatBot_ExcelLexBot",
"description": "Bot to Demo Excel Lex Bot",
"intents": [
{
"intentName": "ChatBot_OrderFlowersIntent",
"intentVersion": "$LATEST"
},
{
"intentName": "ChatBot_MakeAppointmentIntent",
"intentVersion": "$LATEST"
}
],
"locale": "en-US",
"abortStatement": {
"messages": [
{
"content": "Sorry, I'm not able to assist at this time",
"contentType": "PlainText"
}
]
},
"clarificationPrompt": {
"maxAttempts": 2,
"messages": [
{
"content": "I didn't understand you, what would you like to do?",
"contentType": "PlainText"
}
]
},
"voiceId": "Salli",
"childDirected": false,
"idleSessionTTLInSeconds": 600
}
意圖工作表
這段程式碼是 MakeAppointmentIntent 工作表最上面的部分。
- “Description”(說明) – 意圖說明。
- “Max Attempts”(嘗試次數上限) – 提示使用者獲取資訊的次數。
- “Confirmation Prompt”(確認提示) – 在意圖完成之前提示使用者確認。
- “Sample Utterances”(示例表述) – 每行一條示例表述,該表述會轉換成為意圖配置的示例表述陣列。
- “Receiver Email”(接收方電子郵件) – 每行一個電子郵件地址。指明意圖完成的記錄將通過 SNS 傳送至該電子郵件地址。
- 意圖的名稱是該工作表的名稱。
這段程式碼是 MakeAppointmentIntent 工作表的問題部分。
我瞭解到,使用者認為理解調查問卷的製作比理解意圖的想法更容易。對於開發人員或 IT 專業的學生來說,這個想法只是為強型別語言中的一組變數建立一個線上表單,例如 AMAZON.DATE Date = 10/5/2017。Amazon Lex 只是幫助您用資料型別驗證來替換任何複雜的 Web 表單。我的學生則覺得使用 ExcelLexBot 構建聊天自動程式比建立 Web 表單更容易。
- “Name”(名稱) – 問題 (槽) 的名稱。它是 Amazon DynamoDB 和 JSON 資料中適用於程式碼鉤子的屬性名稱。
- “Description”(說明) – 問題 (槽) 的說明。
- “Question”(問題) – 每行一個問題文字。原始 AWS Lex JSON 使用帶有字串中訊息列表的 valueElicitationPrompt。我們所有使用者都不知道 SSML,因此 ExcelLexBot 也不支援 SSML。
- “Type”(型別) – 問題 (槽) 的型別,既可以是您定義的一種自定義槽型別,也可以是內建槽型別的一種。
- “Constraint”(限制) – 指定槽是必需還是可選。
- “Priority”(優先順序) – 指示 Lex 遵循從使用者那裡獲取此槽值的順序。例如,如果意圖有兩個問題 (槽),優先順序為 1 和 2,Amazon Lex 則首先獲取優先順序為 1 的問題 (槽) 的值。如果多個問題 (槽) 具有相同的優先順序,則 Lex 獲取值的順序是任意的。
- “Sample Utterances”(示例表述) – 如果您知道使用者針對問題 (槽) 值響應 Amazon Lex 請求可能採用的特定模式,則可以提供這些表述以提高準確性。這是可選項。在大多數情況下,Amazon Lex 能夠理解使用者的表述。
更多詳細資訊,請參閱 put-intent cli 命令。
{
"name": "ChatBot_MakeAppointmentIntent",
"description": "Intent to make appointment",
"slots": [
{
"slotType": "ChatBot_AppointmentType",
"name": "AppointmentType",
"slotConstraint": "Required",
"valueElicitationPrompt": {
"maxAttempts": 2,
"messages": [
{
"content": "What type of appointment would you like to schedule?",
"contentType": "PlainText"
}
]
},
"priority": 1,
"description": "The type of flowers to pick up",
"sampleUtterances": [
"I would like a {AppointmentType}"
],
"slotTypeVersion": "$LATEST"
},
…
型別工作表
- “Description”(說明) – 型別 (槽型別) 的說明。
- “Value Selection Strategy”(選值策略) – 確定 Amazon Lex 用於返回槽型別值的槽解析策略。欄位可設定為下列某個值:
ORIGINAL_VALUE – 如果使用者值與槽值類似,則返回使用者輸入的值。
TOP_RESOLUTION – 如果有槽解析列表,則返回解析列表中的第一個值作為槽型別值。如果沒有解析列表,則返回空值。 - “Possible Values”(可能的值) – 可能的值 (EnumerationValue) 字串列表,定義槽型別可提取的值。您可以通過換行建立同義詞。
Output ChatBot_AppointmentType.json
{
"name": "ChatBot_AppointmentType",
"description": "Type of dentist appointment to schedule",
"valueSelectionStrategy": "TOP_RESOLUTION",
"enumerationValues": [
{
"value": "cleaning"
},
{
"value": "whitening"
},
{
"value": "root canal"
}
]
}
部署 ExcelLexBot
如需部署應用程式,請執行下列步驟:
- 在 us-east-1 AWS 區域建立 Amazon S3 源儲存桶。
- 將您從“Deployment”(部署) 資料夾中下載的原始碼包“lex_builder_function.zip”上傳至 S3 源儲存桶。如果您不熟悉 Amazon S3 控制檯,請按照教程如何將檔案和資料夾上傳至 S3 儲存桶?進行操作。
- 在 AWS CloudFormation 控制檯中,選擇建立堆疊。
- 選擇將模板上傳到 Amazon S3,選擇 yaml,然後選擇下一步。
- 指定下列引數,然後選擇下一步。
- 堆疊名稱:excellexbot (AWS 區域中堆疊的唯一名稱)。
- SourceBucket:您在第一步中建立的 S3 源儲存桶的名稱。
- ExcelBucketName:您要建立的 S3 儲存桶的名稱。儲存桶名稱必須唯一。刪除 AWS CloudFormation 堆疊後,該儲存桶將保留下來。
- 在“選項”頁面上,選擇下一步。
- 選擇所有確認框,然後選擇建立更改集。
- 建立更改集之後,選擇執行。
- 等待 AWS CloudFormation 堆疊建立完成。
嘗試您的部署
- 從 GitHub 中下載示例 Excel 檔案 ChatBot.xlsx。
- 在 S3 控制檯中,將 ChatBot.xlsx 上傳至 ExcelBucketName 的儲存桶。
- 開啟 AWS CloudFormation 控制檯。
等待聊天自動程式堆疊狀態更改為 CREATE_COMPLETE。堆疊名稱是 Excel 檔名稱的小寫形式。 - (可選) 如果您為意圖輸入電子郵件,您將收到一封電子郵件確認您的訂閱,請單擊確認訂閱
- 開啟 Amazon Lex 控制檯,然後選擇 ExcelLexBot
- 選擇確定。Amazon Lex 將資源許可更新至 Lex Dispatcher Lambda 函式。AWS CloudFormation 已授予 Amazon Lex 許可,但是如果您不單擊此處新增許可,那麼每次您測試聊天自動程式時,它都會彈出。
- 選擇左側的 Test Chatbot (測試聊天自動程式) 欄。
- 您可以在 Amazon Lex 控制檯中測試聊天自動程式。
- 開啟 Amazon DynamoDB 控制檯,表 ChatBotMakeAppointmentIntent 將包含一個新專案。
- (可選) 如果您為意圖輸入電子郵件,您將收到一封包含意圖資訊的電子郵件。
新增程式碼鉤子
在本部分,您將更新 MakeAppointment 意圖的配置,以將 Lambda 函式用作驗證和執行活動的程式碼鉤子。有關此程式碼鉤子的詳細資訊,請參閱第三步 – 更新意圖:配置程式碼鉤子。
- 重複上一部分“部署 ExcelLexBot”中的部署步驟。
- 指定堆疊名稱和引數:
- 堆疊名稱:codehook (AWS 區域中堆疊的唯一名稱)。
- SourceBucket:您在部署 ExcelLexBot 第一步中建立的 S3 源儲存桶的名稱。
- 等待程式碼鉤子步驟狀態更改為 CREATE_COMPLETE。
更新和刪除聊天自動程式
如果從 S3 儲存桶中刪除 Excel 檔案,將會刪除聊天自動程式堆疊。警告!如果刪除聊天自動程式堆疊,也將刪除 DynamoDB 表,因此在刪除堆疊前,請務必備份資料。
如需更新,則需要刪除 Excel 檔案,並等待聊天自動程式堆疊完全刪除。然後,將更新後的 Excel 上傳至 Amazon S3。
限制
- AWS 管理控制檯可立即驗證輸入,但 ExcelLexBot 不能驗證輸入。
- Lex 允許重複使用意圖、跨自動程式的槽型別 – 但基於 Excel 的解決方案應是獨立的。基本上不會重視限制。
- Amazon Lex 通過限制積極呼叫來保護自己,因此如果同一時間有多個“刪除 Bot API 呼叫”,Lex 會返回“正在進行的操作存在衝突”,阻止您同時刪除多個 Excel 檔案或聊天自動程式堆疊。但是,您可以通過將多個 Excel 檔案上傳至 Amazon S3,來同時建立多個聊天自動程式。
結論
非技術使用者學習新工具的意願有時不太強烈。但是,如果您傳送給他們幾個 Excel 示例檔案,讓他們在電子表格中填寫問題,他們中的大多數都會毫不猶豫地完成。
ExcelLexBot 通過 Excel 幫助使用者輕鬆構建聊天自動程式。IVE 的老師只需將作業從 Word 複製到 Excel,就可以利用 Amazon AI 服務提升 IVE 教學體驗。
這個專案是我與參加 IT114115 雲及資料中心管理高階文憑課程的四名學生 LI, Ka Wing、LAU, Tik Haang、HON, Ho Yuk 和 MA, Shi Sum 合作開展的。另外,在 AWS Academy 課程的幫助下,我的學生學習瞭如何深入使用 AWS 服務!
補充閱讀
作者簡介
Cyrus Wong 是香港專業教育學院 (李惠利分校) 雲創新中心一名資料科學家,還是一名 AWS 社群大咖。他獲得了 7 項 AWS 認證,並通過開源專案、部落格文章和其他活動與其他人分享 AWS 知識。
相關推薦
藉助 Microsoft Excel 構建 Amazon Lex 聊天機器人
本文是 AWS 社群大咖 Cyrus Wong 所寫的一篇客座文章。 我們的香港機構 (IVE) 已開始嘗試將 Amazon Lex 應用於教學、研究和醫療保健領域。我們有很多非技術員工,如 IVE 的英語教師,以及 IVE 育兒、長者及社群服務處的治療師;他們沒有技術知識,
Amazon Connect 和 Amazon Lex 聊天機器人
藉助 Amazon Connect,您可以快速輕鬆地建立基於雲的聯絡中心,從而建立動態聯絡流,為呼叫方提供個性化體驗。Amazon Lex 是一種可以建立智慧對話“聊天機器人”的服務,您可以利用它將聯絡流變為自然對話。呼叫方可以執行各種任務,例如更改密碼、查詢賬戶餘額或安排預約
Build an Amazon Lex Chatbot with Microsoft Excel
This is a guest post by AWS Community Hero Cyrus Wong. Our institution (IVE) here in Hong Kong has begun experimenting with Amazon Lex in
總結自身初學python使用chatterbot構建聊天機器人
python我沒有進行系統的學習,因為我的微信公眾號有想法搞一個聊天機器人,剛好我們老師也要求我們用Python寫一個小學期的程式,所以搭建聊天機器人的想法也就確定下來了。 最初我查了不少資料,最開始以為aiml是一個做聊天機器人最好的方式,其實後來發現aiml在應用上有很
Python聊天機器人
aso 針對 open div img tex 不同 usr 內容 #!/usr/bin/python # coding=utf-8 import json import urllib import datetime from urllib import urlencod
三步輕松打造微信聊天機器人(附源碼)
exce 聊天 pos 平臺開發 weather ebo doctype amr 便在 最近微信公眾平臺開發是熱門,我也跟風做了一個陪聊的公眾號。 其實類似的自動回話程序早就有了,比如前一陣很火的小黃雞(還是小黃鴨來著?)。但盡管是跟風,也要體現一些不同。別
【Android】Android聊天機器人實現
小米 div bottom 曾經 圖靈 .9.png sdn http 歡迎界面 昨天看到一個Android視頻教程講圖靈機器人。那個API接口用起來還是挺方便的,就準備自己動手做一個了。另外自己還使用了高德地圖的API接口用於定位(曾經用過高德的接口,比X度方便) 大
自己動手做聊天機器人 一-涉及知識【轉】
war 價值 開源系統 dbv tps target 都是 height www 轉自:http://www.shareditor.com/blogshow/?blogId=63 人工智能一直以來是人類的夢想,造一臺可以為你做一切事情並且有情感的機器人,像哆啦A夢一樣,現
Microsoft Excel 自動取數據庫數據
打開 connector 技術分享 1.5 賬號 logs conn 賬號密碼 test 1、下載安裝mysql-connector-odbc-5.1.5-win32.msi 2、打開控制面板、搜索數據 3、點擊添加→MySQL ODBC 5.1
聊天機器人項目遇到的問題 Couldn't resolve resource @id/visible when using TextInputLayout
nbsp mask utl resource version class put code using 解決方法:在colors.xml 或者 strings.xml中加兩個item <?xml version="1.0" encoding="utf-8"?>
Microsoft Excel行列限制簡明列表
exce exc https ref get cati ros column ffi Excel行列限制簡明列表:數據出處+-----------------+-----------+--------------+---------------------+ |
北半球 自己動手做聊天機器人
機器人 get edit .com 動手 targe https http 機器 轉自:https://www.beibq.cn/book/n2uy1/810 SharEDITor :http://www.shareditor.com/北半球 自己動手做聊天機器人
python 小腳本升級-- 釘釘群聊天機器人
sage led 郵箱 html article 群聊 簡單 不能 imp 一則小腳本(工作中用) 在這篇文章中寫的監控的腳本,發送監控的時候 是利用的郵箱,其實在實際,郵箱查收有著不方便性,於是乎升級, 我們工作中,經常用釘釘,那麽如果要是能用到釘釘多好,
Golang之一個簡單的聊天機器人
color func 後退 std gpo 錯誤 main pac hat 翠花,上代碼 package main import ( "bufio" "fmt" "os" "strings" ) func main
自己動手開發智能聊天機器人完全指南(附完整源碼)
ace 音箱 應用 圖片 先來 來看 ping 12px 搜索引擎 一、前言本文是《自己動手開發智能聊天機器人完全指南(附完整源碼)》的第二篇,也是21天實戰人工智能系列《知識圖譜完全項目案例剖析》裏面的知識圖譜應用的案例。前文中實現了一個最基本的人工智能聊天機器人,其能力
兩種開源聊天機器人的性能測試(二)——基於tensorflow的chatbot
drive 找到 環境配置 gpu版本 hat dict 終端 開源 fontsize http://blog.csdn.net/hfutdog/article/details/78155676 開源項目鏈接:https://github.com/dennybritz/c
用python寫一個微信聊天機器人
python wechat 聊天機器人 # -*- coding: utf-8 -*- """ package.module ~~~~~~~~~~~~~~ 一個微信機器人程序 微信客戶端itchat: http://itchat.readthed
python3對接聊天機器人API
圖片 數字 json 函數返回 ensure dumps targe 錯誤 類型 詳情見http://api.qingyunke.com/智能機器人API接口說明支持功能:天氣、翻譯、藏頭詩、笑話、歌詞、計算、域名信息/備案/收錄查詢、IP查詢、手機號碼歸屬、人工智能聊天接
基於SmartQQ協議的QQ聊天機器人-4
IE content ... 模塊 查詢 否則 文本 clip backup 本節的主題是:結合上節的分析,具體分析函數的實現 1. 回復消息模塊: 集中在org.b3log.xiaov.service包。主控文件是QQService.java,其他只是回復算法的api和
案例:python實現聊天機器人
pythonimport pickle data = {"你有女朋友嗎":"沒有","我們可以交往嗎":"可以","今晚約不約":"約","去哪家餐廳":"麥當勞"} with open("db.pkl",‘wb‘) as f: f.write(pickle.dumps(data)) with