網路城邦
上一篇 回創作列表 下一篇   字體:
C#掌握”OpenAI API”:Betalgo.OpenAI.GPT3入門指南
2023/11/23 09:11:12瀏覽32|回應0|推薦0

本篇文將介紹Betalgo.OpenAI.GPT3,這是一款用於訪問 OpenAI ChatGPT, Whisper, GPT-3 and DALL·E.NET SDK,也是官方OpenAIAPI文件推薦的C#/NET類別庫,接下來照著下面的步驟,就可以快速地開始透過C#使用OpenAI API

1.建立.net6.0專案

2.安裝以下Nuget套件

  • OpenAI.GPT3 //本篇介紹的套件
  • Microsoft.Extensions.Configuration //設定Config
  • Microsoft.Extensions.Configuration.Json //讀取Config.json
  • Extensions.DependencyInjection //注入時須要使用

3.去https://platform.openai.com/account/api-keys 取得你帳號的API Key

4.鍵入以下程式碼,並把API Key換成剛剛上一步取得的API Key

若專案類型是web API則推薦使用注入的方式

之後使用以下程式碼就可以取得IOpenAIService的實體

5.執行結果如下

接下來討論細節

1.第2行的OPENAPI_TOKEN
除了使用字串、讀取Config外,也推薦使用微軟提供的管理使用者密碼功能(user secret),詳細請看https://learn.microsoft.com/en-us/aspnet/core/security/app-secrets?view=aspnetcore-6.0&tabs=windows

2.第3行的CompletionCreateRequest
CompletionCreateRequest屬於Completions端點,而除了Completions之外,根據你的用途可以設不同的端點,Chat GPT、Image DALL·E、Edit、Embeddings、Files,詳細請看https://github.com/betalgo/openai/wiki

3.第5行的Prompt為問OpenAI的問題

4.第6行的Model為OpenAI所使用的模型

另外GPT還有細分指令Ada、Babbage、Curie、Davinci,詳細請看https://platform.openai.com/docs/models/gpt-3-5,因為模型跟價格有關,所以可以多嘗試找出成本最低又符合需求的模型

5.第10行的res.Successful,筆者在測試的時候,有遇過連線失敗,故失敗時最好還是把失敗訊息印出來或是做重試

6.價格-OpenAI提供錢3個月18美元的額度,過了3個月或是超過額度之後就得付錢或是藉由換帳號更換API key再度取得18美元的額度

實作後會發現問題,ChatGPT是像打字一樣的回應,而上面的實作是一次將回答輸出,要像ChatGPT一樣,我們得將Completions端點改為Completions Stream,將第3行程式碼替換成以下

若是遇到回應被截斷,那是因為第5行的MaxTokens我們限制在500(默認為16),若是設定太長,價格也會因為回答太長跟著上升,需要多加注意

除了MaxTokens外,還有一些可以參數設定來影響結果,如下表格

礙於篇幅只能介紹到這,還有許多功能沒介紹到,如Image、File等等,OpenAI API還有相當多的功能可以使用,若是對OpenAI API有興趣,想使用C#來運用,真的很推薦這款套件!


參考資料

  1. https://platform.openai.com/docs/introduction OpenAI官方文件
  2. https://github.com/betalgo/openai/wiki Betalgo.OpenAI.GPT3 Github

( 知識學習其他 )
回應 推薦文章 列印 加入我的文摘
上一篇 回創作列表 下一篇

引用
引用網址:https://classic-blog.udn.com/article/trackback.jsp?uid=acaj2018&aid=180046549