Acceda a la API oficial de OpenAI CHATGPT usando Swift. Funciona en todas las plataformas de Apple.
platform :ios , '15.0'
use_frameworks!
target 'MyApp' do
pod 'ChatGPTSwift' , '~> 1.3.1'
end Regístrese para la tecla API desde OpenAI. Inicializar con la tecla API
let api = ChatGPTAPI ( apiKey : " API_KEY " ) Hay 2 API: transmisión y normal
El servidor transmitirá fragmentos de datos hasta que se complete, el método AsyncThrowingStream que puede hacer enrollar usando For-Loop así:
Task {
do {
let stream = try await api . sendMessageStream ( text : " What is ChatGPT? " )
for try await line in stream {
print ( line )
}
} catch {
print ( error . localizedDescription )
}
}Una solicitud HTTP normal y ciclo de vida de respuesta. El servidor enviará el texto completo (tomará más tiempo para responder)
Task {
do {
let response = try await api . sendMessage ( text : " What is ChatGPT? " )
print ( response )
} catch {
print ( error . localizedDescription )
}
}
Opcionalmente, puede proporcionar el modelo, el indicador del sistema, la temperatura y el modelo de tal manera.
let response = try await api . sendMessage ( text : " What is ChatGPT? " ,
model : " gpt-4 " ,
systemText : " You are a CS Professor " ,
temperature : 0.5 )Los valores predeterminados para estos parámetros son:
gpt-3.5-turboYou're a helpful assistant0.5Para obtener más información sobre esos parámetros, puede visitar la documentación oficial de la API de ChatGPT y la página de introducción de la API de ChatGPT
El cliente almacena la lista de historial de la conversación que se incluirá en el nuevo aviso, por lo que chatgpt consciente del contexto anterior de la conversación. Al enviar un nuevo aviso, el cliente se asegurará de que el recuento de tokens no exceda de 4096 usando la biblioteca GPTENCODER para calcular los tokens en la cadena, en caso de que exceda el token, algunas de las conversaciones anteriores se truncarán. En el futuro proporcionaré una API para especificar el umbral de token ya que el nuevo modelo GPT-4 acepta tokens de 8k mucho más grandes en un aviso.
Puede ver la lista de historial actual desde la propiedad historyList .
print ( api . historyList )También puede eliminar la lista de historia invocando
api . deleteHistoryList ( )Puede proporcionar su propia lista de historial, esto reemplazará la lista de historial almacenado. Recuerde no pasar el umbral de tokens 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 ) También he creado el codificador/decodificador GPTENCODER SWIFT BPE para modelos OpenAI GPT. Una interfaz programática para tokenizar el texto para la API de OpenAI GPT.
También he creado GPTTokenizerui, un SPM LIB que puede integrar en su aplicación para proporcionar GUI para ingresar texto y mostrar los resultados de tokenización utilizados por GPT API.
Puedes consultar las aplicaciones de demostración para iOS y macOS del repositorio swiftuichatgpt