Artículo Kurro Lopez · 18 dic, 2025 2m read

Hola a todos.

Os voy a dar un consejo rápido de como implementar un agente IA para realizar búsquedas en la documentación de Intersystems integrado en Teams.

Si, ya se que la página de la documentación tiene su propio buscador IA y es bastante eficaz, pero de esta forma tendríamos un acceso más rápido, sobre todo si Teams es la herramienta corporativa de tu empresa.

También se puede crear otro agente IA para realizar búsquedas en los artículos publicados en la comunidad de desarrolladores (que también tiene su buscador IA integrado).

0
0 48
Artículo Kurro Lopez · 23 oct, 2025 1m read

Hola a todos,

Este es un rápido consejo de como usar URL en servicios RES API sin distinción de mayúsculas y minúsculas.

Si tienes una clase que extiende de %CSP.REST y Ens.BusinessService, para crear un servicoi REST API, y tienes definido tu WebApplication en minúsculas

XData UrlMap [ XMLNamespace = "http://www.intersystems.com/urlmap" ]
{
<Routes>
    <Route Url="/user" Method="POST" Call="User"/>
    <Route Url="/login" Method="POST" Call="Login"/>
</Routes>
}
2
0 62
Artículo Kurro Lopez · 29 sep, 2025 13m read

Estoy muy emocionado de continuar con mi serie de artículos "InterSystems para Dummies", y hoy queremos contarles todo sobre una de las funciones más potentes que tenemos para la interoperabilidad.

Aunque ya las hayan probado, planeamos analizar a fondo cómo sacarles el máximo provecho y mejorar aún más nuestra producción.

2
0 78
Artículo Kurro Lopez · 30 jun, 2025 16m read

Aprenda a diseñar agentes de IA escalables y autónomos que combinen razonamiento, búsqueda vectorial e integración de herramientas utilizando LangGraph.

cover

Demasiado Largo; No lo Leí

  • Los agentes de IA son sistemas proactivos que combinan memoria, contexto e iniciativa para automatizar tareas que van más allá de los chatbots tradicionales.
  • LangGraph es un framework que nos permite crear flujos de trabajo complejos de IA, utilizando nodos (tareas) y aristas (conexiones) con gestión de estado integrada.
2
0 112
Artículo Kurro Lopez · 14 abr, 2025 15m read

Como todos sabemos, InterSystems es una gran empresa.

Sus productos pueden ser tan útiles como complejos.

Sin embargo, a veces nuestro orgullo nos impide admitir que quizá no entendamos algunos conceptos o productos que InterSystems nos ofrece.

Hoy comenzamos una serie de artículos que explican, de forma sencilla y clara, cómo funcionan algunos de los complejos productos de InterSystems.

En este ensayo, aclararé qué es el Machine Learning y cómo aprovecharlo... porque esta vez, SABRÁS con certeza de qué estoy hablando.

0
0 96
Artículo Kurro Lopez · 1 abr, 2025 1m read

Hola a todos,

Como parte del desarrollo de una API para saber a qué instancia de IRIS está conectada, he encontrado algunos métodos para obtener información sobre el servidor que pueden ser útiles.

Obtener el nombre del servidor: $SYSTEM.INetInfo.LocalHostName()

Obtener la IP del servidor: $SYSTEM.INetInfo.HostNameToAddr($SYSTEM.INetInfo.LocalHostName())

Obtener el nombre de la instancia: $PIECE($SYSTEM,":",2)

Entonces, he creado el siguiente código como clase BS:

ClassExtends%CSP.REST

Llamando al método:

localhost:52773/common/api/check

{
  "ServerName": "LAPTOP-KURRO-3",
  "ServerIP": "11.52.197.99",
  "Instance": "HEALTHCONNECT"
}
0
0 90
Artículo Kurro Lopez · 21 mayo, 2024 10m read

Siguiendo con la serie de artículos sobre gestión de archivos de voz, vamos a ver cómo podemos convertir texto en audio y recibir el archivo con la voz elegida.
También exploraremos cómo un servicio de OpenAI puede ayudarnos a analizar un texto y determinar el estado de ánimo expresado en él.
Analicemos cómo puedes crear tu propio archivo de voz y cómo puede "leer" tus sentimientos.

0
0 136
Artículo Kurro Lopez · 3 mar, 2024 5m read

Hola comunidad,

El objetivo de este artículo es explicar como crear mensajes entre IRIS y Microsoft Teams.

En mi empresa, tenermos que monitorear mensajes de error, y usamos la clase Ens.Alerts para redireccionar esos mensajes a través de un Business Operation que envía un email.
El problema está en que enviamos esos errores a una cuenta de soporte donde habían muchos emails. Queremos algo específico para un específico equipo.

Por lo que investigamos como hacer que esos mensajes lleguén al equpo de desarrollo directamente y ellos pordrían tener, en tiempo real, una notificación de un error en producción. 
En nuestra empresa usamos Microsoft Teams como herramienta corportaiva, por lo que nos preguntamos: ¿Cómo podemos hacer que esos mensajes lleguen al equipo de desarrollo de IRIS?

4
0 457
Artículo Kurro Lopez · 14 feb, 2024 3m read
Escenario

IRIS tiene adaptadores de entrada SQL para usar con SQL gateways como EnsLib.SQL.InboundAdapter para consultar repetidamente las conexiones de SQL Gateway. Apareció un escenario en el que queríamos consultar una base de datos interna para obtener algunos datos, pero no vimos un "servicio listo para usar" para esto.

Requisito deseado

Tener un servicio genérico que pueda sondear SQL interno para trabajar con otros componentes.

El cómo

Lo que no estaba claro era "¿Cómo envío un conjunto de resultados en sentido descendente?".

0
0 193
Artículo Kurro Lopez · 13 feb, 2024 2m read

Recientemente, necesitaba ejecutar WebGateway en un puerto adicional, pero con una novedad: este puerto debería publicar solo una aplicación web.
Al principio, pensé en configurar WebGateway para permitir solo aplicaciones web específicas (~urls), pero la configuración de WebGateway depende de la configuración de Apache:

LoadModule csp_module_sa "/opt/webgateway/bin/CSPa24.so"
0
0 203
Artículo Kurro Lopez · 9 feb, 2024 2m read

Interactuar con usuarios en la terminal: una guía para usar %Library.Prompt en IRIS

¿Alguna vez te has preguntado cómo comandos como ^DATABASE atraen a los usuarios en la terminal? O tal vez esté escribiendo una rutina de automatización y desee formas de especificar opciones directamente desde la terminal. Afortunadamente, la clase %Library.Prompt en IRIS ofrece una forma sencilla de hacerlo.

Entradas de texto

Para entradas básicas, como pedirle al usuario que proporcione una ruta de archivo o un espacio de nombres, utilice el siguiente código:

set status = ##class(%Library.Prompt).GetString("Input filepath:", .path)
0
0 193
Artículo Kurro Lopez · 2 feb, 2024 9m read

Considerar el nuevo interés empresarial en la aplicación de IA generativa a información y datos privados locales comercialmente sensibles, sin exposición a nubes públicas. Al igual que una cerilla necesita la energía del golpe para encenderse, el nuevo desafío de "energía de activación" del líder tecnológico es revelar cómo la inversión en hardware GPU podría respaldar nuevas capacidades competitivas. La capacidad puede revelar los casos de uso que brindan nuevo valor y ahorro.

Afilar este hacha comienza con un protocolo funcional para ejecutar LLM en un portátil local.

0
0 322
Artículo Kurro Lopez · 19 ene, 2024 2m read

Actualmente, muchos artistas digitales utilizan la tecnología de IA generativa como soporte para acelerar la entrega de sus trabajos. Hoy en día es posible generar una imagen correspondiente a partir de una frase de texto. Existen varias soluciones en el mercado para esto, incluidas algunas disponibles para ser utilizadas a través de API. Mira algunos en este enlace: https://www.analyticsvidhya.com/blog/2023/08/ai-image-generators/.

Creé una nueva aplicación para usar en IRIS aprovechando una de estas API. Elegí la API Imagine.

0
0 125
Artículo Kurro Lopez · 17 ene, 2024 3m read

Hola comunidad,

Cuando utilizamos un Business Servicio de tipo SQL, puede suceder que necesitemos replicar ciertas filas de la tabla original.

Tomemos como ejemplo el Business Service  "from customer SQL" usando la clase genérica EnsLib.SQL.Service.GenericService

Surgen diferentes casos, dependiendo de la configuración utilizada en este Business Service.

Primer caso:

Si el Business Service solo usa un KeyFieldName

En este caso, para reprocesar los IDs 123,456 y 789, bastará con eliminarlos de la variable global ^Ens.AppData del Business Service correspondiente en la referencia "adaptor.

0
0 140
Artículo Kurro Lopez · 8 dic, 2023 9m read

La inteligencia artificial no se limita solo a generar imágenes a través de texto con instrucciones o crear narrativas con instrucciones sencillas.

También puedes hacer variaciones de una imagen o incluir un fondo especial a una ya existente.

Adicionalmente, podrás obtener la transcripción del audio sin importar su idioma y la velocidad del hablante.

Por tanto, analicemos cómo funciona la gestión de archivos.

0
0 213
Artículo Kurro Lopez · 19 jun, 2023 9m read

Como todos ya conocéis, el mundo de la inteligencia artificial ya está aquí y todos quieren usarlo para su beneficio.

Hay muchas plataformas que ofertan servicios de inteligencia artificial de forma gratuita, por suscripción o privadas, pero la que mas “ruido” ha hecho en el mundo de la informática es Open AI, sobre todo por sus más famosos servicios: ChatGPT y DALL-E

¿Qué es Open AI?

1
0 447
Artículo Kurro Lopez · 4 feb, 2023 2m read

Por lo general, si desea implementar una solución, debe agregar los elementos, configurar sus tablas de búsqueda y la configuración predeterminada manualmente.
Está bien si tiene todos los permisos y privilegios para realizar estas acciones. Si desea implementar en el servidor de producción de un cliente y no tiene los permisos, debe indicar en un documento TODOS los pasos que debe realizar el administrador de implementación.

2
0 139
Artículo Kurro Lopez · 19 ene, 2023 2m read

Continúo la descripción del trabajo usando el módulo openhl de Python en producción.

Como la versión de IRIS con Python Embebido, aún no ha sido liberada, ya es necesario usarlo en producción ahora. Decidimos hacer una copia de seguridad del servicio para exportar consultas a un archivo xlsx en un servidor aparte, y guardar el resultado de la consulta en un global en una base de datos separada.

Esta base de datos se puso en red, local para el servidor del servicio y remota para el servidor del producto.

0
0 106
Artículo Kurro Lopez · 18 ago, 2022 2m read

¡Hola a todos!

El módulo de exportación es esencial en muchos de mis proyectos y se usa a menudo en todos mis servidores de productos.

He implementado varios escenarios en el módulo de iniciación del atributo invoke, ambos mayormente con muchos proyectos adicionales para demostrar en GCR , y mínimamente para instalar nativamente en instancia de producción.

zpm "install appmsw-sql2xlsx -Dzpm.demo=none"

Para mostrar las posibilidades, usé los proyectos fileserver y csvgen.

0
0 251
Artículo Kurro Lopez · 10 jul, 2022 1m read

Durante mucho tiempo hemos estado usando una utilidad en producción para exportar el resultado de una consulta a una hoja de cálculo Excel. Además, hemos hecho una modificación en ella, en la que la configuración explícita de los formatos de las columnas es una prioridad.

Esta utilidad usaba el módulo %SYS.ZENReportExcelExporter y se basa en un programa java. Todos los años el informe crecía y no había suficiente memoria RAM en java, por lo que teníamos que aumentar el valor de la variable entorno. El valor ha alcanzado los 7gb y se ha convertido en un problema.

0
0 226
Artículo Kurro Lopez · 14 feb, 2022 4m read

Viajar en el tiempo es como visitar París. No puedes simplemente leer la guía, tienes que arrojarte. Come la comida, usa los verbos equivocados, recibe el doble de cargos y terminas besando a completos desconocidos.

El Doctor

Vamos ahora a viajar por el tiempo, osea, vamos a ver fechas futuras y pasadas y como calcularlas en diferentes formatos. La TARDIS no espera, ponte a los mandos y sujétate fuerte.

Travel in TARDIS

0
0 312
Artículo Kurro Lopez · 15 dic, 2021 6m read

El Programador de Ensemble se utiliza para encender y apagar automáticamente los hosts en determinadas fechas y horas. Podrías usarlo si, por ejemplo, solo quisieras ejecutar un host de negocios de 9:00 a 17:00 todos los días. Por el contrario, si desea activar un evento para que ocurra en un momento específico, por ejemplo, un trabajo que se ejecuta a la 01:00, para agrupar y enviar todas las transacciones del día anterior en un archivo, recomendamos otros métodos como el Administrador de tareas.

Este artículo explica cómo funciona el Programador de Ensemble.

0
0 324
Artículo Kurro Lopez · 31 ago, 2021 2m read

Como sabes, ObjectScript no tiene un comando o función de sistema FOREACH.
Pero tiene un amplio margen para la creatividad.

Pero la tarea es recorrer una matriz global o local y hacer algo PARA CADA elemento.

Hay dos posibles soluciones:

  • Crear una macro que genere las secuencias de código requeridas
  • Crear un comando extendido para realizar la acción.
0
0 189
Artículo Kurro Lopez · 4 jun, 2021 3m read

La cobertura del código y su optmización del rendimiento ya han surgido muchas veces, así que la mayoría de vosotors seguro que ya conocéis la herramienta SYS.MONLBL.

A menudo, un enfoque visual para revisar el código es mucho más intuitivo que los números puros. Este es principalmente el objetivo de esta serie de artículos. Esta vez vamos a hacer una pequeña excursión lejos de Python y sus herramientas, y vamos a explorar la generación de mapas de calor de los informes ^%SYS.MONLBL.

0
0 182