– 6 novos anúncios
✓ 3 novos membros ingressaram em Outubro
✓ 1,199 postagens publicadas ao todo
✓ 595 membros ingressaram ao todo
✓ 3 novos membros ingressaram em Outubro
✓ 1,199 postagens publicadas ao todo
✓ 595 membros ingressaram ao todo
Projeto 1 - Integração utilizando SOAP Inbound Adapter
A idéia deste novo conjunto de postagens é apresentar uma série de integrações utilizando o InterSystems IRIS. Vamos ver integrações REST, SOAP, utilizando adaptadores ODBC, Arquivos e outros.
Vamos montar nossa primeira integração completa, passando pelas camadas de BS, BP e BO, e devolvendo a resposta esperada. Vamos montar essa nossa primeira integração utilizando o SOAP como o adaptador de entrada, e como cliente vamos utilizar o SoapUI.
Vamos então começar:
1. SoapUI
Baixe o SoapUI do site de download dele (https://www.soapui.
Existe algum comando que retorna a quantidade de linhas de uma global?
Exemplo:
^test(1)="aa"
^test(2)="aa"
^test(3)="aa"
^test(4)="aa"
Total de linhas = 4
Isso pode ser obtido com uma query de lista da classe %SYS.Namespace
1. Crie uma rotina assim:
getnsp
set statement=##class(%SQL.Statement).%New()
set status=statement.%PrepareClassQuery("%SYS.Namespace","List")
set resultset=statement.%Execute()
while resultset.%Next() {
write resultset.%Get("Nsp"),!
}
quit2. Rode no seu terminal
O método de executar queries de classe introduzido nesse artigo pode ser aplicado em uma variedade de classes
Você pode ver várias queries de classe na referência de classe.
O número máximo de namespaces que se podem criar em uma instância é de 2047. No entanto, para utilizar um grande número de namespaces, é necessário configurar a memória adequadamente.
O número máximo de bases de dados (incluso as bases de dados remotas) que se pode criar em uma instância é de 15.998. Dependendo do tipo de licença, pode haver restrições sobre a quantidade que se pode criar. Para mais detalhes, consulte o seguinte documento.
Configuração da Base de Dados [IRIS]
Configuração da Base de Dados
Olá Comunidade!
Para você que não conseguiu finalizar o seu tutorial ou aos que pretendem concorrer com mais de um tutorial, temos uma grande surpresa.
Estamos estendendo o prazo do nosso concurso até o dia 24 de Novembro!
Isso mesmo! Agora você não tem mais desculpa de ficar de fora.
Participe do nosso último concurso de 2024, e concorra aos super prêmios enquanto compartilha conhecimento com a Comunidade de Desenvolvedores.
Esperamos por ótimos tutoriais! 😃
Bem-vindo à terceira e última publicação de nossos artigos dedicados ao desenvolvimento de aplicações RAG baseadas em modelos LLM. Neste último artigo, veremos, com base em nosso pequeno projeto de exemplo, como podemos encontrar o contexto mais adequado para a pergunta que queremos enviar ao nosso modelo LLM e para isso utilizaremos a funcionalidade de busca vetorial incluída no IRIS.

Um elemento-chave de qualquer aplicação RAG é o mecanismo de busca vetorial, que permite pesquisar dentro de uma tabela com registros desse tipo aqueles mais semelhantes ao vetor de referência.
Continuamos com esta série de artigos sobre LLMs e aplicações RAG e neste artigo discutiremos a parte da caixa vermelha do seguinte diagrama:
.png)
No processo de criação de uma aplicação RAG, escolher um modelo LLM adequado às suas necessidades (treinado no assunto correspondente, custos, velocidade, etc.) é tão importante quanto ter um claro entendimento do contexto que você deseja fornecer. Vamos começar definindo o termo para ficarmos claros sobre o que entendemos por contexto.
Projeto 8 – REST Outbound Adapter
Olá. Vamos montar nossa próxima integração utilizando o adaptador SOAP Inbound Adapter chamando um BP que chamará um BO que utilizará o REST Outbound Adapter.
O BO que vamos construir irá chamar o nosso BS que montamos no artigo https://pt.community.intersystems.com/post/desenvolvendo-integra%C3%A7%C3%B5es-com-o-intersystems-iris-aplica%C3%A7%C3%A3o-rest mas, importante, note que poderíamos chamar qualquer serviço interno no nosso integrador ou outra instância IRIS, ou externo em qualquer outro sistema com esse adaptador.
Você provavelmente já ouviu falar muito sobre LLMs (Large Language Models) e o desenvolvimento associado de aplicações RAG (Retrieval Augmented Generation) no último ano. Bem, nesta série de artigos explicaremos os fundamentos de cada termo usado e veremos como desenvolver uma aplicação RAG simples.
O que é um LLM?
Modelos LLM fazem parte do que conhecemos como IA generativa e sua fundação é a vetorização de enormes quantidades de textos.
Projeto 7 – SQL Outbound Adapter
Vamos montar nossa próxima integração utilizando o adaptador SQL Onbound Adapter. Vamos criar um BS que utilizará o SOAP Inbound Adapter, que vai chamar dois BPs que por sua vez chamarão um BO que utilizará o SQL Outbound Adapter. Nosso BS terá duas capacidades: incluir e consultar. Cada capacidade chamará um BP diferente, porém os dois BPs chamarão o mesmo BO, que também terá duas capacidades. Cada capacidade será chamada de acordo com a mensagem recebida.
Vamos começar verificando a tabela que será acessada. Vamos cria-la utilizando o modelo abaixo:
Class ws.

Este é um modelo para um aplicativo FastAPI que pode ser implantado no IRIS como um aplicativo Web nativo.
git clone
cd iris-fastapi-template
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
docker-compose up
A URL base é http://localhost:53795/fastapi/.
/iris - Retorna um objeto JSON com as 10 principais classes presentes no namespace IRISAPP./interop - Um endpoint de ping para testar a estrutura de interoperabilidade do IRIS.CALL no Business Process
Montando as integrações para esta série de postagens, vi que precisava me aprofundar um pouco mais na questão do componente CALL do BP. Assim montei este novo documento mostrando algumas informações importantes deste componente.
O componente CALL é utilizado para chamar ou um BP ou um BO de maneira síncrona (o componente aguarda o retorno da chamada realizada) ou assíncrona (a chamada é feita mas o componente não aguarda o retorno, sendo verificado se houve resposta em uma etapa mais a frente por um componente SYNC).
Projeto 6 – Chamada Assíncrona no BP
Vamos montar nossa próxima integração utilizando o adaptador SOAP Inbound Adapter chamando um BP que vai orquestrar chamadas a dois BOs em modo assíncrono.
Vamos começar criando as mensagens de Request e Response do nosso serviço:
Class ws.credito.msg.Request Extends Ens.Request
{
Property cpf As %String(PATTERN = "1N.N");
}
Class ws.credito.msg.Response Extends Ens.Response
{
Property nome As %String;
Property cpf As %String(PATTERN = "1N.

Este é um modelo para um aplicativo Django que pode ser implantado no IRIS como um aplicativo Web nativo.
git clone
cd iris-django-template
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
docker-compose up
A URL base é http://localhost:53795/django/.
/iris - Retorna um objeto JSON com as 10 principais classes presentes no namespace IRISAPP./interop - Um endpoint de ping para testar a estrutura de interoperabilidade do IRIS.
Este é um modelo para um aplicativo Flask que pode ser implantado no IRIS como um aplicativo Web nativo.
git clone
cd iris-flask-template
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
docker-compose up
A URL de base http://localhost:53795/flask/.
/iris - Retorna um objeto JSON com as 10 principais classes presentes no namespace IRISAPP.Motivado pelo feedback pessoal de @Edilson Eberle Carvalho e uma excelente
apresentação de @Michael Braam relacionada com a Pesquisa Vetorial,
gostaria de partilhar a minha abordagem pessoal aos Vectores.
Quando comecei e encontrei vectores com 256, 384 e mais de 1200 dimensões - senti-me perdido.
No entanto, o meu exemplo Vector-inside-IRIS - uma simplificação da iris-vector-search - funcionou bem.
Para compreender a mecânica que lhe está subjacente, decidi começar por pequenos passos.
As nossas 3 dimensões comuns descrevem muito bem o nosso mundo físico.

A Interface de Gateway de Servidor Web (WSGI) é uma convenção de chamada simples para servidores web encaminharem solicitações para aplicativos web ou frameworks escritos na linguagem de programação Python. WSGI é um padrão Python descrito detalhadamente em PEP 3333.
🤔 Ok, ótima definição, e qual o objetivo com o iris?
O IRIS 2024.2+ possui um novo recurso que permite que você execute aplicativos WSGI diretamente no IRIS. Esse recurso é uma ótima maneira de integrar o IRIS com outros frameworks e bibliotecas Python.
Projeto 5 – SOAP Outbound Adapter
Vamos montar nossa próxima integração utilizando o adaptador SOAP Outbound Adapter. Este adaptador permite acessar um serviço SOAP externo e consumir este serviço.
No nosso exemplo vamos publicar um serviço SOAP no barramento de integração simulando um serviço externo. Vamos então consumir o WSDL deste serviço criando o BO automaticamente, e depois montaremos os BP e BS da integração.
O primeiro passo é criar um serviço que será consumido. Imagine que este é um serviço externo que você precisa consumir. Vamos então criar um BS que fará este papel para nós.
Olá Comunidade,
Este artigo tem como objetivo guiá-lo pelo processo de configuração e utilização do recurso Python Runtime Flexível para Python embutido. Antes da versão 2024.2, o instalador do InterSystems IRIS incluía uma versão pré-instalada do Python. Você pode encontrar as bibliotecas Python e os arquivos de aplicação localizados no diretório \lib\python dentro da sua pasta de instalação do IRIS (por exemplo, C:\InterSystems\IRIS20242\lib\python).
No entanto, a partir da versão 2024.2, o instalador do IRIS não mais inclui a instalação do Python por padrão.
Projeto 4 – SQL Inbound Adapter
Vamos montar nossa próxima integração utilizando o adaptador SQL Inbound Adapter. Este adaptador permite acessar uma tabela externa ao IRIS e consumir seus registros.
No nosso exemplo iremos ler uma tabela via SQL externa ao IRIS através de uma conexão ODBC e armazenar as informações desejadas em uma global.
O primeiro passo é criar as mensagens da integração. Vamos criar o Request e o Response que iremos utilizar para trafegar as mensagens pelo barramento:
Class ws.global.msg.incluir.Request Extends Ens.
Projeto 3 – Requisição REST
Vamos montar nossa próxima integração utilizando uma aplicação REST. Para tal vamos utilizar um BS que chamará o BP do nosso serviço demo (ver Primeira Integração). Vamos reaproveitar o serviço que então poderá ser chamado via SOAP ou REST. Teremos então dois BS que irão chamar o mesmo BP. A imagem abaixo ilustra essa arquitetura:

O primeiro passo vai ser criar um novo BS que não terá nenhum adaptador. Esse BS será chamado pela nossa aplicação REST que veremos mais a frente:
Class ws.rest.bs.Service Extends Ens.
Em ObjectScript, você tem uma ampla coleção de funções que retornam algum valor tipicamente:
set variable = $somefunction(param1,param2, ...)
Não há nada de especial nisso.
Mas há um conjunto de funções que classifico como Funções de Lado Esquerdo
A especialidade delas é que você também pode usá-las à esquerda do operador igual como um alvo no comando SET:
set $somefunction(param1,param2, ...) = value
O motivo para levantar esse assunto é que com o IRIS
Este programa de demonstração é usado para mostrar como um perfil FHIR personalizado pode ser empregado para validar a conformidade dos dados. O guia de implementação FHIR personalizado foi desenvolvido com base na Versão R4 do FHIR, e, neste exemplo, implementa a extensão do recurso Organização para validar a conformidade dos dados.
Olá Desenvolvedores!
Tenho o prazer de anunciar que hoje inicia o novo concurso da nossa Comunidade de Desenvolvedores InterSystems.
Aproveite a chance de se aprimorar e compartilhar aprendizados com a Comunidade de Desenvolvedores, e concorrer a prêmios excelentes.
Todas as informações e regras estão publicadas no anúncio ✍️ Concurso de Tutoriais Técnicos InterSystems IRIS ✍️
Participe e compartilhe! 😉
.png)
Projeto 2 - Integração utilizando File Inbound Adapter
Vamos montar nossa próxima integração utilizando o adaptador de arquivos, o File Inbound Adapter. Este adaptador permite monitorar um diretório e buscar arquivos que estejam disponíveis com a máscara informada para o arquivo a ser lido. Após o processamento podemos mover o arquivo para uma outra área ou simplesmente eliminar o arquivo processado, conforme seja mais interessante para seu processo.
O primeiro passo é criar as mensagens da integração.
Olá comunidade!
Eu trago aqui uma dica para poupar algumas horas do seu dia. A documentação InterSystems especifica muito bem como criar um script de freeze para as instâncias, mas não traz exemplos em instâncias espelhadas, onde queremos deixar o script automático, mas só rodar efetivamente na instância primária.
Primeiro, vamos criar uma classe abstrata no namespace %SYS com métodos que verificam se a instância é primária e, caso positivo, executam o freeze.
Class User.custom.FreezeThaw.Recentemente, disponibilizamos uma nova versão do InterSystems IRIS no Vector Search Early Access Program, apresentando um novo índice Approximate Nearest Neighbor baseado no algoritmo de indexação Hierarchical Navigable Small World (HNSW). Essa adição permite pesquisas altamente eficientes e aproximadas de vizinhos mais próximos em grandes conjuntos de dados vetoriais, melhorando drasticamente o desempenho e a escalabilidade da consulta.
O Visual Studio Code lança novas atualizações todo mês com novos recursos e correções de bugs, e a versão de setembro de 2024 já está disponível.
A versão 1.94 agora inclui: