複雜的時序圖也可以讓ChatGPT幫忙
以下是一個複雜的時序圖:
雖然原來的圖並沒有問題,但究竟是機器學習領域的人才能理解Embedding model,Qdrant或是LLM這些東西。所以我想用一個「IGS智能客服」的案例來解釋,我們應該怎麼建構屬於我們自己的AI。所以我就完全用文字來描述整個流程了:
- 「玩家」提交「問題(Question)」
- 「問題」被「IGS智能客服(LangChain)」轉交給「語意向量引擎(Embedding Model)」
- 「語音向量引擎」處理完後,將「問題向量(Question Vector)」回傳給「IGS智能客服」
- 「IGS智能客服」將「問題向量」傳給「向量資料庫(Qdrant)」做特徵比對
- 「向量資料庫」比對「向量」,將「前K名的相關內容(Top K facts)」傳回給「IGS智能客服」
- 「IGS智能客服」將「前K名的相關內容」做為提詞,將原來的問題含入後,一併詢問「聊天機器人(LLM)」
- 「聊天機器人」嘗試參考「前K名相關內容回答」,將「答案」回覆給「IGS智能客服」
- 「IGS智能客服」最終將「聊天機器人」的「答案」回給「玩家」
用文字描述出來這些流程,基本上可能跟講話也差不多簡單,照自己的意思念就行了。然後就是請ChatGPT產一個「時序圖(SequenceDiagram)」的mermaid腳本就行了:
我有一個如下的內容:
- 「玩家」提交「問題(Question)」
- 「問題」被「IGS智能客服(LangChain)」轉交給「語意向量引擎(Embedding Model)」
- 「語音向量引擎」處理完後,將「問題向量(Question Vector)」回傳給「IGS智能客服」
- 「IGS智能客服」將「問題向量」傳給「向量資料庫(Qdrant)」做特徵比對
- 「向量資料庫」比對「向量」,將「前K名的相關內容(Top K facts)」傳回給「IGS智能客服」
- 「IGS智能客服」將「前K名的相關內容」做為提詞,將原來的問題含入後,一併詢問「聊天機器人(LLM)」
- 「聊天機器人」嘗試參考「前K名相關內容回答」,將「答案」回覆給「IGS智能客服」
- 「IGS智能客服」最終將「聊天機器人」的「答案」回給「玩家」
請給我最適合表現這個流程的mermaid script
ChatGPT果然能理解這個順序:
sequenceDiagram
participant 玩家
participant IGS智能客服
participant 語意向量引擎
participant 向量資料庫
participant 聊天機器人
玩家->>IGS智能客服: 提交問題
IGS智能客服->>語意向量引擎: 問題
語意向量引擎->>IGS智能客服: 問題向量
IGS智能客服->>向量資料庫: 問題向量
向量資料庫-->>IGS智能客服: 前K名相關內容
IGS智能客服->>聊天機器人: 前K名相關內容
聊天機器人-->>IGS智能客服: 答案
IGS智能客服-->>玩家: 答案
把這個腳本丟到「Mermaidv10.0.0 Live Editor」後,就會得到如下圖的時序圖:
可我希望能把1-8順序標號也加入到圖表中,因此特別說明了一下我想怎麼加:
很好,最後只差一步。我想把數字標號加註在「問題」的變化。 意思是說,玩家把「問題」交給「IGS智能客服」,這是第一步,所以我們應將「1.」加註在「問題」上。接下來,「IGS智能客服」會將「問題」交給「語意向量引擎」,這是第二步,此時「問題」還是原來那個問題,所以我們把「2.」還是加在「問題」上。之後,「語意向量引擎」會回傳「問題向量」給「IGS智能客服」,此時「問題」已變成「問題向量」了,所以我們應將「3.」加註給「問題向量」。 以下依此類推,再產一次。
ChatGPT也很出色的完成了這個任務:
sequenceDiagram
participant 玩家
participant IGS智能客服
participant 語意向量引擎
participant 向量資料庫
participant 聊天機器人
玩家->>+IGS智能客服: 1. 提交問題
IGS智能客服->>+語意向量引擎: 2. 問題
語意向量引擎-->>-IGS智能客服: 3. 問題向量
IGS智能客服->>+向量資料庫: 4. 問題向量
向量資料庫-->>-IGS智能客服: 5. 前K名相關內容
IGS智能客服->>+聊天機器人: 6. 前K名相關內容
聊天機器人-->>-IGS智能客服: 7. 答案
IGS智能客服-->>-玩家: 8. 答案
ChatGPT還有詳細的解釋:
玩家將問題提交給IGS智能客服,這是第1步,「問題」上加上「1.」。IGS智能客服將問題傳遞給語意向量引擎,這是第2步,「問題」上加上「2.」。在第3步中,語意向量引擎將問題轉換為問題向量,「問題」轉變為「問題向量」,所以在「問題向量」上加上「3.」。在第4步中,IGS智能客服將問題向量傳遞到向量資料庫進行特徵比對。向量資料庫回傳前K名相關內容給IGS智能客服,這是第5步,所以「問題向量」不變。在第6步中,IGS智能客服將前K名相關內容傳遞到聊天機器人進行進一步處理,所以「問題向量」不變,「前K名相關內容」加上「6.」。在第7步中,聊天機器人參考前K名相關內容回答問題,將答案回傳給IGS智能客服,「前K名相關內容」不變,「答案」加上「7.」。最後,在第8步中,IGS智能客服將答案回傳給玩家,「答案」不變,加上「8.」。
以後要做簡報表示這種複雜的時序圖,看來會輕鬆直覺很多。
咏唱源碼在這裡,有興趣的可以參考:智能客服解決問題 (Smart customer service solves problems)