发布新帖

查找

文章
· 六月 17 阅读大约需 2 分钟

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
ObjectScript
ObjectScript
SELECT DISTINCT PatientRef
FROM APPOINTMENT.BOOKING
WHERE Active='Y' AND
LocationCode %PATTERN '2A1"-"1(1"CARD",1"RAD")1.5N'
SQL
SQL

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

 

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.

讨论 (0)1
登录或注册以继续
公告
· 六月 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!

讨论 (0)1
登录或注册以继续
问题
· 六月 17

Comfort Zone Movers

We specialize in in-state moving, expert packing, and hassle-free unpacking services that make your move smooth and stress-free. From careful boxing to organized setup in your new space, our team ensures every detail is handled with care. Whether it's a home or office move, we deliver efficient, reliable support from start to finish.

https://g.co/kgs/9Ds77M9

讨论 (0)1
登录或注册以继续
文章
· 六月 17 阅读大约需 1 分钟

Cómo habilitar la fucionalidad de interoperabilidad en un Namespace existente

Rúbrica de preguntas frecuentes (FAQ) de InterSystems

Para habilitar la funcionalidad de interoperabilidad despues de crear un Namespace, use el método EnableNamespace de la clase %EnsembleMgr:

do ##class(%EnsembleMgr).EnableNamespace()

讨论 (0)1
登录或注册以继续
文章
· 六月 17 阅读大约需 3 分钟

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 = 12023-05-12
LEVEL = 22023-05-11
...
LEVEL = 112023-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.

讨论 (0)1
登录或注册以继续