Introdução
A biblioteca cliente para Python oferece uma interface fácil de usar para interagir com os serviços da Port.
Instalação
Para integrar o cliente ao seu projeto, instale-o usando pip:
Recursos
Chamando Endpoints
A Port 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:
import port_client
result = port_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:
import port_client
handler = port_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:
import port_client
status = port_client.status(request_id, with_logs=True)
Recuperando Resultados da Solicitação
Busque o resultado de uma solicitação concluída.
Exemplo:
import port_client
result = port_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.
Tamanho máximo do arquivo: 100MB
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.
import port_client
# Inicialize o cliente síncrono
client = port_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.
import port_client
from PIL import Image
import io
# Inicialize o cliente síncrono
client = port_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}")
Suporte
Junte-se à nossa comunidade para obter ajuda ou participar de discussões:
Estamos aqui para ajudá-lo!