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 reproducirasync: 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
Validación de URL: Verifica que la URL de entrada cumpla con las especificaciones básicas de formato de URL
Manejo de Protocolos:
Si el protocolo es
httpohttps, reemplazarlo directamente coniplayoiplayspython# Ejemplo http://example.com/video.mp4 -> iplay://example.com/video.mp4 https://example.com/video.mp4 -> iplays://example.com/video.mp4Si es otro protocolo, usar el formato genérico:
pythoniplay://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 FalseEjemplo 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
- Asegúrese de que el reproductor iPlay esté instalado en el sistema del usuario
- Esta herramienta retorna inmediatamente sin esperar a que el reproductor inicie o el video cargue
- Para formatos de URL no compatibles, la herramienta retorna
False - Se recomienda agregar manejo de errores y registro más detallado en entornos de producción