Introducción
La biblioteca cliente para Python ofrece una interfaz fácil de usar para interactuar con los servicios de Port.
Instalación
Para integrar el cliente en tu proyecto, instálalo usando pip:
Características
Llamando a los Endpoints
Port gestiona las solicitudes de los endpoints a través de un sistema de colas, lo que garantiza la fiabilidad y la escalabilidad. Usa el método subscribe para enviar una solicitud y esperar el resultado.
Ejemplo:
import port_client
result = port_client.subscribe(
"black-forest-labs/flux-kontext-pro/text-to-image",
arguments={
"prompt": 'Un pueblo costero inspirado en Studio Ghibli con casas de colores, ropa tendida y gatos durmiendo en los alféizares de las ventanas.',
"width": 1024,
"height": 768,
"output_format": 'jpeg'
},
with_logs=True,
on_enqueue=print,
on_queue_update=print,
)
print(result)
Gestión de la Cola
Gestiona tus solicitudes con estos métodos:
Enviando una Solicitud
Envía una solicitud y recupera el request_id para usarlo más tarde.
Ejemplo:
import port_client
handler = port_client.submit(
"black-forest-labs/flux-kontext-pro/text-to-image",
arguments={
"prompt": 'Un pueblo costero inspirado en Studio Ghibli con casas de colores, ropa tendida y gatos durmiendo en los alféizares de las ventanas.',
"width": 1024,
"height": 768,
"output_format": 'jpeg'
},
webhook_url="https://optional.webhook.url/for/results",
)
request_id = handler.request_id
Comprobando el Estado de la Solicitud
Recupera el estado de una solicitud.
Ejemplo:
import port_client
status = port_client.status(request_id, with_logs=True)
Recuperando los Resultados de la Solicitud
Obtén el resultado de una solicitud completada.
Ejemplo:
import port_client
result = port_client.result(request_id)
Carga de Archivos
Sube archivos para obtener URLs para usar en solicitudes asíncronas. Esto es esencial para los modelos que procesan archivos, como los convertidores de imagen a video o de voz a texto.
Tamaño máximo de archivo: 100MB
Subiendo un Archivo Local
Puedes subir fácilmente un archivo desde tu sistema de archivos local. Esto es útil para scripts o aplicaciones que procesan datos locales.
import port_client
# Inicializa el cliente síncrono
client = port_client.SyncClient()
try:
# Sube un archivo desde una ruta dada
file_url = client.upload_file(path="path/to/your/image.png")
print(f"Archivo subido con éxito: {file_url}")
# Esta URL ahora se puede usar con un endpoint de modelo
except FileNotFoundError:
print("Error: No se encontró el archivo en la ruta especificada.")
except Exception as e:
print(f"Ocurrió un error: {e}")
Subiendo Datos en Memoria
También puedes subir datos que se encuentran en la memoria, como el contenido de una imagen creada con PIL (Pillow) o un archivo recibido en una solicitud web.
import port_client
from PIL import Image
import io
# Inicializa el cliente síncrono
client = port_client.SyncClient()
# Crea una imagen en memoria, por ejemplo con Pillow
image = Image.new("RGB", (600, 400), color = 'red')
byte_arr = io.BytesIO()
image.save(byte_arr, format='PNG')
image_bytes = byte_arr.getvalue()
# Sube los datos de la imagen en memoria usando el método `upload`
image_url = client.upload(
data=image_bytes,
content_type="image/png"
)
print(f"Imagen subida con éxito: {image_url}")
Soporte
Únete a nuestra comunidad para obtener ayuda o participar en debates:
¡Estamos aquí para ayudarte!