使用ChatGPT API快速實作翻譯機
許嘉仁 Jerry hsu
- 恆逸教育訓練中心-資深講師
- 技術分類:程式設計
本篇文章的內容會需要使用者先註冊OpenAI帳戶,並且需要登記信用卡資訊以及儲值才能使用,相關的註冊方式可以參考網路上的影片。另外透過官網的操作介面建立並取得呼叫API所需要的API Key,這樣才能開始使用喔。
撰寫這個練習的主因是有時出國在外需要與人溝通,雖然現行的翻譯應用程式很多,但自己寫的比較自嗨,這個範例雖然使用Windows Form展示,但實際上筆者有改用Xamarin寫成app並安裝到android手機,網路穩定的狀況下速度尚可但不滿意。
開始吧!簡單整理一下步驟:
1、 建立Windows Form專案並放置需要的使用者畫面,如下:
2、 透過Nuget Package Manager安裝OpenAI的套件,如下圖:
3、 先using三個名稱空間:
using OpenAI_API; using OpenAI_API.Chat; using OpenAI_API.Models;
然後在Form Load事件先建立好呼叫API的物件,以及建立新的對話群,也可以設定要使用的模組,然後給定事先取得的API Key,也就是下列程式的"API KEY"的位置,需要自行替換喔。
OpenAIAPI? api = null;
Conversation? conversation = null;
private void Form1_Load(object sender, EventArgs e)
{
api = new OpenAIAPI("API KEY");
conversation = api.Chat.CreateConversation();
conversation.Model = Model.ChatGPTTurbo;
}
4、 然後中翻日按鈕的點選事件撰寫程式,透過適當的情境描述以及對話描述,讓ChatGPT給予適當的日文結果,程式如下:
private async void button1_Click(object sender, EventArgs e) { textBox1.Text= string.Empty; conversation.AppendSystemMessage("你是個來日本旅遊的遊客,希望能跟日本人溝通"); conversation.AppendUserInput($"請幫我把下列這段話翻譯成適當的日文,翻譯內容:「{textBox2.Text}」"); await conversation.StreamResponseFromChatbotAsync(x => { textBox1.Text += x; }); }
也在日翻中按鈕的點選事件撰寫程式,一樣透過適當的情境描述以及對話描述,讓ChatGPT給予適當的中文結果,程式如下:
private async void button2_Click(object sender, EventArgs e) { textBox2.Text = string.Empty; conversation.AppendSystemMessage("你是個日本人"); conversation.AppendUserInput($"請幫我把下列這段話翻譯成適當的中文,翻譯內容:「{textBox1.Text}」"); await conversation.StreamResponseFromChatbotAsync(x => { textBox2.Text += x; }); }
接下來就測試看看翻譯成日文的狀況如何,如下圖:
再來看看日文翻譯成中文的狀況如何,如下圖:
測試結果如果不滿意,大家可以調整情境設定跟對話設定來修正,而這就是跟坊間翻譯軟體不一樣的地方,透過隨時替換情境能得到不同的結果回覆;然後再透過對話內容也能翻譯成各種文字,這個範例只是個入門小練習,請大家發揮創意來測試吧!
0 意見:
張貼留言