AI實戰 | 使用元器打造浪漫儀式小管家

努力的小雨發表於2024-05-29

浪漫儀式小管家

以前我們曾經打造過學習助手和待辦助手,但這一次,我們決定創造一個與眾不同的智慧體,而浪漫將成為我們的主題。我們選擇浪漫作為主題,是因為我們感到在之前的打造過程中缺乏了一些儀式感,無法給對方帶來真正的驚喜。因此,這一次我們計劃慢慢除錯,將它發展成一個真正能夠幫助我解決這一煩惱的情人節儀式管家。

首先,我們需要考慮情人節可能存在的一些痛點。這包括選擇禮物、創作情詩、製作專屬短影片(包含圖片和背景音樂),以及寫下一份真摯的誓言來烘托氣氛。最後,最關鍵的一步是將自己的心意真誠地表達給對方。

首先,本教程的主旨是為您打造一個浪漫儀式小管家。為了照顧到各位對智慧體的理解程度,我將內容分為了快速入門和高階進階兩個部分。如果您已經具備一定基礎,可以直接跳過快速入門部分,直接深入瞭解我的助手是如何逐步實現的。那麼,讓我們開始吧!

在開始實現之前,我打算先為大家繪製一個完整的能力圖,展示我即將搭建的助手的各項功能,以免冗長的文件影響大家的思維清晰度。

image

快速上手

元器智慧體

助手開發地址:https://yuanqi.tencent.com/application

詳細文件地址:https://docs.qq.com/doc/DTWxpclVNeFRUUlh3

元器是由騰訊混元大模型團隊推出的一款智慧體創作工具。它提供了一系列功能,包括新增提示詞設定、外掛、知識庫等,以便您可以輕鬆地塑造出符合自己喜好的智慧體。這裡簡要介紹一下智慧體的概念:智慧體實際上是透過呼叫function calling大模型的函式來增強其功能的一種機制。它可以利用各種外部介面,包括但不限於API外掛、知識庫(用於資料檢索)、資料庫和變數等。

在這個系統中,還存在著工作流這一特殊形式,它涵蓋了所有可利用的外部能力,根據業務需求逐步完成流程呼叫的過程。

當與每個外部系統介面互動時,必須提供詳細的描述,以確保大型模型能夠準確理解並生成固定格式的結構內容。這一步驟可以看作是使用該工具的入門課程,它要求對每個元件及其引數的作用進行詳細描述。如果這一步不夠詳盡,大型模型的呼叫錯誤率將會顯著增加。

智慧體建立

商店中提供了各種助手,供你免費使用。我們直接跳過商店的使用方法,直接進入主頁並首先建立一個屬於自己的智慧體。

image

元器智慧體佈局

一旦進入系統,介面將分為左右兩側,左側主要負責助手的各項設定,包括但不限於名稱、簡介、頭像、提示詞、開場白、引導問題、使用者問題建議、外掛、知識庫以及工作流。右側則主要用於測試左側設定的效果,以便及時發現並調整左側設定中的任何問題。

image

詳細設定解讀

我們將不再贅述顯而易見的內容,而是集中關注那些更具挑戰性的方面。首先,讓我們著眼於詳細的設定,它實際上是提示性的,為我們勾勒了整體框架,具體如下所示:

# 角色:你是一個天氣預報員,可以查詢天氣資訊。
## 技能
- 詢問使用者地理位置、時間天氣需求
- 提供詳細的天氣預報:包含氣溫、溼度、天氣狀況、風速、紫外線和PM2.5值。
## 原則
- 只能提供天氣資訊,不回答其他問題;
- 所有資料都要從工具中獲取,不能自行編造;

所以結構化不僅對於本身來講更好的去進行最佳化,而且對於大模型來說也會提高回答響應的準確率,然後根據這些規則,你完全可以讓大模型幫助你生成相應的提示詞,比如這樣寫:

我想給我的情人節儀式管家機器人建立一個prompt,主要用於挑選情人節禮物、寫情詩、製作獨特的專屬短影片(圖片、背景音樂),再來一個誓言烘托一下氣氛,最後最重要的就是把自己的心意傳送給對方。,你需要生成的格式如下:
# 角色
## 技能:
## 原則:
另外我幫你提前寫好了一個模版樣例,你可以參考一下:
模版樣例:
# 角色:你是一個天氣預報員,可以查詢天氣資訊。
## 技能
- 詢問使用者地理位置、時間天氣需求
- 提供詳細的天氣預報:包含氣溫、溼度、天氣狀況、風速、紫外線和PM2.5值。
## 原則
- 只能提供天氣資訊,不回答其他問題;
- 所有資料都要從工具中獲取,不能自行編造;

終於,我們得出了最後一個簡單的設定,讓我們來看看它吧。

# 角色:情人節儀式管家機器人
## 技能:
- 選擇情人節禮物:根據收集到的資訊和對方喜好,提供個性化的禮物建議,包括但不限於鮮花、巧克力、珠寶、書籍等。
- 寫情詩:根據使用者提供的關鍵詞和情感,生成溫馨浪漫的情詩,表達真摯的感情。
- 製作獨特的專屬短影片:根據使用者提供的照片、影片素材和背景音樂,自動生成精美短影片,展現美好回憶和愛意。
- 釋出誓言:提供多種誓言模板或根據使用者需求定製,烘托浪漫氣氛,表達對對方的承諾和愛意。
- 傳送心意:整合上述內容,將使用者準備的禮物建議、情詩、短影片和誓言,以溫馨的方式傳送給對方。

## 原則:
- 尊重使用者隱私和個人喜好,不洩露使用者資訊或行為。
- 提供個性化服務,根據使用者需求定製內容,確保滿足使用者期望。
- 保持專業和禮貌,為使用者營造浪漫、溫馨的情人節氛圍。
- 在處理使用者資料和內容時,嚴格遵守隱私政策和法律法規,確保資訊保安和合規性。

雖然目前生成結果存在一些問題,但我們所面臨的挑戰已經變得清晰明瞭,剩下的任務就是集中精力解決這些問題。

外掛解讀

當談到某些技能,比如製作獨特的專屬短影片,這種技能在一眼看上去,大型模型可能無法準確模仿。但是,我們不必擔心,因為正是外掛的存在填補了這一空缺。就像我在前文所提到的,我們只需要生成對應的風格圖片,然後藉助手機應用的一鍵成片功能,便可輕鬆完成剩下的工作。舉例來說,元器提供了一款獨家的文生圖外掛,透過它,您可以將您的創意轉化為精美的圖片。不妨看一下這個外掛的操作介面:

image

在選擇適當的外掛後,您只需輕鬆新增即可,這樣可以簡化流程並提高效率。

image

另外,還有一項關鍵技能——傳送心意,但這方面存在一些挑戰。由於大型模型與我們實際處於隔離狀態,因此需要透過郵件提醒來傳達這一資訊。然而,目前外掛商店尚未提供此功能,因此我們需要自行開發。這個話題將在高階部分詳細討論,但這種複雜性可能會讓一些人望而卻步。

在最佳化語句時,我們可以這樣表達:絕大多數技能點其實可以由大模型自行解答,佔據了整體的80%。然而,剩下的20%可能需要更高水平的文采,這時我們就需要提供參考文字。那麼,誰來提供這些文字呢?這裡有兩種方式:第一種是利用搜尋外掛,在網路上搜尋已有的文案,然後讓大模型結合這些文字進行回答。

image

知識庫解讀

第二種方案涉及我們建立自己的知識庫,其中包含我們從各種來源收集的優質短語或片段。這樣做的好處是,我們可以為大型模型提供更多優質的輸入,從而促使其生成更加出色的回答。

image

在我們進行除錯的過程中,會根據實現方式的效果選擇最佳方案進行使用。接下來,讓我們談談工作流。目前,我們尚未採用工作流的方式。通常情況下,工作流的使用旨在提高大型模型的輸出穩定性,降低錯誤率。因為有時,雖然單個外掛的呼叫對於大型模型可能沒有問題,但當需要呼叫多個外掛來完成綜合或滿足各種需求時,即使底層所使用的大型模型非常先進,也無法像人類一樣按照我們預設的指令按部就班地執行操作。因此,工作流顯得尤為重要。比如,讓我們進行一次演示:

image

工作流解讀

回答了跟沒回答一樣,和我設定的裡的內容舉例一樣,雖然外掛可以幫助我們找到大部分的答案,但有些特定或者個性化的問題,外掛可能就無法完全勝任。因此,建立一個知識庫,包括各種禮物及其含義等內容,將會是一個非常有意義的舉措。透過這個知識庫,我們可以更加深入地瞭解你的需求,並建立一個定製化的工作流程,根據你的意願逐步生成使用者想要的答案。這樣一來,我們就可以確保每個回答都是經過深思熟慮和個性化定製的,而不僅僅是簡單的表面回應。

image

小結

當考慮到我之前提到的內容時,我簡要地描述了整個流程,並繪製了一張簡化的圖表,以幫助您更清晰地理解並掌握這個流程。

image

當我們嘗試按照入門者的方式構建助手時,我們已經完成了基礎工作,但很顯然,這個助手存在著嚴重的問題和漏洞,使其無法提供有效的幫助,更不用說讓其他人使用了。因此,接下來的高階進階部分將重點解決這些問題。透過分享這些解決方案,我們也希望能夠幫助你們構建自己的助手。那麼,讓我們開始吧。

高階進階

好的,讓我們系統地總結一下助手存在的問題,以便逐一解決:

  1. 挑選禮物回覆不夠細緻和個性化。
  2. 情詩缺乏文采,顯得簡單單調,需要提升至更高水平。
  3. 圖片製作依賴混元文生圖,但需要進一步增加功能,包括推薦合適的背景音樂。
  4. 傳送心意的過程需要更人性化和個性化,避免讓男(女)朋友直接使用助手,考慮透過郵件提醒等方式。

對於每個問題,我們將採取逐步解決的方式,確保助手在各個方面都能達到更高水平。

功能實現-外掛

當我們探討解決外掛問題時,我們首先要認識到郵件功能的重要性,而正如你所提到的,官方並沒有提供專門的郵局外掛。因此,我們需要動手自己實現一個。早前,我已經完成了搭建自己的郵局伺服器的工作,如果有人對此感興趣,可以嘗試搭建一個類似的伺服器。以下是相關的連線:
5分鐘教你搭建郵件伺服器的實用指南

為了確保大家的思緒不會被下面即將呈現的長篇文字所干擾,我打算先簡要地繪製一張外掛製作流程圖,以便為接下來的討論提供清晰的指引和視覺參考。

image

接下來,讓我們深入探討這個外掛的自定義功能,以便於您能夠根據自身需求來建立和定製專屬的外掛。

image

在進入工作流程後的第一步是詳細描述我們外掛的功能。這一描述必須清晰易懂,以確保人類使用者能夠理解,同時也要考慮到大型模型的理解能力。如果描述不清晰,就有可能導致模型在使用外掛時出現錯誤的呼叫或者根本不呼叫的情況。當然,關於外掛在工作流程中的使用方式會另行說明。

另外,我建議我們的API介面設計要儘可能簡單。過於複雜的介面會增加除錯的難度,因此應儘量避免。好的,我們可以繼續深入討論了。

image

在這裡,我建議您採用官方提供的 YAML 格式建立您自己的介面描述,而不要使用大型模型提供的描述,因為通常情況下它們的錯誤率相當高。您只需按照下圖所示的操作流程進行修改即可。相比其他同類產品,使用原生操作確實需要一定的程式碼能力,這增加了一些門檻,導致一部分使用者望而卻步。因此,簡化的操作方式更受歡迎。

image

為了提供更多靈活性,我們提供了一個由 YAML 建立的模板,供大家使用。你可以根據自己的需求進行自定義修改,以滿足個性化的要求。

openapi: "3.0.0"
info:
  title: "API標題"
  version: "1.0.0"
  description: "描述"
servers:
  - url: "http://ip/path"
    description: "描述"
paths:
  "path":
    post:
      summary: "描述"
      description: "描述"
      operationId: "唯一id"
      parameters:
        - name: "引數一"
          in: "query"
          description: "郵件格式"
          required: false
          schema:
            type: "string"
            default: "plain"
            enum: ["引數示例一", "引數示例二"]
      responses:
        "200":
          description: "成功的響應"
          content:
            application/json:
              schema:
                type: "object"
                properties:
                  status:
                    type: "boolean"
                    description: "返回狀態"
                  msg:
                    type: "string"
                    description: "返回結果描述"
        "400":
          description: "錯誤的請求"
        "401":
          description: "未授權"
        "500":
          description: "伺服器內部錯誤"

在執行下一步之後,我們將進行外掛介面的除錯,確保其順利執行,隨後方可進行釋出。值得注意的是,目前我們的系統並未對元器進行此步驟的釋出成功驗證,因此如果有人故意提交惡意外掛,將會對人工稽核速度和資源造成嚴重耗費。

image

一旦我們的外掛成功釋出,使用者便能夠將其輕鬆新增到他們的助手或工作流中,實現更便捷的功能擴充套件。

功能實現-知識庫

在我的知識庫中,我依託的是一系列豐富多彩的詩集,存放著各種各樣的文學風格和詩歌形式。在這裡,我僅僅是對不同詩集的風格和規則做了簡單的列舉,以供參考。

為什麼要將詩集匯入知識庫呢?因為詩集涵蓋了多種類別,而知識庫中的內容正是引導大型模型輸出符合使用者需求格式的關鍵。若每個詩集類別都需要在工作流程中使用一個大型模型節點來固定輸出,將顯得繁瑣冗餘。因此,我們可直接將其作為引數引入大型模型節點進行匹配,如下圖所示:

image

在這裡我想提醒一下,鑑於當前知識庫支援的分段形式(即換行)並不十分友好,我們需要考慮對知識庫內容進行全面轉換,將其統一為一行,並且確保清晰描述每個類別。

image

一旦我們維護好了知識庫內容檔案,我們就可以著手進行新增工作了。

image

功能實現-工作流

目前我們的工作流任務相當繁重,因此讓我們首先梳理一下,然後逐一實現,看看效果如何吧:

  1. 情詩定製:為了創造出一首貼合使用者詩集要求和關鍵詞的情詩,這個任務不可或缺。
  2. Emoji翻譯器:除了文字,表情也是情感表達的重要方式,受到kimi啟發,我們要設計一段富有含義的表情,以此來傳達愛意。
  3. 個性化禮物策劃:挑選禮物常常令人頭疼,但受kimi啟發,我們將根據使用者的愛好、MBTI型別、職業等因素,並考慮到雙方關係,精心策劃出個性化的禮物選擇。
  4. 美食參考:靈感源自kimi,為另一半準備一頓豐盛晚餐,美食是表達愛意的最佳方式。
  5. 傳送郵件:一切準備就緒,只等東風,透過郵件將自己的愛意傳遞出去吧。

工作流-情詩定製

在前文中,我們討論了知識庫的應用,特別是關於引入相關知識庫並透過引數調整來最佳化大型模型對關鍵詞的詩集內容生成。考慮到使用者可能存在不願意或者選擇困難的情況,我並未將詩集類別設定為必選引數。因此,我進行了一項判斷,如果使用者沒有明確指定詩集類別,系統將預設採用中國七言律詩。接著,大型模型將根據相關關鍵詞和詩集類別的要求生成相應的情詩。

好的,現在讓我們具體看一下工作流的整體呼叫情況。

image

可以看一下演示效果。

image

工作流-emoji翻譯器

當我們思考為什麼要建立這樣一個專案時,其實目的很簡單:我們希望使用者能夠在與另一半的聊天中擁有更有趣的話題,而不是陷入尬聊的境地。因此,我們參考了Kimi開發的emoji翻譯器,決定開展類似的工作。這個專案的需求非常簡單明瞭:我們只需要引入一個大型模型節點即可完成。這個節點的主要功能是透過理解每個emoji表情來幫助使用者提供有趣的話題。我們只需向模型提供一些示例,它就能夠完成任務。現在讓我們來看一下工作流的情況:

image

可以看一下演示效果。

image

工作流-個性化禮物策劃

其實,在情人節當天選擇禮物是最困難的事情之一。對於剛開始的戀人來說,這個過程充滿了新鮮感,因為他們之前從未為對方選擇過禮物。然而,隨著時間的推移,選擇禮物變得越來越難,因為似乎所有的選擇都缺乏新意。因此,我們需要一個工作流程來幫助我們根據對方的個性、愛好和興趣來確定最合適的禮物。這個工作流程主要依賴於一個大型模型節點,它會根據使用者的型別和喜好來推薦禮物。現在讓我們來看看這個工作流程的情況:

image

可以看一下演示效果。

image

我認為,如果你真的給我買這些禮物的話,我其實還挺滿意的。哈哈哈,也希望他可以幫助你挑選出合適的禮物。

工作流-美食參考

因為我通常在家自己做飯,所以每天晚上都需要考慮晚餐吃什麼。雖然我曾考慮去外面吃飯,但我覺得自己親手做出來的餐點更溫馨貼心。因此,我借鑑了Kimi的創意,來提升我的助手的能力,讓它更好地幫助我解決這個問題。

同樣的一個大模型節點完成所有能力並提供表格輸出介面,我們來詳細審視一下工作流程。

image

演示效果來一個,這裡的表格有些寬,到前等大傢伙使用的時候就可以看到全貌了。

image

工作流-傳送郵件

在這個工作流程中,最關鍵的一環是將我們深沉的愛意傳達給對方。這一任務的邏輯相當複雜,需要與元器官方人員反覆溝通,解決各種問題,才最終完成。在此過程中,我們首先繪製了工作流程的圖表,以便為大家提供參考。

image

看到這些節點,實際上已經幫助我完全理解了整個事情的來龍去脈,現在需要關注的是具體的執行步驟,而這些已經不再需要我逐一詳述了。我來簡要介紹一下我的工作流程。

image

這裡說一下卡點,因為外掛的形式呼叫不了我的API,一直在報錯並且他只能透過Python程式碼才可以傳送呼叫,但是工作流中的程式碼節點無法使用第三方依賴包所以我這裡一直無法解決,所以這裡直接吐出了HTML程式碼,這裡我也不強求了。

因為這個郵件畢竟是傳送給對方的,並不像我之前建立的助手那樣傳送郵件給自己,大模型就算發的有問題對於自己來說也沒什麼大礙,但是如果傳送給對方,而且還是愛人,那這封郵件發之前還是檢查一下比較好一些,而且郵件由自己親自發出去的話,儀式感會更強一些。我就說服了自己,不要太去請求一定傳送一封郵件。好的,我們來看下效果吧:

首先我們生成好圖片,我這裡為了示例就直接根據描述生成圖片了,你完全可以將自己的圖片上傳上來然後進行修改下:

image

接著右鍵複製所有圖片連結。然後我們去對話。

/email 
關鍵字:小雨
相戀開始時間:2018-05-20
圖片列表:https://cdn.yuanqi.tencent.com/hunyuan_open/default/c73af7034b280d895dcf8986cc03fe70.png?sign=1716813442-1716813442-0-fe644ff16f7547005b4ba76552464ae4c8e7abae7c1fa9f4d8333e2407f47fa7,https://cdn.yuanqi.tencent.com/hunyuan_open/default/5aec9c9704df47e4fe2ba93474bdf12c.png?sign=1716813376-1716813376-0-2c6a9368fc7288e8a26355c8d14e6438fb23943a927586c245d8c6d81e14bb05,https://cdn.yuanqi.tencent.com/hunyuan_open/default/c73af7034b280d895dcf8986cc03fe70.png?sign=1716813442-1716813442-0-fe644ff16f7547005b4ba76552464ae4c8e7abae7c1fa9f4d8333e2407f47fa7,https://cdn.yuanqi.tencent.com/hunyuan_open/default/5aec9c9704df47e4fe2ba93474bdf12c.png?sign=1716813376-1716813376-0-2c6a9368fc7288e8a26355c8d14e6438fb23943a927586c245d8c6d81e14bb05,https://cdn.yuanqi.tencent.com/hunyuan_open/default/c73af7034b280d895dcf8986cc03fe70.png?sign=1716813442-1716813442-0-fe644ff16f7547005b4ba76552464ae4c8e7abae7c1fa9f4d8333e2407f47fa7,https://cdn.yuanqi.tencent.com/hunyuan_open/default/5aec9c9704df47e4fe2ba93474bdf12c.png?sign=1716813376-1716813376-0-2c6a9368fc7288e8a26355c8d14e6438fb23943a927586c245d8c6d81e14bb05

image

然後我們將生成的郵件內容複製出來,貼上到我們的QQ郵件中。如下所示:

image

然後返回一下:

image

效果演示

在經過數天的辛勤努力後,我終於完成了浪漫儀式小管家的打造。這個過程雖然耗費了不少心血,但也是我第一次嘗試元器智慧體的製作,算是一次難得的體驗。作為一個資深的智慧體愛好者,我本以為會遊刃有餘,然而使用起來卻並非如此。特別是在外掛的自定義建立和工作流的搭建方面,遇到了不少困難,整體體驗略顯不足。儘管如此,我還是成功完成了自己的助手。如果你有時間,不妨觀看一下浪漫儀式小管家最終的演示影片,或許能給你帶來一些啟發與收穫。

總結

透過本次的浪漫儀式小管家的打造,我深刻體會到了智慧體在情感表達和儀式感營造方面的潛力和重要性。從挑選禮物到寫情詩,再到製作獨特的專屬短影片和傳送心意,每一個步驟都是為了讓浪漮更加豐富和令人難忘。

在快速上手的部分,我介紹瞭如何使用元器智慧體進行助手的搭建,包括元器智慧體的功能、建立流程以及外掛、知識庫和工作流的設定。透過這些步驟,我們可以初步搭建一個浪漫儀式小管家,為後續的功能實現奠定基礎。

在高階進階部分,我詳細講解了如何解決一些問題,包括情詩定製、emoji翻譯器、個性化禮物策劃、美食參考以及傳送郵件等功能的實現。這些功能的加入讓浪漫儀式小管家變得更加智慧和貼心,可以幫助使用者更好地表達情感和營造浪漫氛圍。

透過本次的打造過程,我不僅提升了對智慧體開發的理解和技能,也讓我更加深刻地認識到智慧體在情感表達和儀式感營造方面的潛力。希望這個浪漫儀式小管家可以為您帶來更多驚喜和幸福,讓您的浪漫時刻更加難忘和美好。讓我們一起享受這份浪漫,感受愛的溫暖和力量。願您的愛情長存,浪漫永遠!


我是努力的小雨,一名 Java 服務端碼農,潛心研究著 AI 技術的奧秘。我熱愛技術交流與分享,對開源社群充滿熱情。身兼掘金優秀作者、騰訊雲內容共創官、阿里雲專家博主、華為云云享專家等多重身份。

🚀 目前,我的探索重點在於 AI Agent 智慧體應用,我對其充滿好奇,並不斷探索著其潛力與可能性。如果你也對此領域充滿熱情,歡迎與我交流分享,讓我們共同探索未知的領域!

💡 我將不吝分享我在技術道路上的個人探索與經驗,希望能為你的學習與成長帶來一些啟發與幫助。

🌟 歡迎關注努力的小雨!🌟

相關文章