script (⏱,💰)

script (⏱,💰)

MyShell 工具類 bot 創作指導

一篇構建 MyShell 工具類 bot 的概述和逐步指南

本文面向經常使用 ChatGPT 的用戶,特別是那些希望通過它來解決定制需求的讀者。
文章專注工具類 bot 的創建,不涉及角色扮演類 bot 的創作,但基本原理是相同的。

簡要概述:本文介紹了 AI 創作者平台 MyShell 是什麼、 prompt 編寫技巧以及如何製作 MyShell 工具類 bot。

介紹#

MyShell 是什麼#

myshell_landing_page

MyShell 是全球首個去中心化生成式 AI 創作者平台。平台內有社區開發的各種 AI 原生應用,其中包括具有鮮明個性和聲音的 AI 角色、用於學習新科目的互動式 AI 導師,以及幫助你創建圖像甚至視頻的 AI 藝術家。

大多數 AI+Web3 領域的研究報告推薦 MyShell 作為 Agent 板塊首選項:

web3_AI_landscape

為什麼要使用 MyShell,而不是 ChatGPT#

我曾是 ChatGPT 重度用戶,自 2023 年 4 月起,我轉而使用 MyShell 進行編程、編輯文章、檢索資料和翻譯工作。

使用 MyShell 有以下好處:

  • 可一站式免費使用包括 GPT 4.0 以內的多種 AI 大模型
  • 許多用戶在 OpenAI 平台上遭遇過封號問題;選擇 MyShell,在合理使用下無需擔心此類風險。
  • 通過創建和贊助 bot 獲取積分獎勵,未來可兌換成系統流通的代幣
  • 論壇提供了許多優質創作技巧,社區有良好的交流氛圍,有助於學習 AI 技術
  • 不用再支付 ChatGPT 每月 $20 的會員費

為什麼要學會創作工具類 bot#

使用 MyShell 時,我注意到由官方 API 創建的 "GPT 4" bot 解決問題的能力有時並不穩定。此外,每次對話需要輸入提示詞(prompt:旨在引導模型產生更精確和相關輸出內容的文本或指令)進行角色扮演。這極大降低了效率並增加了操作複雜度。

GPT 4 bot

儘管其他社區成員開發的 bot 可以解決一些問題,例如我常使用 Mr.Rachelle 學習新知識 和 bestTranslater 中翻英,但更多的需求無法找到合適的 bot。
我研究了眾多關於 prompt 工程的資料,創建了多個不同作用的 bot,並琢磨出了一套成熟的流程。
我創建過的工具類 bot 有:

名稱作用
OpenAICEO Sam Altman一句話直接了當回答簡單問題
Summary master可設定語言風格的長文總結
Cryptocurrency Analyst中文總結 Web3 項目介紹
Tech writing editor潤色技術寫作文章
Epic Code DevDebug 和優化代碼
Web code expert編寫前端代碼
Think Tank多領域專家智囊團討論複雜問題
Song Lyrics Search找到符合語境的中文歌詞

my bot list

Pass card 的作用#

當前版本免費用戶只能創建一個私有 bot。若要創建公開 bot,必須持有 Genesis Pass。獲得 Genesis Pass 的最佳方式是參與  MyShell Genesis Pass Incubator  活動,詳見 https://twitter.com/myshell_ai/status/1759941273509593166 。或者,你可以選擇使用 ETH 在市場上直接購買 Genesis Pass,其價格大致相當於十年的 ChatGPT 會員費。

學習資料#

prompt 工程作為一門新興學科,涉及以下核心概念:

  • zero-shot
  • few-shot
  • chain-of-thought
  • Prompt Chaining

如果不熟悉以上術語,建議先瀏覽一遍 Prompt Engineering GuidePrompt engineering by OpenAI 。網上能搜到中文版本。

若尚未了解 MyShell 的基本操作,請參考  product manual
本文不會詳述操作步驟。

使用英文編寫 prompt 可減少 Token 消耗,所以我都用英文編寫它。

prompt 通常寫為Markdown格式,因為 Markdown 是互聯網的語法,有利於大模型理解輸入。一些符號有固定意義,例如:<>表示注釋部分;而  """ """則用來標記用戶輸入。

創作流程#

prompt

通常,我會先編寫 bot 的 prompt。該 Tech writing editor 的 prompt 是開源的,可在 https://app.myshell.ai/widget/Fzu2Uz 找到。

定義角色#

在構建 prompt 時,核心步驟是定義角色 = 描述 + 目的。首先根據需求確定 bot 的角色和目標。
 描述部分應與公司招聘時提供的職位說明相仿,例如,“寫作編輯” 或是 “新媒體文案編輯”,描述越精確越好,“熟悉科技領域的技術寫作編輯” 和 “寫作編輯” 輸出的結果會不一樣。
目標是要達成的工作,對於技術寫作編輯來說,“撰寫文檔”、“提供靈感”,以及 “潤色文稿” 是完全不同的工作目標。
你可以直接問 GPT,一個"xxx"樣的"xxx"擁有哪些特徵,或者描述"xxxx"需要定義什麼關鍵維度,從回覆中選擇部分形容詞來修飾角色。
此外,你還可以參照編寫招聘說明書方式,編寫 “崗位職責” 給 bot 設定 "Goals";編寫 “任職要求” 來賦予 bot “Skills”。

You are a technical writing editor who provides concise suggestions for improving articles and explain the reasons for the suggested changes.
## skills
You are familiar with the principles of various technical writings, including but not limited to:
- Use terms consistently.
- Avoid ambiguous pronouns.
- Prefer active voice to passive voice.
- Pick specific verbs over vague ones.
- Focus each sentence on a single idea.
- Convert some long sentences to lists.
- Eliminate unneeded words.
- Use a numbered list when ordering is important and a bulleted list when ordering is irrelevant.
- Keep list items parallel.
- Start numbered list items with imperative words.
- Introduce lists and tables appropriately.
- Create great opening sentences that establish a paragraph's central point.
- Focus each paragraph on a single topic.
- Determine what your audience needs to learn.
- Fit documentation to your audience.
- Establish your document's key points at the start of the document.

請注意,類似於 ## skills 的模板寫法旨在方便 prompt 的維護。你可以選擇用一段連貫的文字來表述,也可使用如 [Skills] 樣式的標題來編寫。

定義規則(可選)#

規則定義了 bot 應該執行的操作以及避免的行為,並可設定輸出內容的字數上限、使用語言、風格和語氣等。
我經常使用以下 Prompt:

## rules
	- MUST Reply in the same language as the input language. # 多語言支持
	- ALWAYS omit all polite language. # 減少客套話
	- DON'T worry about your response being cut off # 避免急於總結

一開始編寫 Prompt 可以不設定規則,如果不滿意輸出內容,再添加規則。

定義工作流(可選)#

工作流通過 Prompt Chaining 技術將一個大任務拆分成多個子任務,每個子任務的輸出順序地成為下一個子任務的輸入,逐步實現最終目標。
在定義 Tech writing editor 時,我採用以下 Prompt 以實現這些步驟:檢查文章需要修改的句子 -> 依次輸出修改前、修改後、修改的原因 -> 評分。

## workflow
1. Browse the article and find any sentence that need to be modified
2. Output all Original, Modified, Reason groups in sequence
3. Evaluate articles from a technical writing perspective and assign scores on a 10-point scale

如果需要類似編程語言中的條件判斷、變量賦值、狀態重置的複雜工作流,也可以採用函數式編寫風格,可參考Mr. Ranedeer

提供例子或輸出格式(可選)#

利用 Prompt 工程的 few-shot 技術使輸出符合指定格式。以下是我在 Tech writing editor 中採用的輸出格式,你也可以將 <> 中的說明替換為具體示例。

## outputFormat
1.
	**O**: <Then paragraph need to modify>
	**M**: <The improved paragraph>
	**R**: <Rule to follow for modifications>
2.
	**O**: <Then paragraph need to modify>
	**M**: <The improved paragraph>
	**R**: <Rule to follow for modifications>
……
---
<The evaluation and the score>

選擇模型#

model configuration

在選擇模型時,我優先使用  GPT 4 Turbo。該模型不僅智能性高於其他選項,還支持超過 1500 Token 的輸入長度。

若需處理純中文內容,選擇使用 Claude V2 模型也能獲得良好效果。

針對不同使用場景,可適當調整其他參數。相關具體設置,請參考此篇帖子中的詳細說明。

強化 prompt(可選)#

enhance prompt

在多輪對話中,模型可能會基於上下文信息而非 Prompt 內定義的規則來回答問題。為確保在整個多輪對話過程中遵循統一規則,可以將這些規則包含進強化 prompt,更多詳情見官方文檔

其他設置#

edit bot page

Avatar:利用  AvatarMagician  創建個性頭像。
Name:設定讓用戶通過主頁搜索特定關鍵詞以發現 bot;此項受長度限制,並起到 SEO 作用。
NSFW:標記內容是否不宜在工作場合查看,默認選擇 “否”。
Tag:根據功能選擇 “工具” 或 “學習”,部分含 “中文” 或 “英文” 的標籤指示已添加語音功能。
Description:提供對 bot 目的和功能概述。
Intro Message:設計一個引導式招呼語以告知用戶如何互動,並可加入圖片及外鏈增強體驗。


more_settings

Voice(TTS):對於工具類 bot 通常無需設置聲音功能。
Apps Integration:支持通過 Telegram 接入以吸引外部流量
Knowledge Base:  若需教授 bot 特定領域的冷門知識,請先編寫 GitBook,並將其內容加入知識庫以供 bot 學習。


bot information

Banner:使用 BannerMagician  創建 banner。創作者可選擇對所有 bot 統一使用帶有個人聯系信息的 banner 進行品牌宣傳及吸引潛在客戶。
ScreenShot:上傳展示輸入和輸出的截圖,以向用戶說明 bot 功能。

測試#

打造優質的 bot 需要經過多次測試和迭代。以下是一些技巧:

  • 準備多個具有固定內容的輸入文本,用於測試不同模型、參數及提示語句的效果。
  • 在調試到令人滿意之後,將其發布到社區讓他人嘗試,並依據反饋作出相應修改。

宣傳#

由於平台上專業用戶和特定工具類應用的活躍度不高,推薦將 bot 推廣到需要此類服務的領域群體中以增加使用頻率,以此帶動積分收益提升。
考慮聯系 MyShell 官方進行評測,這有助於你的 bot 獲得首頁展示機會。

未來展望#

目前角色扮演型 bot 在本平台可能有更高收益;然而,在未來版本中 MyShell 將支持多組件組合,這將促進構建功能強大的 AI 應用;同時激勵模型也會偏向解決實際效率問題的實用 bot。從現在開始可以挖掘需求,建立符合自己工作流的實用 bot,為未來做準備吧。

AI app intro

Claude3 提示詞編寫技巧#

3 月 25 日晚上,MyShell 接入了性能卓越的 Claude3 新模型,適用於絕大多數原本使用 GPT-4 的場景。
同時,Claude 官方也推出了「Prompt Engineering 指南」,以下是與 GPT 系列不同的幾個重要技巧:

  • 利用語義明確的 XML 標籤區分文檔部分、說明及輸入內容。例如<instructions><example><input>
  • <instructions>置於<input>之後可獲得更好效果,可通過 強化 Prompt 後綴 選項來實現該目標
  • 輸入變量應當使用雙花括號 {{}} 進行標記

如下圖所示,應用了上述技巧的 Summary master 包括:

  • 使用了 <configuration> <rules> <example> <input> <instructions> XML 標籤把提示詞劃分為不同部分。
  • <instructions>標籤嵌入強化 Prompt 後綴,目的是提升效果並保持輸出一致性。
  • 利用 {{CONFIGURATION}}{{DOCUMENT}} 來標記用戶輸入的變量,並在<instructions>中引用標記後的變量

Claude Example

總結#

現在你應該能夠根據我的指南創建自己的工具 bot。如需幫助,在 MyShell Discord 中搜索 script 並 @我,或通過Twitter發私信聯系。

若尚未加入 MyShell,請通過此鏈接https://app.myshell.ai/invite/8cdbbd 註冊,即可獲得 7 天高級 Pass 卡。

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。