AI bot - Herramientas personalizadas

:bookmark: Esta guía explica cómo crear, configurar e integrar herramientas de IA personalizadas dentro del plugin Discourse AI, permitiendo a los administradores extender las capacidades del bot con funciones de JavaScript definidas por el usuario.

:person_raising_hand: Nivel de usuario requerido: Administrador

Las herramientas son funcionalidades programables que el bot de IA puede utilizar para realizar tareas específicas o recuperar información más allá de las simples respuestas basadas en texto. Estas herramientas son scripts o integraciones que permiten al bot interactuar con APIs externas, manipular datos o ejecutar funciones adicionales para extender sus capacidades.

Resumen

Esta documentación cubre:

  • Creación de una nueva herramienta de IA personalizada
  • Configuración de parámetros y scripts de herramientas
  • APIs disponibles para scripts de herramientas
  • Integración de herramientas personalizadas con personas de IA
  • Pruebas y solución de problemas de herramientas personalizadas

Creación de una nueva herramienta de IA personalizada

Para crear una nueva herramienta de IA:

  1. Navegue a Panel de Administración > Plugins > Discourse AI > Herramientas
  2. Haga clic en “Nueva Herramienta” (puede usar preajustes existentes para conocer las opciones)
  3. Rellene los siguientes campos:
    • Nombre: El nombre de la herramienta tal como se presenta al LLM
    • Descripción: La descripción de la herramienta tal como se presenta al LLM
    • Resumen: Resumen de lo que hace la herramienta para ayudar a los usuarios (se muestra en los detalles)
    • Parámetros: Defina las entradas que su herramienta necesita tal como se presentan al LLM
    • Script: El código JavaScript que potencia su herramienta
  4. Haga clic en “Guardar”

Configuración de scripts de herramientas

APIs disponibles

Sus scripts de herramientas tienen acceso a las siguientes APIs:

  1. Solicitudes HTTP:

    http.get(url, options)
    http.post(url, options)
    

    Utilice estas para interactuar con servicios externos. Puede usar options para especificar encabezados HTTP:

    http.get(url, { headers: { Auth: "some value" } })
    http.post(url, { headers: { Auth: "some value", body: "some body" } })
    http.patch(url, { headers: { Auth: "some value", body: "some body" } })
    http.delete(url, { headers: ...})
    http.put(url, { headers: ... , body: ...})
    
  2. Integración LLM (Modelo de Lenguaje):

    llm.truncate(text, length)
    

    Esto le permite manipular texto dentro de los límites de tokens del modelo de IA.

  3. Integración de carga personalizada (RAG)

    index.search(query, { filenames: options, limit: max_fragments_optional })
    
  4. Soporte para la creación de cargas

    upload.create(filename, base_64_content)
    
  5. Control de la cadena de ejecución

    chain.setCustomRaw(raw) - establece el cuerpo de la publicación en la cadena.
    

Funciones requeridas

Su script debe implementar:

  • invoke(params): La función principal que se ejecuta cuando se llama a la herramienta

Opcionalmente, puede implementar:

  • details(): (Opcional) Proporciona información adicional sobre la ejecución de la herramienta

Script de ejemplo:

function invoke(params) {
  let result = http.get("https://api.example.com/data?query=" + params.query);
  return JSON.parse(result.body);
}

function details() {
  return "Fetched data from Example API";
}

Limitaciones y seguridad

  • Tiempo de espera de ejecución: Las herramientas tienen un tiempo de espera predeterminado de 2 segundos
  • Solicitudes HTTP: Máximo de 20 solicitudes por ejecución de herramienta
  • Entorno aislado: Sin acceso al sistema de archivos del servidor ni a bibliotecas Ruby

Prueba de su herramienta

Debe probar cualquier herramienta que cree para asegurarse de que los resultados que se proporcionarán al LLM coincidan con sus expectativas.

Integración de herramientas con personas de IA

Para agregar su herramienta personalizada a una Persona de IA:

  1. Vaya a Panel de Administración > Plugins > Discourse AI > Personas
  2. Edite una persona existente o cree una nueva
  3. En la sección “Herramientas”, verá sus herramientas personalizadas listadas junto con las herramientas integradas
  4. Seleccione su herramienta personalizada para agregarla a la persona

Herramientas personalizadas en acción

Una vez que proporcione la herramienta personalizada a su LLM, puede usarla para mejorar la conversación.

Solución de problemas

Si su herramienta no funciona como se esperaba:

  1. Utilice la interfaz de prueba para asegurarse de que se comporta como se espera para sus entradas.
  2. Asegúrese de que su grupo esté en ai_bot_debugging_allowed_groups. Los miembros de este grupo tienen acceso completo a las transcripciones del bot; puede ver los registros de IA allí.
  3. Si algo inesperado está sucediendo, visite https://SITENAME/logs para verificar si hay errores.

Recursos adicionales

14 Me gusta

Me estoy iniciando en la creación de herramientas para personas de IA en Discourse, en parte para poder centrarme en ello; ¡esto parece muy útil dada la cantidad de APIs útiles y públicas que existen!

Por ejemplo, estoy obteniendo resultados como:

Comprensión de la toma de decisiones a través de estrategias de póker IA

maiki:

Crea una ficha informativa para Breath of the Wild.

gpt-4o:

Aquí tienes una ficha informativa para “The Legend of Zelda: Breath of the Wild”:


Título: The Legend of Zelda: Breath of the Wild
Desarrollador: Nintendo
Editor: Nintendo
Fecha de lanzamiento: 3 de marzo de 2017
Plataformas: Nintendo Switch, Wii U
Género: Acción-aventura
Modo: Un jugador

Sinopsis:
Ambientado en un vasto mundo abierto, los jugadores controlan a Link, que despierta de un profundo letargo para derrotar a Calamity Ganon y salvar el reino de Hyrule. El juego es elogiado por su entorno inmersivo, que permite a los jugadores explorar e interactuar libremente con el mundo y sus sistemas.

Premios:
El juego ha ganado numerosos premios, incluyendo varios galardones al Juego del Año, por su diseño innovador, su mundo expansivo y su jugabilidad encantadora.

Más información: Entrada de Wikidata


“Breath of the Wild” es conocido por redefinir los juegos de mundo abierto y ofrecer una experiencia cautivadora que fomenta la exploración y el descubrimiento.

maiki:

Lo mismo para Animal Crossing: New Horizons.

gpt-4o:

Aquí tienes una ficha informativa para “Animal Crossing: New Horizons”:


Título: Animal Crossing: New Horizons
Desarrollador: Nintendo
Editor: Nintendo
Fecha de lanzamiento: 20 de marzo de 2020
Plataforma: Nintendo Switch
Género: Simulación social
Modo: Un jugador, Multijugador

Sinopsis:
En este encantador juego de simulación social, los jugadores asumen el papel de un personaje personalizable que se muda a una isla desierta tras comprar un paquete de Tom Nook. El juego permite la exploración en tiempo real, la recolección de recursos, la creación y la personalización, fomentando una experiencia de juego comunitaria y relajante.

Premios:
El juego fue aclamado por su libertad creativa y el momento de su lanzamiento, recibiendo galardones al Juego del Año y por sus contribuciones a los juegos sociales durante la pandemia mundial.

Más información: Entrada de Wikidata


“Animal Crossing: New Horizons” se convirtió en un fenómeno cultural, celebrado por sus atractivas funciones sociales y su jugabilidad para aliviar el estrés en tiempos difíciles.

maiki:

A Long Way from Chicago

gpt-4o:

Aquí tienes una ficha informativa para el libro “A Long Way from Chicago”:


Título: A Long Way from Chicago
Autor: Richard Peck
Año de publicación: 1998
Género: Ficción histórica, Juvenil
ISBN: 978-0141303529

Sinopsis:
Esta novela, galardonada con el Newbery Honor, es una colección de cuentos que narran las visitas anuales de verano de Joey y su hermana Mary Alice desde Chicago a un pueblo rural de Illinois para visitar a su extravagante abuela Dowdel a finales de los años 20 y 30. Cada capítulo presenta un episodio divertido y conmovedor que imparte lecciones de vida en el contexto de la Gran Depresión.

Premios:
El libro fue galardonado con el Newbery Honor en 1999 y es celebrado por su humor, profundidad y representación de la vida rural estadounidense a principios del siglo XX.

Más información: Entrada de Wikidata


Este libro es apreciado por su narrativa nostálgica y conmovedora, que captura la esencia de los lazos familiares y los tiempos más sencillos.

maiki:

Thinking in Bets

gpt-4o:

Anteriormente encontré la entrada de Wikidata para “Thinking in Bets”, pero no puedo recuperar más detalles específicos directamente de Wikidata en este momento. Sin embargo, aquí tienes una breve ficha basada en la información disponible:


Título: Thinking in Bets: Making Smarter Decisions When You Don’t Have All the Facts
Autor: Annie Duke
Año de publicación: 2018
Género: No ficción, Toma de decisiones, Psicología
ISBN: 978-0735216358

Sinopsis:
El libro utiliza ideas del póker para ayudar a los lectores a comprender la toma de decisiones bajo incertidumbre. Annie Duke, combinando sus experiencias como jugadora de póker profesional y psicóloga cognitiva, ofrece un marco para tomar decisiones más inteligentes, evaluar resultados y adoptar una mentalidad probabilística.

Más información: Entrada de Wikidata


Para obtener información detallada, puedes considerar consultar recursos o bases de datos adicionales relacionados con publicaciones de libros.


De acuerdo, eso está bien, pero noté esta descripción…

…y me pregunto: ¿debería estar creando mis prompts refiriéndome directamente a esas herramientas, para un uso eficiente?

Mi enfoque general para escribir prompts es refinar con el tiempo y luego fijar un patrón de comportamiento que deseo que las herramientas de IA adopten. Sin embargo, si pudiera agregar instrucciones específicas sobre, por ejemplo, cuándo buscar una entidad de Wikidata y cuándo listar todas las afirmaciones de una entidad en particular (dos APIs diferentes), entonces siento que podría refinar todo el flujo de trabajo para que fluya como lo intento… :star_struck:

3 Me gusta

Efectivamente, explicar claramente la herramienta y proporcionar ejemplos en el prompt del sistema es beneficioso.

2 Me gusta

¿Es posible en una herramienta personalizada insertar la clave API y el proyecto de OpenAI desde la configuración del administrador?

1 me gusta

Puedes hacer llamadas REST desde una herramienta personalizada y especificar todas las cabeceras.

2 Me gusta

Me acabo de dar cuenta, lol… disculpa la metedura de pata.

1 me gusta

He subido algunos documentos a una persona, generó los embeddings y ahora puede realizar búsquedas semánticas sobre ellos. Pero en algunos casos, la búsqueda semántica no es ideal, por lo que me gustaría mejorarla y tener una búsqueda híbrida, por ejemplo, mantener lo que ya está ahí y añadir búsqueda por palabras clave. En este momento, si quisiera hacer eso, tendría que escribir una herramienta personalizada, ¿verdad?
Sé que podría simplemente publicar los documentos como temas y entonces funcionaría directamente con la búsqueda nativa de Discourse, pero actualmente no es una opción.