Async Rost Library für OpenAI
async-openai ist eine inoffizielle Rostbibliothek für OpenAI.
Die Bibliothek liest den API -Schlüssel aus der Umgebungsvariablen OPENAI_API_KEY .
# On macOS/Linux
export OPENAI_API_KEY= ' sk-... ' # On Windows Powershell
$ Env: OPENAI_API_KEY = ' sk-... 'async-openai . Es werden nur Typen für Echtzeit -API implementiert und können mit realtime der Feature Flag aktiviert werden. Diese Typen können sich ändern, wenn/wenn OpenAI offizielle Spezifikationen für sie veröffentlicht.
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 ( ( ) )
}Vielen Dank, dass Sie sich die Zeit genommen haben, das Projekt beizutragen und zu verbessern. Ich würde mich freuen, dich zu haben!
Alle Formen von Beiträgen wie neue Funktionen, Fehlerbehebungen, Probleme, Dokumentation, Tests, Kommentare, Beispiele usw. sind willkommen.
Ein guter Ausgangspunkt wäre, vorhandene offene Probleme zu betrachten.
Um die Qualität des Projekts aufrechtzuerhalten, ist ein Minimum der folgenden Aussagen ein Muss für den Codebeitrag:
Dieses Projekt hält an Rost -Verhaltenskodex fest
Dieses Projekt ist unter MIT -Lizenz lizenziert.