本頁面包含 Google 技術文件季度接受的技術寫作專案詳細資料。
專案摘要
- 開放原始碼組織:
- Rocket.Chat
- 技術文件撰稿者:
- Mister Gold
- 專案名稱:
- 機器人說明文件
- 專案長度:
- 標準長度 (3 個月)
Project description
專案摘要
Chatbot 是當今最先進的技術。由於聊天軟體和機器人的整體成長率極高,再加上語音辨識與自動化技術不斷攀升,這使得開發人員需要製作簡單易懂的機器人說明文件。
因此,我們更需要提供完整且清楚的說明文件,讓使用者更容易存取及瀏覽現有的機器人說明文件,並為每個支援的架構提供統一的逐步操作說明和大量範例。另外,也應整理內容,移除冗餘且難以理解的資訊。
這個專案的目標是縮小知識落差,並鼓勵新手開發人員運用新技術,為熱情的使用者帶來更多好處。為此,我們為機器人開發人員提供簡化體驗,讓他們在 Rocket.Chat 中開發自己的機器人。這項目標旨在讓 Rocket.Chat 成為開發人員的首選開放原始碼平台,無論最終的 BOT 部署目標為何,都能在此創新、建立及測試聊天機器人構想。
專案問題
以下列出與機器人說明文件相關的最重要問題:
- 機器人的一般資訊不直覺且不友善
- 與機器人架構相關的散佈圖和備援區塊
- 「入門指南」說明不夠完整,且缺乏單一可靠資料來源
- 缺少操作說明或操作說明過於詳細
- 隱含且含糊的 Bot SDK 說明文件
專案提案
根據專案目標和上述問題,以下列出建議的強化功能:
更新 Bot 說明文件。為了讓初始介紹順暢且一致,請更新下列文件,從簡單到複雜逐步轉換:
- 機器人總覽:https://rocket.chat/docs/bots/
- 機器人架構:https://rocket.chat/docs/bots/bots-architecture/
- 設定機器人環境:https://rocket.chat/docs/bots/configure-bot-environment/
- 機器人首頁:https://github.com/RocketChat/rocketchat.github.io/pull/
整理及整合機器人安裝說明文件。所有子專案都應提供一套統一的操作說明,說明如何複製機器人存放區並安裝必要的依附元件、如何快速上手、如何在首次啟動後使用機器人,以及如何部署機器人。
修訂 Rocket.Chat JS SDK 說明文件簡報。SDK 說明文件應透過程式輔助方式,使用專用工具從原始碼產生。這項改善措施可提升可讀性,並免除每次方法 (或其中的內容) 變更時,都必須手動更新 GitHub 文件的麻煩。
賽況
申請審查期間:熟悉社群和合作對象。瞭解社群貢獻指南和最佳做法。開始貢獻。
社群連結:探索社群。檢查機器人說明文件的目前狀態。找出弱點。
第 1 週:與導師討論 Bot 的新願景。根據願景,為新的 Bot 首頁建立更新內容。
第 2 週:修改機器人總覽、架構、環境頁面設定
第 3 週 - 定義應轉移至主要說明文件的子專案 (機器人 GitHub 存放區) 清單。- 定義機器人網站在轉移後的運作方式。- 定義用於整理這些存放區內資訊的範本。- 準備轉移作業的主要文件
第 4 週:轉移 bBot 存放區。依據定義的範本整理資訊
第 5 週:轉移 Hubot 存放區。依據定義的範本整理資訊
第 6 週:轉移 Botkit 存放區。依據定義的範本整理資訊
第 7 週:轉移 Rasa 存放區。依據定義的範本整理資訊
第 8 週:轉移 BotPress 存放區。依據定義的範本整理資訊
第 9 週:轉移所有機器人子專案後,完成主要文件結構和頁面
第 10 週:檢查 JSDoc 設定。定義儲存 JSDoc 構件的地點。開始記錄驅動程式方法
第 11 週:完成驅動程式方法的文件
第 12 週:評估結果
里程碑詳情
申請審查期間
期間的第一部分將專門負責檢查社群頻道和原始碼,以及聯絡專案專責人員。
研究期間的第二部分將致力於瞭解整體捐款文化,檢視捐款指南及最佳做法。這時可以透過首次貢獻內容,瞭解流程的運作方式。
社群經營
這次我們將深入探討說明文件存放區和路線圖。根據這些資訊,您可以找出需要改善的弱點 (例如缺少或不完整的部分)。建立可填補空白的提取要求 (如有可能)。
第 1 週 - 第 2 週
第一週將專注於與導師溝通,以便配合 Bot 說明文件的新願景。這項資訊將納入修訂版文件中,讓讀者瞭解什麼是機器人,以及其運作原理。
第二週將根據願景,為新的 Bot 首頁建立內容,並修訂「Bot 總覽」、「架構」和「環境設定」頁面。
修訂後的文件將更明確地著重於以下內容: - 想要建立自有機器人的新手開發人員 - 想要使用免費且易於使用的平台設計/編寫/測試機器人,或將現有機器人改用該平台的專業 [機器人] 開發人員 - 想要為 Rocket.Chat 建立機器人的專業機器人開發人員,並使用其偏好的架構
工作範圍如下:
- 移除多餘的部分。舉例來說,下列各節分享的是重疊資訊:
- 機器人如何傳送及接收訊息?機器人總覽 (https://rocket.chat/docs/bots/#how-do-bots-send-and-receive-messages)
- Bots Architecture 中的訊息串流 (https://rocket.chat/docs/bots/bots-architecture/#message-streams)
- 在「建立機器人使用者」中與機器人對話 (https://rocket.chat/docs/bots/creating-bot-users/#talk-to-your-bot)
修改「機器人總覽」頁面的各部分和詞組,清楚說明遵循剛果民主原則的漫遊器生態系統和功能。
修訂有關「幕後」資訊的段落和詞彙:
- 從技術層面來看,機器人是什麼
- 包含哪些元件
- 這些元件如何搭配運作
撰寫快速入門指南,說明建立機器人所需的步驟 (並附上「設定機器人環境」的連結,供讀者參考)。本指南位於「設定環境」頁面下方。
這樣一來,開發人員就能清楚掌控機器人的性質,以及機器人的功能。開發人員屆時就能建立第一個機器人。
交付項目:修訂且簡單易懂的介紹指南,提供機器人生態系統和架構的相關資訊。
第 3 週 - 第 9 週
第 3 到第 9 週將專門用來統合 GitHub 存放區中的所有機器人文件,並將這些文件轉移至主要說明文件 (https://rocket.chat/docs/bots/)。這些活動可分為幾個迭代:
定義
定義應遷移至主要文件的機器人子專案清單。定義 bot 網站在轉移後的運作方式 (某些 bot,例如 bbot (http://bbot.chat) 除了 GitHub 外,還有其他網站提供說明文件)。
範本
定義並建立範本 (一種方法),用於在第 1 步驟中定義的機器人子專案中整理資訊。這個範本可能如下所示:
a. 複製存放區
b. 安裝依附元件
c. 設定機器人
d. 執行機器人
e. 進階設定
f. 後續步驟
包含一些非簡單輸出的指令 (例如「執行機器人」),應搭配使用「Term Sheets」工具 (https://neatsoftware.github.io/term-sheets/) 進行即時輸出展示。
此外,為了讓初始的「快速入門」階段 (步驟 a 到 d) 更清楚,我們也會將所有步驟合併為一場直播簡報。
為了讓新手不必擔心潛在的失敗問題,您應在遊樂場環境中提供程式碼範例 (使用 Glitch,做為 Rocket Chat 生態系統的一部分),讓新手可以與機器人進行即時通訊,並在幕後使用「範例程式碼」。
準備
準備轉移的主要文件。包括建立適當的資料夾和頁面結構,以及根據該結構調整目錄。
最終結構可能如下所示:
- 機器人
- 機器人架構
- 建立 Bot 使用者
- 設定機器人環境
- 執行機器人
- bBot Bot
- 胡伯特機器人
- Botkit Bot
- Rasa Bot
- Botpress 機器人
- 機器人
遷移
將已定義的機器人子專案逐一遷移至主要文件。每組機器人說明文件都有獨立頁面,內含目前版本等子區段 (例如執行 bBot)。
- 執行機器人
- bBot Bot
- 胡伯特機器人
- Botkit Bot
- Rasa Bot
- Botpress Bot
- 執行機器人
機構
屆時將有以下幾個活動:
- 根據第 2 個步驟定義的範本,整理各個機器人 GitHub 存放區中的資訊。
- 將與所有 Bot 子專案相關的常見元件 (例如環境變數) 在主要文件的階層中向上移動一層,並將 Bot 子專案連結至這些元件
- 為每個支援的架構建立「Hello World」機器人範例。這個範例會用於 Rocket.Chat 的「開始使用」機器人。
為什麼這麼做很重要?Rocket.Chat 支援的所有 8 個子專案:alexa、hubot、chatops-gitsy、botpress、rasa、bbot、botkit、BOTswana、hubot-gitsy 都有散布在各處的開發人員 README 形式文件。這些 README 都沒有架構、包含入門教學的過時資訊,或包含過多資訊 (有時候,會介紹如何使用 Docker 執行機器人,例如 hubot (https://github.com/RocketChat/hubot-rocketchat) 以及包含環境變數的表格)。
這些面向讓開發人員 (做為新手) 的細節令人難以捉摸。因此,開發人員無法只透過幾個終端機指令啟動機器人。
轉移及最佳化完成後,GitHub 中現有的機器人存放區就會包含參照主要文件的 README 檔案。
這樣的好處如下: - 統一的架構可讓開發人員輕鬆開始使用新的機器人 - 提供機器人說明文件的單一可靠資料來源 - 採用統一架構,您就能更輕鬆地找到任何機器人的必要資訊
成果:在單一位置 (主要說明文件) 下,提供簡單易懂的操作說明,說明如何建立、設定及執行 Rocket.Chat 支援的機器人。
第 10 週
本週將專注於設定 JSDoc (https://devdocs.io/jsdoc/),以便充分發揮內嵌註解的價值。包括:
- 確保 JSDoc 已正確設定,以便剖析驅動程式方法的註解 (https://github.com/RocketChat/Rocket.Chat.js.SDK#driver-methods)
- 安裝 postman-jsdoc-theme (https://github.com/postmanlabs/postman-jsdoc-theme),讓產生的 HTML 輸出內容更明確,更適合開發人員
- 定義 JSDoc 文件構件要發布的地點
- 說明與驅動程式方法相關的所有函式 (位於 dist/lib/driver.js 檔案中)。其中包括:
- 新增/編輯方法說明
- 新增/編輯方法參數的說明
- 新增/編輯方法要求範例 (如適用)
- 新增/編輯方法回應範例 (如適用)
從開發人員的角度來看,內嵌式說明文件更容易編寫和維護,而且其自動產生機制可讓您擺脫必須在 SDK 方法每次變更時個別更新的 GitHub 靜態說明文件 (https://github.com/RocketChat/Rocket.Chat.js.SDK#driver-methods)。
第 11 週
本週將全力完成說明驅動程式方法的作業。完成後,我們會測試說明的準確性和一致性,然後向全世界發布新文件。
第 12 週
完成工作並完成結算。驗收檢查。