Bibliothèque de rouille asynchrone pour Openai
async-openai est une bibliothèque de rouille non officielle pour Openai.
La bibliothèque lit la touche API à partir de la variable d'environnement OPENAI_API_KEY .
# On macOS/Linux
export OPENAI_API_KEY= ' sk-... ' # On Windows Powershell
$ Env: OPENAI_API_KEY = ' sk-... 'async-openai . Seuls les types pour l'API en temps réel sont implémentés et peuvent être activés avec le drapeau de fonctionnalité realtime . Ces types peuvent changer si / quand OpenAI publie des spécifications officielles pour eux.
use async_openai :: {
types :: { CreateImageRequestArgs , ImageSize , ImageResponseFormat } ,
Client ,
} ;
use std :: error :: Error ;
# [ tokio :: main ]
async fn main ( ) -> Result < ( ) , Box < dyn Error > > {
// create client, reads OPENAI_API_KEY environment variable for API key.
let client = Client :: new ( ) ;
let request = CreateImageRequestArgs :: default ( )
. prompt ( "cats on sofa and carpet in living room" )
. n ( 2 )
. response_format ( ImageResponseFormat :: Url )
. size ( ImageSize :: S256x256 )
. user ( "async-openai" )
. build ( ) ? ;
let response = client . images ( ) . create ( request ) . await ? ;
// Download and save images to ./data directory.
// Each url is downloaded and saved in dedicated Tokio task.
// Directory is created if it doesn't exist.
let paths = response . save ( "./data" ) . await ? ;
paths
. iter ( )
. for_each ( |path| println ! ( "Image file path: {}" , path.display ( ) ) ) ;
Ok ( ( ) )
}Merci d'avoir pris le temps de contribuer et d'améliorer le projet. Je serais heureux de vous avoir!
Toutes les formes de contributions, telles que les nouvelles demandes de fonctionnalités, les corrections de bogues, les problèmes, la documentation, les tests, les commentaires, les exemples, etc. sont les bienvenues.
Un bon point de départ serait d'examiner les problèmes ouverts existants.
Pour maintenir la qualité du projet, un minimum des éléments suivants est un must pour la contribution du code:
Ce projet adhère au code de conduite de la rouille
Ce projet est autorisé sous licence MIT.