> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sunra.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Python

[![PyPI - Versão](https://img.shields.io/pypi/v/sunra_client)](https://pypi.org/project/sunra_client)

### Introdução

A biblioteca cliente para Python oferece uma interface fácil de usar para interagir com os serviços da Sunra.

### Instalação

Para integrar o cliente ao seu projeto, instale-o usando pip:

```bash theme={null}
pip install sunra-client
```

### Recursos

#### Chamando Endpoints

A Sunra gerencia as solicitações de endpoint por meio de um sistema de filas, garantindo confiabilidade e escalabilidade. Use o método `subscribe` para enviar uma solicitação e aguardar o resultado.

**Exemplo:**

```python theme={null}
import sunra_client

result = sunra_client.subscribe(
    "black-forest-labs/flux-kontext-pro/text-to-image",
    arguments={
        "prompt": 'Uma cidade litorânea inspirada no Studio Ghibli com casas coloridas, roupas balançando no varal e gatos dormindo nos parapeitos das janelas.',
        "width": 1024,
        "height": 768,
        "output_format": 'jpeg'
    },
    with_logs=True,
    on_enqueue=print,
    on_queue_update=print,
)
print(result)
```

#### Gerenciamento de Fila

Gerencie suas solicitações com estes métodos:

##### Enviando uma Solicitação

Envie uma solicitação e recupere o `request_id` para uso posterior.

**Exemplo:**

```python theme={null}
import sunra_client

handler = sunra_client.submit(
    "black-forest-labs/flux-kontext-pro/text-to-image",
    arguments={
      "prompt": 'Uma cidade litorânea inspirada no Studio Ghibli com casas coloridas, roupas balançando no varal e gatos dormindo nos parapeitos das janelas.',
      "width": 1024,
      "height": 768,
      "output_format": 'jpeg'
    },
    webhook_url="https://optional.webhook.url/for/results",
)
request_id = handler.request_id
```

##### Verificando o Status da Solicitação

Recupere o status de uma solicitação.

**Exemplo:**

```python theme={null}
import sunra_client
status = sunra_client.status(request_id, with_logs=True)
```

##### Recuperando Resultados da Solicitação

Busque o resultado de uma solicitação concluída.

**Exemplo:**

```python theme={null}
import sunra_client
result = sunra_client.result(request_id)
```

#### Upload de Arquivos

Faça upload de arquivos para obter URLs para uso em solicitações assíncronas. Isso é essencial para modelos que processam arquivos, como conversores de imagem para vídeo ou de fala para texto.

<Note>Tamanho máximo do arquivo: 100MB</Note>

##### Fazendo Upload de um Arquivo Local

Você pode facilmente fazer upload de um arquivo do seu sistema de arquivos local. Isso é útil para scripts ou aplicativos que processam dados locais.

```python theme={null}
import sunra_client

# Inicialize o cliente síncrono
client = sunra_client.SyncClient()

try:
  # Faça upload de um arquivo de um caminho específico
  file_url = client.upload_file(path="path/to/your/image.png")
  print(f"Arquivo enviado com sucesso: {file_url}")
  # Esta URL agora pode ser usada com um endpoint de modelo
except FileNotFoundError:
  print("Erro: O arquivo não foi encontrado no caminho especificado.")
except Exception as e:
  print(f"Ocorreu um erro: {e}")
```

##### Fazendo Upload de Dados em Memória

Você também pode fazer upload de dados que estão na memória, como o conteúdo de uma imagem criada com PIL (Pillow) ou um arquivo recebido em uma solicitação da web.

<CodeGroup>
  ```python Imagem PIL theme={null}
  import sunra_client
  from PIL import Image
  import io

  # Inicialize o cliente síncrono
  client = sunra_client.SyncClient()

  # Crie uma imagem na memória, por exemplo, com Pillow
  image = Image.new("RGB", (600, 400), color = 'red')
  byte_arr = io.BytesIO()
  image.save(byte_arr, format='PNG')
  image_bytes = byte_arr.getvalue()

  # Faça upload dos dados da imagem em memória usando o método `upload`
  image_url = client.upload(
      data=image_bytes,
      content_type="image/png"
  )
  print(f"Imagem enviada com sucesso: {image_url}")
  ```

  ```python Bytes Brutos theme={null}
  import sunra_client

  # Inicialize o cliente síncrono
  client = sunra_client.SyncClient()

  # Alguns bytes brutos que você pode ter ao ler um arquivo ou uma solicitação da web
  raw_data = b"some file content here"

  # Faça upload dos bytes brutos
  data_url = client.upload(
      data=raw_data,
      content_type="application/octet-stream"
  )
  print(f"Dados enviados com sucesso: {data_url}")
  ```
</CodeGroup>

### Suporte

Junte-se à nossa comunidade para obter ajuda ou participar de discussões:

* **Comunidade do Discord**: [Junte-se a nós](https://discord.gg/897qCzvCcU)
* **Repositório do GitHub**: [Visite aqui](https://github.com/sunra-ai/sunra-clients)

Estamos aqui para ajudá-lo!
