Biblioteca de ferrugem assíncrona para o OpenAi
async-openai é uma biblioteca de ferrugem não oficial do OpenAI.
A biblioteca lê a tecla API da variável de ambiente OPENAI_API_KEY .
# On macOS/Linux
export OPENAI_API_KEY= ' sk-... ' # On Windows Powershell
$ Env: OPENAI_API_KEY = ' sk-... 'async-openai . Somente tipos de API em tempo real são implementados e podem ser ativados com o sinalizador de recursos realtime . Esses tipos podem mudar se/quando o OpenAI libera especificações oficiais para eles.
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 ( ( ) )
}Obrigado por reservar um tempo para contribuir e melhorar o projeto. Eu ficaria feliz em ter você!
Todas as formas de contribuições, como novas solicitações de recursos, correções de bugs, problemas, documentação, teste, comentários, exemplos etc. são bem -vindos.
Um bom ponto de partida seria analisar os problemas abertos existentes.
Para manter a qualidade do projeto, um mínimo do seguinte é uma obrigação para a contribuição do código:
Este projeto segue o código de conduta de ferrugem
Este projeto está licenciado sob licença do MIT.