Saltar al contenido principal

Introducción

¡Bienvenido a Arkai!

Esta guía te ayudará a comenzar a construir flujos de trabajo de IA usando Arkai.

¿Qué es Arkai?

Arkai es una plataforma que te permite construir Flujos de Trabajo de IA o Agentes de IA de una manera visual e intuitiva.

Arkai está diseñado para ser flexible - puedes combinar diferentes LLMs, herramientas y lógica personalizada para crear flujos de trabajo que se ajusten a tus necesidades específicas. Ya sea que estés construyendo un chatbot simple o un agente de IA complejo, Arkai proporciona los bloques de construcción que necesitas.

Con Arkai, puedes construir y ejecutar tu flujo de trabajo en nuestra plataforma web, sin preocuparte por la infraestructura de IA subyacente. Una vez que estés listo, puedes integrar tu flujo de trabajo en tus propias aplicaciones a través de nuestra API con unas pocas líneas de código, sin necesidad de una configuración compleja.

A medida que desarrollamos la plataforma, iremos añadiendo diferentes integraciones para facilitar el uso de los Flujos de Trabajo de Arkai dentro de tus sistemas.

Si tienes alguna idea o solicitud de funcionalidad, háznos saber en nuestro Discord. Siempre estamos buscando retroalimentación para mejorar la plataforma.

Conceptos Clave

En su núcleo, Arkai está construido alrededor de tres conceptos clave:

Flujos de Trabajo

Un flujo de trabajo en Arkai es una función ejecutable que procesa entradas para generar salidas. Cada flujo de trabajo consiste en componentes - los bloques de construcción que representan pasos individuales de procesamiento. Estos componentes trabajan juntos en secuencia, cada uno recibiendo datos, realizando operaciones específicas y pasando resultados al siguiente paso.

Un flujo de trabajo se crea y edita en el editor de flujos de trabajo. Para acceder al editor de flujos de trabajo, puedes seleccionar cualquier flujo de trabajo en el marketplace o en tu panel de control, y deslizar hacia abajo el playground, de esta manera podrás editar el flujo de trabajo seleccionado. Si quieres crear un nuevo flujo de trabajo, puedes hacer clic en el botón 'Crear nuevo flujo de trabajo' en el panel de control.

Demo del editor de flujos de trabajo

Un flujo de trabajo puede ejecutarse directamente en la plataforma web, en lo que llamamos el 'playground'. En el editor de flujos de trabajo, puedes presionar el botón 'Ejecutar' para abrir el playground.

playground-button

En el playground puedes probar tu flujo de trabajo y ver cómo se ejecuta cada componente. Si lo deseas, siempre puedes ejecutar el flujo de trabajo en el playground, está hecho para ser una forma intuitiva y fácil de usar para ejecutar tus flujos de trabajo.

En Arkai, los flujos de trabajo pueden compartirse con otros. A través del marketplace, puedes explorar y usar flujos de trabajo creados por otros. Cada flujo de trabajo en el marketplace puede integrarse en tus propios flujos de trabajo, o puedes 'copiarlo' y usarlo como punto de partida para tu propio flujo de trabajo, modificándolo para que se ajuste a tus necesidades.

Componentes

Los componentes son los bloques de construcción que forman cada flujo de trabajo en Arkai. Estos pueden ser modelos de IA, herramientas, o incluso otros flujos de trabajo.

Añadir componentes a tu flujo de trabajo es sencillo - simplemente arrástralos desde la barra de componentes y suéltalos en el lienzo del editor de flujos de trabajo.

Los componentes pueden configurarse haciendo clic en ellos para acceder a su panel de configuración. Cada tipo de componente tiene diferentes opciones de configuración - los componentes LLM tienen configuraciones extensas para controlar cómo procesan el texto, mientras que componentes más simples como Salida de Texto solo necesitan estar conectados para recibir datos de otros componentes. Puedes personalizar campos de entrada, reglas de procesamiento de datos y otras configuraciones para hacer que el componente se comporte exactamente como necesitas para tu flujo de trabajo.

Esto demuestra el proceso de configuración para un componente LLM.

Puntos de Conexión de Componentes

Los componentes se conectan y comunican a través de dos tipos de puntos de conexión:

  • Puntos de Conexión de Entrada (Azules)

    • Ubicados en el lado izquierdo de los componentes
    • Reciben datos entrantes de otros componentes
    • Cada punto de conexión de entrada puede aceptar múltiples tipos de datos (texto, imágenes, etc.)
    • Múltiples entradas pueden alimentar un solo punto de conexión
  • Puntos de Conexión de Salida (Naranjas)

    • Ubicados en el lado derecho de los componentes
    • Envían datos procesados a otros componentes
    • Cada punto de conexión de salida tendrá un tipo de datos específico
    • Un solo componente puede tener múltiples puntos de conexión de salida para diferentes propósitos
    • Ejemplo: Un LLM podría tener salidas separadas para su respuesta y metadatos

Conectas componentes arrastrando desde un punto de conexión de salida a un punto de conexión de entrada, creando un flujo de datos entre componentes.

Categorías de Componentes

Los componentes pueden dividirse en tres categorías principales:

1. Componentes de Entrada

Estos componentes sirven como puntos de partida de tu flujo de trabajo. Ellos:

  • Se identifican por el campo 'Identificador' en la configuración del componente
  • Proporcionan datos iniciales al flujo de trabajo
  • No tienen puntos de conexión de entrada (ya que son puntos de partida)
  • Tienen puntos de conexión de salida para enviar datos aguas abajo
  • Ejemplo: El componente 'Entrada de Texto' puede alimentar texto a un LLM

input-to-llm

2. Componentes de Salida

Estos componentes representan los puntos finales de tu flujo de trabajo. Ellos:

  • Se identifican por el campo 'Identificador' en la configuración del componente
  • Reciben y muestran/almacenan resultados finales
  • Tienen puntos de conexión de entrada para recibir datos
  • No tienen puntos de conexión de salida (ya que son puntos finales)
  • Ejemplo: El componente 'Salida de Texto' puede mostrar respuestas del LLM

output-to-text

3. Componentes Middleware

Estos componentes procesan datos entre entradas y salidas. Ellos:

  • Transforman, analizan o modifican datos
  • Tienen tanto puntos de conexión de entrada como de salida
  • Incluyen componentes como LLMs, herramientas y procesadores de datos
  • Pueden configurarse a través de varias opciones para controlar su comportamiento
  • Ejemplo: El componente 'LLM' puede procesar texto usando un LLM (visto en las imágenes anteriores)

Conexiones y Variables

Las conexiones son los enlaces que permiten que los datos fluyan entre componentes en tu flujo de trabajo. Cuando conectas dos componentes juntos (arrastrando desde un punto de conexión de salida a un punto de conexión de entrada), creas una conexión. Cada conexión se asigna automáticamente una etiqueta de letra (A, B, C, etc.) que identifica los datos que fluyen a través de ese enlace.

Estas etiquetas de conexión actúan como variables en tu flujo de trabajo. Puedes pensar en ellas como contenedores que mantienen cualquier dato que se está pasando entre componentes. Cuando haces clic en una conexión, puedes ver:

  • La etiqueta de letra de la conexión
  • El tipo de datos que fluyen a través de ella (texto, imagen, etc.)

Diferentes componentes tienen diferentes reglas sobre qué tipos de datos pueden aceptar. Por ejemplo:

  • Un componente Salida de Imagen solo puede aceptar conexiones de componentes que emitan datos de imagen
  • Un componente Salida de Texto solo puede aceptar datos de texto
  • Un componente LLM acepta tanto datos de texto como de imagen

Usando Variables en Componentes

Los componentes manejan estas variables de diferentes maneras:

  1. Componentes Automáticos (como Salida de Texto)

    • Usan automáticamente cualquier dato que llegue a través de su punto de conexión de entrada
    • No se necesita configuración
  2. Componentes Manuales (como LLMs)

    • Requieren que refieras explícitamente las variables en su configuración
    • Ejemplo: En el campo de prompt de un LLM, puedes usar {{c}} para insertar datos del punto de conexión etiquetado "c"

Aquí hay un ejemplo de cómo funcionan las variables en la práctica:

En este ejemplo, conectamos dos componentes Entrada de Texto a un componente LLM. El LLM usa las variables 'c' y 'd' en su prompt para comparar los dos textos de entrada. Esto muestra cómo las variables te permiten combinar datos de múltiples fuentes con instrucciones personalizadas para crear flujos de trabajo flexibles.

La documentación de cada componente especificará cómo usar variables dentro de la configuración de ese componente. Este sistema de variables hace que sea fácil enrutar y manipular datos a lo largo de tu flujo de trabajo mientras mantienes un registro de dónde viene y va la información.

Lógica de Ejecución

Ahora que conoces los conceptos básicos de Arkai: flujos de trabajo, componentes, conexiones y variables, exploremos cómo se ejecutan los flujos de trabajo.

Cuando ejecutas un flujo de trabajo, la ejecución sigue estos pasos:

  1. El flujo de trabajo inicia activando todos los componentes de entrada simultáneamente
  2. Cada componente de entrada envía sus datos a través de su punto de conexión de salida a los componentes conectados
  3. Un componente espera para ejecutarse hasta que recibe datos de todas las conexiones vinculadas al mismo punto de conexión de entrada
  4. Una vez que un componente tiene todas las entradas requeridas listas, se ejecuta y reenvía sus resultados aguas abajo
  5. Este proceso se propaga a través del flujo de trabajo hasta llegar a los componentes de salida
  6. Los componentes de salida muestran o almacenan los resultados finales

Manejo de Datos Vacíos

Los componentes pueden a veces emitir datos 'vacíos' a través de sus puntos de conexión de salida. Esto puede ocurrir cuando:

  • Un componente de entrada se deja vacío
  • La condición de un componente condicional no se cumple
  • Otros componentes no producen salida para ciertos escenarios

Por defecto, los componentes se ejecutarán incluso cuando reciban datos vacíos. Sin embargo, puedes modificar este comportamiento usando "Variables Requeridas":

  1. Pasa el mouse o selecciona un componente para ver el popup de Variables Requeridas
  2. El popup muestra todas las variables conectadas a cada punto de conexión de entrada
  3. Haz clic en las variables para marcarlas como requeridas
  4. El componente solo se ejecutará cuando todas las variables requeridas contengan datos

En el ejemplo siguiente, si quieres que el componente LLM se ejecute solo cuando reciba datos en la variable 'e':

  1. Selecciona el componente LLM
  2. Encuentra 'e' en el popup de Variables Requeridas
  3. Haz clic para marcarla como requerida
  4. Ahora el componente solo se ejecutará cuando 'e' contenga datos, independientemente de otras entradas

requires-vars

Comenzando

Con esta introducción, deberías poder comenzar con Arkai. Es posible que aún necesites leer la documentación de cada componente para entender cómo usarlos, pero esto debería darte un buen punto de partida.

Para detalles sobre publicar o versionar tu flujo de trabajo, consulta Guardando Flujos de Trabajo.

Si tienes alguna pregunta o necesitas más aclaraciones, ¡contáctanos en nuestro Discord, estamos aquí para ayudarte!