Swiftを使用してOpenai ChatGPT公式APIにアクセスします。すべてのAppleプラットフォームで動作します。
platform :ios , '15.0'
use_frameworks!
target 'MyApp' do
pod 'ChatGPTSwift' , '~> 1.3.1'
end OpenaiからAPIキーに登録します。 APIキーで初期化します
let api = ChatGPTAPI ( apiKey : " API_KEY " ) ストリームと通常の2つのAPIがあります
サーバーは、完了するまでデータのチャンクAsyncThrowingStreamストリーミングします。
Task {
do {
let stream = try await api . sendMessageStream ( text : " What is ChatGPT? " )
for try await line in stream {
print ( line )
}
} catch {
print ( error . localizedDescription )
}
}通常のHTTP要求と応答ライフサイクル。サーバーは完全なテキストを送信します(応答するのにもっと時間がかかります)
Task {
do {
let response = try await api . sendMessage ( text : " What is ChatGPT? " )
print ( response )
} catch {
print ( error . localizedDescription )
}
}
オプションで、モデル、システムプロンプト、温度、モデルを提供できます。
let response = try await api . sendMessage ( text : " What is ChatGPT? " ,
model : " gpt-4 " ,
systemText : " You are a CS Professor " ,
temperature : 0.5 )これらのパラメーターのデフォルト値は次のとおりです。
gpt-3.5-turboYou're a helpful assistant0.5これらのパラメーターの詳細については、公式のChatGPT APIドキュメントとChatGPT APIの紹介ページにアクセスできます
クライアントは、新しいプロンプトに含まれる会話の履歴リストを保存しているため、ChatGptは以前の会話のコンテキストを認識します。新しいプロンプトを送信すると、クライアントは、トークンを超えてトークンを計算してトークンを計算するためにトークンカウントが4096を超えていないことを確認します。トークンを超えた場合、以前の会話の一部は切り捨てられます。将来的には、新しいGPT-4モデルがプロンプトのはるかに大きな8Kトークンを受け入れると、トークンのしきい値を指定するAPIを提供します。
historyListプロパティから現在の履歴リストを表示できます。
print ( api . historyList )[履歴]リストを呼び出して削除することもできます
api . deleteHistoryList ( )独自の履歴リストを提供できます。これは、保存された履歴リストを置き換えます。 4096トークンのしきい値に合格しないことを忘れないでください。
let myHistoryList = [
Message ( role : " user " , content : " who is james bond? " )
Message ( role : " assistant " , content : " secret british agent with codename 007 " ) ,
Message ( role : " user " , content : " which one is the latest movie? " ) ,
Message ( role : " assistant " , content : " It's No Time to Die played by Daniel Craig " )
]
api . replaceHistoryList ( with : myHistoryList ) また、OpenAI GPTモデル用のGptenCoder Swift BPEエンコーダー/デコーダーも作成しました。 OpenAI GPT APIのテキストをトークン化するためのプログラムインターフェイス。
また、テキストを入力し、GPT APIで使用されているトークン化結果を表示するためにGUIを提供するためにアプリに統合できるSPM LIBであるGptTokenizeruiも作成しました。
swiftuichatgptリポジトリのiOSおよびmacosのデモアプリを確認できます