Akses Openai Chatgpt API Resmi Menggunakan Swift. Bekerja di semua platform Apple.
platform :ios , '15.0'
use_frameworks!
target 'MyApp' do
pod 'ChatGPTSwift' , '~> 1.3.1'
end Daftar untuk Kunci API dari OpenAI. Inisialisasi dengan kunci API
let api = ChatGPTAPI ( apiKey : " API_KEY " ) Ada 2 API: Stream dan Normal
Server akan mengalirkan potongan data hingga selesai, metode AsyncThrowingStream yang dapat Anda loop menggunakan for-loop seperti demikian:
Task {
do {
let stream = try await api . sendMessageStream ( text : " What is ChatGPT? " )
for try await line in stream {
print ( line )
}
} catch {
print ( error . localizedDescription )
}
}Permintaan HTTP dan siklus hidup respons yang normal. Server akan mengirim teks lengkap (ini akan membutuhkan lebih banyak waktu untuk menanggapi)
Task {
do {
let response = try await api . sendMessage ( text : " What is ChatGPT? " )
print ( response )
} catch {
print ( error . localizedDescription )
}
}
Secara opsional, Anda dapat memberikan model, prompt sistem, suhu, dan model seperti itu.
let response = try await api . sendMessage ( text : " What is ChatGPT? " ,
model : " gpt-4 " ,
systemText : " You are a CS Professor " ,
temperature : 0.5 )Nilai default untuk parameter ini adalah:
gpt-3.5-turboYou're a helpful assistant0.5Untuk mempelajari lebih lanjut tentang parameter tersebut, Anda dapat mengunjungi dokumentasi API chatgpt resmi dan halaman pengantar chatgpt API
Klien menyimpan daftar sejarah percakapan yang akan dimasukkan dalam prompt baru sehingga chatgpt sadar akan konteks percakapan sebelumnya. Saat mengirim prompt baru, klien akan memastikan jumlah token tidak melebihi 4096 menggunakan pustaka GPTEncoder untuk menghitung token dalam string, jika itu melebihi token, beberapa percakapan sebelumnya akan dipotong. Di masa depan saya akan menyediakan API untuk menentukan ambang batas token sebagai model GPT-4 baru menerima token 8K yang lebih besar dalam prompt.
Anda dapat melihat daftar sejarah saat ini dari properti historyList .
print ( api . historyList )Anda juga dapat menghapus daftar sejarah dengan memohon
api . deleteHistoryList ( )Anda dapat memberikan daftar sejarah Anda sendiri, ini akan menggantikan daftar sejarah yang disimpan. Ingatlah untuk tidak melewati ambang batas 4096 Tokens.
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 ) Saya juga telah membuat encoder/decoder GPTECODER Swift BPE untuk model OpenAI GPT. Antarmuka terprogram untuk Tokenisasi Teks untuk OpenAI GPT API.
Saya juga telah membuat gpttokenizerui, lib SPM yang dapat Anda integrasikan dalam aplikasi Anda untuk menyediakan GUI untuk memasukkan teks dan menunjukkan hasil tokenisasi yang digunakan oleh GPT API.
Anda dapat memeriksa aplikasi demo untuk iOS dan macOS dari repo swiftuichatgpt