Automatice los flujos de trabajo basados en el navegador utilizando LLM y Computer Vision
Skyvern automatiza los flujos de trabajo basados en navegador utilizando LLM y visión por computadora. Proporciona un punto final API simple para automatizar completamente los flujos de trabajo manuales en una gran cantidad de sitios web, reemplazando soluciones de automatización frágiles o poco confiables.
Los enfoques tradicionales para las automatizaciones de navegadores requerían escribir scripts personalizados para sitios web, a menudo basándose en análisis DOM e interacciones basadas en XPath que se interrumpían cada vez que cambiaba el diseño del sitio web.
En lugar de depender únicamente de interacciones XPath definidas por código, Skyvern se basa en indicaciones además de visión por computadora y LLM para analizar elementos en la ventana gráfica en tiempo real, crear un plan de interacción e interactuar con ellos.
Este enfoque nos ofrece algunas ventajas:
Skyvern puede operar en sitios web nunca antes vistos, ya que es capaz de asignar elementos visuales a acciones necesarias para completar un flujo de trabajo, sin ningún código personalizado.
Skyvern es resistente a los cambios en el diseño del sitio web, ya que no hay XPath predeterminados u otros selectores que nuestro sistema esté buscando al intentar navegar.
Skyvern puede tomar un único flujo de trabajo y aplicarlo a una gran cantidad de sitios web, ya que puede razonar a través de las interacciones necesarias para completar el flujo de trabajo.
Skyvern aprovecha los LLM para razonar a través de interacciones y garantizar que podamos cubrir situaciones complejas. Los ejemplos incluyen:
Si desea obtener una cotización de seguro de automóvil de Geico, la respuesta a una pregunta común "¿Era elegible para conducir a los 18 años?" podría inferirse de que el conductor recibió su licencia a los 16 años
Si estuviera haciendo un análisis de la competencia, comprendería que una lata de 22 oz de Arnold Palmer en 7/11 es casi definitivamente el mismo producto que una lata de 23 oz en Gopuff (aunque los tamaños son ligeramente diferentes, lo que podría ser un error de redondeo).
¿Quieres ver ejemplos de Skyvern en acción? Saltar a #ejemplos-del-mundo-real-de-skyvern
Skyvern se inspiró en el diseño de agente autónomo basado en tareas popularizado por BabyAGI y AutoGPT, con una ventaja importante: le brindamos a Skyvern la capacidad de interactuar con sitios web utilizando bibliotecas de automatización del navegador como Playwright.
Skyvern utiliza un enjambre de agentes para comprender un sitio web, planificar y ejecutar sus acciones:
Agente de elementos interactivos : este agente es responsable de analizar el HTML de un sitio web y extraer los elementos interactivos.
Agente de navegación : este agente es responsable de planificar la navegación para completar una tarea. Los ejemplos incluyen hacer clic en botones, insertar texto, seleccionar opciones, etc.
Agente de extracción de datos : este agente es responsable de extraer datos de un sitio web. Es capaz de leer las tablas y el texto de la página y extraer el resultado en un formato estructurado definido por el usuario.
Agente de contraseñas : este agente es responsable de completar formularios de contraseña en un sitio web. Es capaz de leer el nombre de usuario y la contraseña de un administrador de contraseñas y completar el formulario preservando la privacidad de los secretos definidos por el usuario.
Agente 2FA : este agente es responsable de completar formularios 2FA en un sitio web. Es capaz de interceptar solicitudes de 2FA de sitios web y solicitar API definidas por el usuario para códigos 2FA o esperar a que los usuarios introduzcan códigos 2FA y luego completar el proceso de inicio de sesión.
Agente de autocompletar dinámico : este agente es responsable de completar formularios de autocompletar dinámicos en un sitio web. Es capaz de leer las opciones que se le presentan, seleccionar la opción apropiada según la entrada del usuario y ajustar sus entradas según los comentarios desde el interior del formulario. Los ejemplos populares incluyen: formularios de direcciones, menús desplegables de universidades y más.
Ofrecemos una versión administrada en la nube de Skyvern que le permite ejecutar Skyvern sin tener que administrar la infraestructura. Le permite ejecutar múltiples instancias de Skyvern en paralelo para automatizar sus flujos de trabajo a escala. Además, la nube Skyvern viene con mecanismos de detección anti-bot, red proxy y resolución CAPTCHA para permitirle completar flujos de trabajo más complicados.
Si quieres probarlo,
Vaya a app.skyvern.com
Cree una cuenta y obtenga $5 de créditos por nuestra cuenta
¡Comienza tu primera tarea y mira a Skyvern en acción!
A continuación te damos algunos consejos que pueden ayudarte en tu aventura:
Skyvern es realmente bueno para lograr un único objetivo. Si le das demasiadas instrucciones, es muy probable que se confunda en el camino.
Ser realmente explícito acerca de los objetivos es muy importante. Por ejemplo, si está generando una cotización de seguro, hágale saber muy claramente cómo puede identificar que ha logrado sus objetivos. Utilice palabras como "COMPLETAR" o "TERMINAR" para indicar los modos de éxito y fracaso, respectivamente.
Los flujos de trabajo se pueden utilizar si desea hacer cosas más avanzadas, como encadenar varias instrucciones o iniciar sesión de forma segura. Si necesita ayuda con esto, no dude en reservar algo de tiempo con nosotros. Siempre estaremos felices de ayudar
Esta guía de inicio rápido lo guiará para instalar y ejecutar Skyvern en su máquina local.
Asegúrese de tener Docker Desktop instalado y ejecutándose en su máquina
Asegúrese de no tener postgres ejecutándose localmente (ejecute docker ps
para verificar)
Clona el repositorio y navega hasta el directorio raíz.
Complete la clave del proveedor LLM en docker-compose.yml. Si desea ejecutar Skyvern en un servidor remoto, asegúrese de configurar la IP del servidor correcta para el contenedor de la interfaz de usuario en docker-compose.yml.
Ejecute el siguiente comando a través de la línea de comando:
ventana acoplable componer -d
Navegue hasta http://localhost:8080
en su navegador para comenzar a usar la interfaz de usuario.
Antes de comenzar, asegúrese de tener instalado lo siguiente:
Brew (si estás en una Mac)
Poesía
brew install poetry
nodo
Estibador
Nota: Nuestro script de configuración hace estos dos por usted, pero están aquí como referencia.
Pitón 3.11
poetry env use 3.11
PostgreSQL 14 (si estás en una Mac, el script de instalación lo instalará si tienes instalado Homebrew)
brew install postgresql
Clona el repositorio y navega hasta el directorio raíz.
Abra Docker Desktop (funciona para Windows, macOS y Linux) o ejecute Docker Daemon
Ejecute el script de instalación para instalar las dependencias necesarias y configurar su entorno.
./setup.sh
Iniciar el servidor
./run_skyvern.sh
Puede comenzar a enviar solicitudes al servidor, pero creamos una interfaz de usuario simple para ayudarlo a comenzar. Para iniciar la interfaz de usuario, ejecute el siguiente comando:
./run_ui.sh
Navegue hasta http://localhost:8080
en su navegador para comenzar a usar la interfaz de usuario.
Si desea contribuir a Skyvern, deberá instalar los enlaces de confirmación previa para garantizar la calidad y coherencia del código. Puedes hacer esto ejecutando el siguiente comando:
instalación previa a la confirmación
Las tareas son la pieza fundamental dentro de Skyvern. Cada tarea es una única solicitud a Skyvern, que le indica que navegue por un sitio web y logre un objetivo específico.
Las tareas requieren que especifique una url
, navigation_goal
y, opcionalmente, data_extraction_goal
si desea extraer datos del sitio web y una navigation_payload
si desea proporcionar contexto adicional para ayudar a Skyvern a completar la información o responder las preguntas presentadas por un sitio web.
Los flujos de trabajo son una forma de encadenar múltiples tareas para formar una unidad de trabajo cohesiva.
Por ejemplo, si desea descargar todas las facturas posteriores al 1 de enero, puede crear un flujo de trabajo que primero navegue a la página de facturas, luego filtre para mostrar solo las facturas posteriores al 1 de enero, extraiga una lista de todas las facturas elegibles y repita a través de cada factura para descargarla.
Otro ejemplo es que si desea automatizar la compra de productos en una tienda de comercio electrónico, puede crear un flujo de trabajo que primero navegue hasta el producto deseado y luego lo agregue a un carrito. En segundo lugar, navegaría hasta el carrito y validaría su estado. Finalmente, pasaría por el proceso de pago para comprar los artículos.
Las características de flujo de trabajo admitidas incluyen:
Tareas (+ tareas encadenadas)
Bucles
análisis de archivos
Subir archivos para bloquear el almacenamiento
Enviar correos electrónicos
Mensajes de texto
(Próximamente) Condicionales
(Próximamente) Bloque de código personalizado
Skyvern le permite transmitir en vivo la ventana gráfica del navegador a su máquina local para que pueda ver exactamente lo que Skyvern está haciendo en la web. Esto es útil para depurar y comprender cómo interactúa Skyvern con un sitio web e intervenir cuando sea necesario.
Skyvern es capaz de forma nativa de completar formularios en sitios web. Pasar información a través de navigation_goal
o navigation_payload
permitirá a Skyvern comprender la información y completar el formulario en consecuencia.
Skyvern también es capaz de extraer datos de un sitio web. Especificar un data_extraction_goal
permitirá a Skyvern extraer los datos y devolvérselo en la respuesta.
También puede especificar un data_extraction_schema
para indicarle a Skyvern exactamente qué datos desea extraer del sitio web, en formato jsonc. La producción de Skyvern se estructurará de acuerdo con el esquema proporcionado.
Skyvern también es capaz de descargar archivos desde un sitio web. Especificar un file_download_goal
permitirá a Skyvern descargar el archivo y devolver un enlace al archivo en la respuesta.
Skyvern admite varios métodos de autenticación diferentes para facilitar la automatización de tareas tras un inicio de sesión.
Skyvern actualmente admite las siguientes integraciones de administradores de contraseñas:
bitwarden
1contraseña
último pase
Skyvern admite varios métodos 2FA diferentes para permitirle automatizar flujos de trabajo que requieren 2FA.
Los ejemplos incluyen:
2FA basado en QR (por ejemplo, Google Authenticator, Authy)
2FA basado en correo electrónico
2FA basado en SMS
Nos encanta ver cómo se utiliza Skyvern en la naturaleza. A continuación se muestran algunos ejemplos de cómo se utiliza Skyvern para automatizar los flujos de trabajo en el mundo real. ¡Abra las relaciones públicas para agregar sus propios ejemplos!
Necesitará tener Skyvern ejecutándose localmente si desea probar estos ejemplos. Ejecute el siguiente comando después de leer la guía de inicio rápido:
./run_skyvern.sh
Reserva una demostración para verlo en vivo
Véalo en acción
Véalo en acción
Véalo en acción
Véalo en acción
Véalo en acción
Véalo en acción
Puede encontrar documentación más extensa en nuestro sitio web de documentación. Háganos saber si falta algo o no está claro abriendo un problema o comunicándose con nosotros por correo electrónico o discord.
Proveedor | Modelos compatibles |
---|---|
AbiertoAI | gpt4-turbo, gpt-4o, gpt-4o-mini |
antrópico | Claude 3 (Haiku, Soneto, Opus), Claude 3.5 (Soneto) |
Azure abierto AI | Cualquier modelo GPT. Mejor rendimiento con una película multimodal (azure/gpt4-o) |
Base de AWS | Antrópico Claude 3 (Haiku, Soneto, Opus), Claude 3.5 (Soneto) |
Ollama | Próximamente (se aceptan contribuciones) |
Géminis | Próximamente (se aceptan contribuciones) |
Llama 3.2 | Próximamente (se aceptan contribuciones) |
Variable | Descripción | Tipo | Valor de muestra |
---|---|---|---|
ENABLE_OPENAI | Registrar modelos OpenAI | Booleano | true , false |
ENABLE_ANTHROPIC | Registrar modelos antrópicos | Booleano | true , false |
ENABLE_AZURE | Registrar modelos de Azure OpenAI | Booleano | true , false |
ENABLE_BEDROCK | Registrar modelos de AWS Bedrock | Booleano | true , false |
LLM_KEY | El nombre del modelo que deseas utilizar. | Cadena | Claves de llm actualmente admitidas: OPENAI_GPT4_TURBO , OPENAI_GPT4V , OPENAI_GPT4O , OPENAI_GPT4O_MINI , ANTHROPIC_CLAUDE3 , ANTHROPIC_CLAUDE3_OPUS , ANTHROPIC_CLAUDE3_SONNET , ANTHROPIC_CLAUDE3_HAIKU , ANTHROPIC_CLAUDE3.5_SONNET , BEDROCK_ANTHROPIC_CLAUDE3_OPUS , BEDROCK_ANTHROPIC_CLAUDE3_SONNET , BEDROCK_ANTHROPIC_CLAUDE3_HAIKU , BEDROCK_ANTHROPIC_CLAUDE3.5_SONNET , AZURE_OPENAI |
OPENAI_API_KEY | Clave API de OpenAI | Cadena | sk-1234567890 |
OPENAI_API_BASE | Base de API OpenAI, opcional | Cadena | https://openai.api.base |
OPENAI_ORGANIZATION | ID de organización OpenAI, opcional | Cadena | your-org-id |
ANTHROPIC_API_KEY | Clave API antrópica | Cadena | sk-1234567890 |
AZURE_API_KEY | Clave API de implementación de Azure | Cadena | sk-1234567890 |
AZURE_DEPLOYMENT | Nombre de implementación de Azure OpenAI | Cadena | skyvern-deployment |
AZURE_API_BASE | URL base de la API de implementación de Azure | Cadena | https://skyvern-deployment.openai.azure.com/ |
AZURE_API_VERSION | Versión de la API de Azure | Cadena | 2024-02-01 |
Esta es nuestra hoja de ruta prevista para los próximos meses. Si tiene alguna sugerencia o le gustaría que se agregue una función, no dude en comunicarse con nosotros por correo electrónico o discord.
Código abierto : código base central de código abierto Skyvern
[BETA] Soporte de flujo de trabajo : permite que el soporte encadene varias llamadas de Skyvern juntas
Contexto mejorado : mejore la capacidad de Skyvern para comprender el contenido en torno a elementos interactivos al introducir el contexto de etiqueta relevante a través del mensaje de texto.
Ahorro de costos : mejore la estabilidad de Skyvern y reduzca el costo de ejecutar Skyvern optimizando el árbol de contexto pasado a Skyvern.
Interfaz de usuario de autoservicio : desaprobar la interfaz de usuario Streamlit en favor de un componente de interfaz de usuario basado en React que permite a los usuarios iniciar nuevos trabajos en Skyvern.
Generador de UI de flujo de trabajo : introduzca una interfaz de usuario para permitir a los usuarios crear y analizar flujos de trabajo visualmente.
Transmisión de Chrome Viewport : presenta una forma de transmitir en vivo la ventana de Chrome al navegador del usuario (como parte de la interfaz de usuario de autoservicio).
Interfaz de usuario de ejecuciones pasadas : desaprobar la interfaz de usuario de Streamlit en favor de una interfaz de usuario basada en React que le permita visualizar ejecuciones pasadas y sus resultados.
Almacenamiento en caché rápido : introduzca una capa de almacenamiento en caché en las llamadas de LLM para reducir drásticamente el costo de ejecución de Skyvern (¡memorice las acciones pasadas y repítalas!)
Conjunto de datos de evaluación web : integre Skyvern con pruebas de referencia públicas para realizar un seguimiento de la calidad de nuestros modelos a lo largo del tiempo.
Modo de depuración mejorado : permite que Skyvern planifique sus acciones y obtenga "aprobación" antes de ejecutarlas, lo que le permite depurar lo que está haciendo e iterar más fácilmente según el mensaje.
Modo de creación automática de flujos de trabajo ("Observador") : permita que Skyvern genere automáticamente flujos de trabajo mientras navega por la web para facilitar la creación de nuevos flujos de trabajo.
Extensión de Chrome : permite a los usuarios interactuar con Skyvern a través de una extensión de Chrome (incluido el modo de voz, guardar tareas, etc.)
Skyvern Action Recorder : permite que Skyvern observe a un usuario completar una tarea y luego genere automáticamente un flujo de trabajo para ella.
Transmisión en vivo interactiva : permita a los usuarios interactuar con la transmisión en vivo en tiempo real para intervenir cuando sea necesario (como enviar manualmente formularios confidenciales).
Integre las herramientas de observabilidad de LLM : integre las herramientas de observabilidad de LLM para permitir realizar pruebas retrospectivas de cambios rápidos con conjuntos de datos específicos + visualizar el rendimiento de Skyvern a lo largo del tiempo.
Integración de Langchain : cree una integración de langchain en langchain_community para utilizar Skyvern como "herramienta".
¡Agradecemos relaciones públicas y sugerencias! No dude en abrir un PR/problema o comunicarse con nosotros por correo electrónico o discord. ¡Eche un vistazo a nuestra guía de contribuciones y a los números de "Se busca ayuda" para comenzar!
Si desea conversar con el repositorio de skyvern para obtener una descripción general de alto nivel de cómo está estructurado, cómo desarrollarlo y cómo resolver preguntas de uso, consulte Code Sage.
De forma predeterminada, Skyvern recopila estadísticas de uso básicas para ayudarnos a comprender cómo se utiliza Skyvern. Si desea excluirse de la telemetría, configure la variable de entorno SKYVERN_TELEMETRY
en false
.
El repositorio de código abierto de Skyvern se admite a través de una nube administrada. Toda la lógica central que impulsa Skyvern está disponible en este repositorio de código abierto con licencia AGPL-3.0, con la excepción de las medidas anti-bot disponibles en nuestra oferta de nube administrada.
Si tiene alguna pregunta o inquietud sobre las licencias, comuníquese con nosotros y estaremos encantados de ayudarle.