Skip to content

Guía de Desarrollo de Herramientas Langchain

Descripción General

iPlay proporciona integración con Langchain Tool, permitiendo a los asistentes de IA llamar directamente al reproductor iPlay para abrir y reproducir enlaces de video.

Herramienta iplay_open_async

Descripción

iplay_open_async es una herramienta asíncrona para abrir enlaces de video en el reproductor iPlay. Esta herramienta retorna inmediatamente sin bloquear la ejecución del programa.

Firma de la Función

python
@tool
def iplay_open_async(url: str) -> bool:
    """
    Abrir un enlace de video en el reproductor iPlay
    
    Args:
        url: Enlace de video a reproducir
        
    Returns:
        bool: True si el enlace fue construido y abierto exitosamente, False en caso contrario
    """

Parámetros

  • url (str): El enlace de video a reproducir
  • async: Implementado a través del nombre del esquema, indica que la herramienta retorna inmediatamente después de abrir iPlay sin bloquear

Lógica de Implementación

  1. Validación de URL: Verifica que la URL de entrada cumpla con las especificaciones básicas de formato de URL

  2. Manejo de Protocolos:

    • Si el protocolo es http o https, reemplazarlo directamente con iplay o iplays

      python
      # Ejemplo
      http://example.com/video.mp4  -> iplay://example.com/video.mp4
      https://example.com/video.mp4 -> iplays://example.com/video.mp4
    • Si es otro protocolo, usar el formato genérico:

      python
      iplay://play/any?type=url&url={base64_encoded_url}

Código de Ejemplo

python
from langchain.tools import tool
from urllib.parse import urlparse, urlencode
import base64
import webbrowser

@tool
def iplay_open_async(url: str) -> bool:
    """Abrir un enlace de video en el reproductor iPlay (async)"""
    
    try:
        # Validar URL
        parsed = urlparse(url)
        if not parsed.scheme or not parsed.netloc:
            return False
        
        # Construir enlace de protocolo iPlay basado en el tipo de protocolo
        if parsed.scheme in ['http', 'https']:
            # Reemplazo directo de protocolo
            iplay_scheme = 'iplays' if parsed.scheme == 'https' else 'iplay'
            iplay_url = url.replace(parsed.scheme, iplay_scheme, 1)
        else:
            # Usar formato genérico
            encoded_url = base64.b64encode(url.encode()).decode()
            iplay_url = f"iplay://play/any?type=url&url={encoded_url}"
        
        # Abrir enlace (async, retorna inmediatamente)
        webbrowser.open(iplay_url)
        return True
        
    except Exception:
        return False

Ejemplo de Uso

python
from langchain.agents import initialize_agent, AgentType
from langchain.llms import OpenAI

# Inicializar herramientas y agente
llm = OpenAI(temperature=0)
tools = [iplay_open_async]

agent = initialize_agent(
    tools=tools,
    llm=llm,
    agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
    verbose=True
)

# Usar agente para reproducir video
agent.run("Por favor reproduce https://example.com/video.mp4 en iPlay")

Notas

  1. Asegúrese de que el reproductor iPlay esté instalado en el sistema del usuario
  2. Esta herramienta retorna inmediatamente sin esperar a que el reproductor inicie o el video cargue
  3. Para formatos de URL no compatibles, la herramienta retorna False
  4. Se recomienda agregar manejo de errores y registro más detallado en entornos de producción

Enlaces Relacionados