Find

Article
· Jun 17 2m read

Utilitário Multilíngue de Generative AI para WorkBench de Pattern Match

Público-alvo

  • Pessoas interessadas em explorar novos usos para Generative AI.
  • Desenvolvedores e analistas que buscam uma forma rápida de lidar com o operador Pattern Match.

Em ObjectScript e SQL, esse operador costuma ter um formato bastante denso visualmente.

Exemplo:

 if booking?2A1"-"1(1"CARD",1"RAD")1.5N
SELECT DISTINCT PatientRef
FROM APPOINTMENT.BOOKING
WHERE Active='Y' AND
LocationCode %PATTERN '2A1"-"1(1"CARD",1"RAD")1.5N'

Desafio

Usar Generative AI para ajudar a criar e modificar códigos de pattern match a partir de descrições em linguagem natural.

Inglês Francês Espanhol
module A
um de String "CARD" ou "RAD"
O padrão principal é:
duas letras, seguido de um hífen, seguido de um module A, seguido de um a cinco números
module A
un de Corde "CARD" ou "RAD"
le motif principal est:
deux lettres alphabétiques, suivi d’un tiret, suivi d’un module A, suivi d’un à cinq chiffres
módulo A
uno de Cadena "CARD" o "RAD"
el patrón principal es:
dos letras alfabéticas, seguido de un guion, seguido de un módulo A, seguido de uno a cinco números

 

Link para demonstração online

Pattern Match WorkBench (hospedado no HuggingFace)

Funcionalidades Atuais

  • Exibição multilíngue
  • Aplicação auto-documentada — mostra onde os padrões são utilizados no produto IRIS
  • Converte descrições em inglês, francês e espanhol para expressões de pattern match
  • Descreve um código pattern match existente em linguagem simples (inglês, francês ou espanhol)
  • Gera listas de valores que combinam ou não com a expressão
  • Valida um lote de valores de uma tabela contra a expressão pattern match no código
  • Extrai padrões de linhas de código ObjectScript ou SQL — basta colar a linha e o demo detecta o padrão

Recursos em desenvolvimento

  • Geração automática de padrões generalizados com base em uma lista de valores que correspondem
  • Atalhos para tipos de dados comuns, como e-mail, URL etc.

Tecnologias utilizadas

  • Python para lógica server-side, treinamento de modelo e criação de dataset
  • Gradio — framework de front-end web
  • HuggingFace — para treinamento dos modelos e deploy da aplicação

 

Agradecemos qualquer feedback.
Muito obrigado.

1 Comment
Discussion (1)2
Log in or sign up to continue
Announcement
· Jun 17

[Video] RAG with built-in Vector Search in InterSystems IRIS 2025.1

Hi Community,

Enjoy the new video in a series of videos created by our Project Managers to highlight some of the interesting features of the new 2025.1 release:

⏯ RAG with built-in Vector Search in InterSystems IRIS 2025.1

The 2025.1 release of InterSystems IRIS introduces powerful new support for retrieval-augmented generation (RAG) using built-in vector search. This lets developers combine their enterprise data with large language models to build smarter, context-aware applications — all within the database. The new approximate nearest neighbor indexing dramatically boosts performance, and InterSystems offers learning resources to help developers get started.

🗣 Presenter: @Thomas Dyar, Product Manager - Machine Learning, InterSystems

Stay in the loop. Watch the video and hit subscribe for more updates!

Discussion (0)1
Log in or sign up to continue
Discussion (0)1
Log in or sign up to continue
Article
· Jun 17 3m read

Convertendo Consultas Hierárquicas do Oracle para o InterSystems IRIS: Gerando Intervalos de Datas

Se você está migrando do Oracle para o InterSystems IRIS — como muitos dos meus clientes — pode se deparar com padrões específicos de SQL do Oracle que precisam ser adaptados.

Veja esse examplo:

SELECT (TO_DATE('2023-05-12','YYYY-MM-DD') - LEVEL + 1) AS gap_date
FROM dual
CONNECT BY LEVEL <= (TO_DATE('2023-05-12','YYYY-MM-DD') - TO_DATE('2023-05-02','YYYY-MM-DD') + 1);

No Oracle:

  • LEVEL é uma pseudo-coluna usada em consultas hierárquicas (com CONNECT BY). Ela começa em 1 e incrementa de 1 em 1.
  • CONNECT BY LEVEL <= (...) define quantas linhas a consulta deve gerar.
  • A diferença entre as duas datas, somada a 1, resulta em 11 — então a consulta gera 11 linhas, contando de 12 de maio de 2023 para 2 de maio de 2023.

Detalhamento do resultado:

LEVEL = 1  → 2023-05-12
LEVEL = 2  → 2023-05-11
...
LEVEL = 11 → 2023-05-02

Agora a questão é: Como fazer isso no InterSystems IRIS, que não possui CONNECT BY?

Uma solução é implementar uma consulta no estilo SQL usando ObjectScript, simulando esse comportamento. Abaixo está um exemplo de definição CREATE QUERY que aceita uma data inicial (STARTDATE) e um número de dias (DAYS), e retorna a lista decrescente de datas.


✅ InterSystems IRIS: Implementando uma consulta de intervalo de datas

CREATE QUERY GET_GAP_DATE(IN STARTDATE DATE, IN DAYS INT)
  RESULTS (GAP_DATE DATE)
  PROCEDURE
  LANGUAGE OBJECTSCRIPT

  Execute(INOUT QHandle BINARY(255), IN STARTDATE DATE, IN DAYS INT)
  {
    SET QHandle("start") = STARTDATE
    SET QHandle("days")  = DAYS
    SET QHandle("level") = 1
    RETURN $$$OK
  }

  Fetch(INOUT QHandle BINARY(255), INOUT Row %List, INOUT AtEnd INT)
  {
    IF (QHandle("level") > QHandle("days")) {
      SET Row = ""
      SET AtEnd = 1
    } ELSE {
      SET Row = $ListBuild(QHandle("start") - QHandle("level") + 1)
      SET QHandle("level") = QHandle("level") + 1
    }
    RETURN $$$OK
  }

  Close(INOUT QHandle BINARY(255))
  {
    KILL QHandle
    QUIT $$$OK
  }

Você pode executar esse CREATE QUERY no IRIS System Management Portal, ou por ferramentas como DBeaver ou um notebook Python/Jupyter via JDBC/ODBC.


🧪 Examplo de uso:

Para gerar o mesmo resultado da consulta Oracle acima, use:

SELECT * FROM GET_GAP_DATE(
  TO_DATE('2023-05-12', 'YYYY-MM-DD'),
  TO_DATE('2023-05-12', 'YYYY-MM-DD') - TO_DATE('2023-05-02', 'YYYY-MM-DD') + 1
);

Isso vai gerar:

GAP_DATE
----------
2023-05-12
2023-05-11
...
2023-05-02
(11 rows)

🔁 Uso avançado: junção com outras tabelas

Você também pode utilizar essa consulta como subconsulta ou em JOINs:

SELECT * 
FROM GET_GAP_DATE(TO_DATE('2023-05-12', 'YYYY-MM-DD'), 11) 
CROSS JOIN dual;

Isso permite integrar intervalos de datas em workflows SQL mais complexos.


Espero que isso ajude quem estiver lidando com cenários de migração de Oracle para IRIS! Se você já criou soluções alternativas ou tiver sugestões de melhorias, adoraria ouvir suas ideias.

Discussion (0)1
Log in or sign up to continue
Announcement
· Jun 17

4.ª Edición del Concurso de Ideas de InterSystems

Hola Comunidad,

¡Estamos encantados de invitar a todos los miembros de nuestra Comunidad de Desarrolladores (tanto empleados de InterSystems como externos) a participar en nuestro próximo concurso!

💡 4.ª Edición del Concurso de Ideas de InterSystems 💡

Estamos en busca de tus ideas innovadoras para mejorar InterSystems IRIS y los productos y servicios relacionados. Te animamos a proponer sugerencias basadas en casos de uso reales, destacando los beneficios tangibles que tu idea aportará a otros usuarios y cómo mejorará la experiencia de los desarrolladores con la tecnología de InterSystems.

📅 Duración: del 9 de junio al 6 de julio de 2025

🏆 ¡Premios para las mejores ideas y un sorteo aleatorio!

🎁 Regalos para todos: Se entregará un regalo especial a cada autor cuya idea sea aceptada en el concurso.

>> ENVIAD UNA IDEA <<

Una idea deberá contar con lo siguiente para ser aceptada:

  • Debe ser creada durante el período del Concurso de Ideas por un usuario registrado en el portal de InterSystems Ideas (podéis iniciar sesión mediante InterSystems SSO);
  • no debe formar parte de ideas ya existentes – solo se permiten ideas nuevas;
  • no debe describir funcionalidades ya existentes de InterSystems IRIS ni de productos o servicios relacionados;
  • debe publicarse en inglés;
  • debe estar escrita por una persona, no generada por inteligencia artificial;
  • debe ser aceptada como significativa por los expertos de InterSystems;
  • ❗debe seguir la siguiente estructura:
    • 1️⃣ Descripción de la idea
    • 2️⃣ ¿Quién es el público objetivo?
    • 3️⃣ ¿Qué problema resuelve?
    • 4️⃣ ¿Cómo impacta en la eficiencia, estabilidad, confiabilidad, etc., del producto?
    • 5️⃣ Proporciona un caso de uso o escenario específico que ilustre cómo se podría utilizar esta idea en la práctica.

Todas las ideas están sujetas a moderación. Es posible que se solicite una aclaración sobre la idea enviada. Las ideas que cumplan con los requisitos recibirán un estado especial de "Concurso de Ideas".

¿Quién puede participar?

Invitamos a TODOS a unirse a nuestro nuevo Concurso de Ideas.
Tanto empleados de InterSystems como personas externas pueden participar y enviar sus ideas.


Premios

1. Regalo por participación – los autores de todas las ideas aceptadas recibirán:

🎁 Soporte de aluminio para dispositivos multimedia

2. Premio del jurado – los expertos de InterSystems seleccionarán las mejores ideas. Los ganadores recibirán:

🥇 1.º lugar – Máquina de espresso y cappuccino Stilosa Barista
🥈 2.º lugarOsmo Mobile 7
🥉 3.º lugar – Mini proyector inteligente XGODY Gimbal 3

3. Premio al azar – una idea seleccionada aleatoriamente recibirá:

🏅 Mini proyector inteligente XGODY Gimbal 3

Nota: Los empleados de InterSystems solo pueden recibir el regalo por participación. Los premios del jurado y el premio aleatorio están reservados exclusivamente para miembros de la Comunidad de Desarrolladores que no trabajen en InterSystems.


Fechas importantes:

⚠️ Envío de ideas: del 9 al 29 de junio
✅ Votación de ideas: del 30 de junio al 6 de julio
🎉 Anuncio de ganadores: 7 de julio

¡Buena suerte! 🍀


Nota: Todos los premios están sujetos a disponibilidad y opciones de envío. Algunos artículos pueden no estar disponibles para envíos internacionales a determinados países; en ese caso, se ofrecerá una alternativa equivalente. Te informaremos si un premio no está disponible y te propondremos un reemplazo posible. Los premios no pueden enviarse a residentes de Crimea, Rusia, Bielorrusia, Irán, Corea del Norte, Siria u otros países embargados por EE. UU.

Discussion (0)1
Log in or sign up to continue