Zugriff auf OpenAI CHATGPT Offizielle API mit Swift. Arbeitet auf allen Apple -Plattformen.
platform :ios , '15.0'
use_frameworks!
target 'MyApp' do
pod 'ChatGPTSwift' , '~> 1.3.1'
end Registrieren Sie sich für den API -Schlüssel von OpenAI. Initialisieren Sie mit API -Schlüssel
let api = ChatGPTAPI ( apiKey : " API_KEY " ) Es gibt 2 APIs: Stream und Normal
Der Server streams Datenbrocken bis abgeschlossen, die Methode AsyncThrowingStream , die Sie mit For-Loop wie SO einschalten können:
Task {
do {
let stream = try await api . sendMessageStream ( text : " What is ChatGPT? " )
for try await line in stream {
print ( line )
}
} catch {
print ( error . localizedDescription )
}
}Ein normaler HTTP -Anfrage- und Antwortlebenszyklus. Der Server sendet den vollständigen Text (es dauert mehr Zeit für die Antwort)
Task {
do {
let response = try await api . sendMessage ( text : " What is ChatGPT? " )
print ( response )
} catch {
print ( error . localizedDescription )
}
}
Optional können Sie das Modell, die Systemaufforderung, die Temperatur und das Modell wie dies bereitstellen.
let response = try await api . sendMessage ( text : " What is ChatGPT? " ,
model : " gpt-4 " ,
systemText : " You are a CS Professor " ,
temperature : 0.5 )Standardwerte für diese Parameter sind:
gpt-3.5-turboYou're a helpful assistant0.5Um mehr über diese Parameter zu erfahren, können Sie die offizielle ChatGPT -API -Dokumentation und die Chatgpt -API -Einführungsseite besuchen
Der Kunde speichert die Geschichte des Gesprächs, die in der neuen Eingabeaufforderung enthalten sein wird, so Chatgpt, der sich über den vorherigen Kontext der Konversation bewusst ist. Wenn der Client eine neue Eingabeaufforderung sendet, stellt der Client sicher, dass die Token -Anzahl von 4096 mithilfe der GptEnCoder -Bibliothek nicht überschreitet, um die Token in der Zeichenfolge zu berechnen, falls er das Token überschritten hat, werden einige frühere Gespräche abgeschnitten. In Zukunft werde ich eine API zur Verfügung stellen, um den Token-Schwellenwert anzugeben, da das neue GPT-4-Modell in einer Eingabeaufforderung viel größere 8K-Token akzeptiert.
Sie können die aktuelle Verlaufsliste aus der Immobilie historyList anzeigen.
print ( api . historyList )Sie können die Verlaufsliste auch löschen, indem Sie aufgerufen werden
api . deleteHistoryList ( )Sie können Ihre eigene Verlaufsliste angeben. Dies ersetzt die gespeicherte Verlaufsliste. Denken Sie daran, die 4096 -Token -Schwelle nicht zu bestehen.
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 ) Ich habe auch den Gptencoder Swift BPE -Encoder/Decoder für OpenAI -GPT -Modelle erstellt. Eine programmatische Schnittstelle zum Tokenisierungstext für die OpenAI -GPT -API.
Ich habe auch GptTokenizerui erstellt, eine SPM -LIB, die Sie in Ihre App integrieren können, um GUI zur Eingabe von Text und die von der GPT -API verwendeten Tokenisierungsergebnisse anzuzeigen.
Sie können die Demo -Apps für iOS und macOS vom Swiftuichatgpt Repo überprüfen