Hello, 各位 iT 邦幫忙 的粉絲們大家好~~~
在本系列文會展開使用 Avalonia UI 技術所建立的 TopAOAIConnector App 。由於使用 Avalonia UI 可以很快速的進行各平台的 桌面 應用程式開發,並且透過此 TopAOAIConnector App 來串接 Azure OpenAI Service 時所需的功能研究。
本篇是 就是要來點 A.I. 的 TopAOAIConnector App 系列文的 EP17。
在 EP 16 已經知道 ChatMessage 目前的 Type 定義有五種:
前一回的 EP 16 也已經有正確的處理後,那就準備來討論一下 "SystemChatMessage" 的問題吧!
而這個 "SystemChatMessage" 本身在 Azure OpenAI Studio 的 "聊天" Playground 本身就有相關的部分可以設定:
所以在 TopAOAIConnector App 當中,也要來看看怎麼設計處理。
本回先做一個簡單的設計與範例,來讓看倌們比較理解 GPT 所設計的 "Role: System" 概念。
首先,要發起的 "Chat" 對話前先定義其 "Role: System" 的指示與內容:
你是一位專業的電影評論員,請根據使用者的輸入評論來做回答。僅能回答 "好" 或 "壞" 並針對使用者輸入的評論給予最多 10 字的反饋。
那在 TopAOAIConnector App 的 Avalonia UI 專案的設計要怎處理呢?
這邊只是要達成最簡單的概念解釋,所以就直接在 ChatPageViewModel 增加兩個靜態欄位,並修正一下先前的 messages 初始值設定:
private static string systemMessage = "你是一位專業的電影評論員,請根據使用者的輸入評論來做回答。僅能回答 \"好\" 或 \"壞\" 並針對使用者輸入的評論給予最多 10 字的反饋。";
private static SystemChatMessage systemChatMessage = ChatMessage.CreateSystemMessage(systemMessage);
private readonly List<ChatMessage> messages = [systemChatMessage];
變化處如下圖紅框所示:
並找到在 EP 15 在 Attach 方法中所撰寫如下 if 判斷:
if (!string.IsNullOrEmpty(fileContent) && messages.Count > 0)
{
ChatText = $"{Environment.NewLine}{ChatText}{Environment.NewLine}=======Another Attach TextFile======={Environment.NewLine}";
messages.Clear();
}
並將其替換成:
if (!string.IsNullOrEmpty(fileContent) && messages.Count > 1)
{
ChatText = $"{Environment.NewLine}{ChatText}{Environment.NewLine}=======Another Attach TextFile======={Environment.NewLine}";
messages.Clear();
messages.Add(systemChatMessage);
}
變化處如下圖紅框所示:
而如果要做其他 UI 上的變更的話,則留待後面正式處理時再繼續介紹。
將 TopAOAIConnector App 執行起來後,連續送出幾個對電影的一、兩句評論:
這部電影拍得實在太令我失望了!
導演對於原著中的男女主角心境的詮釋安排的更勝於前作。
原著小說當中的寓意似乎沒有在電影中被敘述出來,無論從什麼層面來看都有點可惜。
為什麼在看這部期待已久的電影居然有個糟糕的人一直講電話,整場就聽他講電話就好啊!
只怪這電影院的座椅太舒服了,就算是看這部大爛片我也能夠睡得很爽。
對於每位角色的心境演繹,衷心佩服這些演員,他們真的很認真的感受角色在劇中應扮演的狀況。
各位~~~
是否有觀察到回答上皆是根據一開始所下的 "SystemChatMessage" 定義,按照給予的指示去答覆所送出的問題(評論),這就是 "Role: System" 的特殊之處。
如果對於 System, Assistant, User 這三種 Role 的意義在 GPT 當中的概念,可以參考這篇文章好好地思索一下。
System, Assistant, User:ChatGPT 架構與角色詳解: https://medium.com/@ro5112/b8373ab6fe4b
那,對於 TopAOAIConnector App 在 UI 上的設計調整就...
下回介紹囉~~~😜😜😜