#Python

0 Seguidores · 153 Postagens

Python é uma linguagem de programação interpretada de alto nível para programação de uso geral. Criado por Guido van Rossum e lançado pela primeira vez em 1991, o Python tem uma filosofia de design que enfatiza a legibilidade do código, principalmente usando significativos espaços em branco

Site oficial.

Python Documentação.

Artigo Jean Cruz · Set. 22 11m read

A ideia

A ideia é simples: ajudar quem quer sair — ou quem administra um bar, restaurante ou café — a saber, antes de sair de casa ou no meio do expediente, o quão cheio um lugar está agora. A primeira versão, feita em modo "vibe code" (iterando rápido, sem planejamento formal), validou a ideia em poucas horas: dados reais de locais de São Paulo via OpenStreetMap, um modelo de popularidade e um mapa de calor no ar. A partir dela, escrevi especificações formais (specs/*.spec

4
1 65
Artigo Henry Pereira · Set. 19 16m read

TL;DR:

dc.omniIngest é o gateway de ingestão de documentos para InterSystems IRIS 2026 — uma Production de Interoperabilidade escrita inteiramente em Python que pega um arquivo numa pasta (PDF, DOCX, PPTX, MD, TXT), parseia com Docling, divide em chunks que respeitam a estrutura do documento, chama o dc.omniEmbedding para vetorizar e grava numa tabela SQL pronta para busca híbrida — vetor e palavra-chave na mesma linha, na mesma consulta. É a primeira peça do pipeline que o dc.omniReRank fecha: um transforma documento em conhecimento buscável, o outro acerta a ordem exata da resposta.

0
0 42
Artigo Heloisa Paiva · Set. 8 12m read

Já faz um ano que entrei para a InterSystems, e vi muitos artigos excelentes passarem pela Developer Community. O problema é encontrá-los novamente quando meu código realmente precisa deles.

O Claude Code já está conectado aos nossos servidores, à documentação e ao Perforce. Faltava a camada da comunidade, então escrevi uma skill para ele: um único script Python, sem dependências, mais um SKILL.md.

A pergunta que eu queria responder era: estou escrevendo esta classe agora; o que a comunidade já disse sobre os padrões presentes nela?

Por que simplesmente não encapsular a própria busca do site?

0
0 29
Artigo Fernando Hsiao · Set. 3 4m read

ObjectScript LLM Benchmark — resultados avaliados por execução para 14 modelos

Publicamos o primeiro benchmark aberto que afere a competência de LLMs no InterSystems ObjectScript e na plataforma IRIS: ObjectScript LLM Benchmark.

Por que ele existe

Benchmarks consagrados de programação — SWE-bench, LiveCodeBench, Terminal-Bench — baseiam-se em Python, JavaScript e shell. Nenhum cobre ObjectScript, IRIS SQL, Embedded Python ou %CSP.REST. As pontuações de código publicadas não se transferem para a plataforma IRIS. Esta é uma primeira iniciativa para medir essa lacuna diretamente.

0
0 27
Artigo Fernando Hsiao · Ago. 25 17m read

Image

Após uma aula de matemática aprofundada, vamos colocar em prática nossos novos conhecimentos e criar um dos melhores bancos de dados baseados em contexto.

Preparem suas lupas e seus chapéus, pois Vector Holmes está de volta.

Operando com Vetores

Para operar com o vetor associado a um texto, imagem ou som, utilizaremos uma biblioteca Python chamada sentence-transformers, que nos permite transformar o conteúdo em um vetor. Para implementar isso, devemos criar a seguinte função:

ClassMethod Embedding(Text) [ Language = python ]
{
    from sentence_transformers import SentenceTransformer

    model_name = 'sentence-transformers/all-MiniLM-L6-v2'

    # Cache in global variables of the embedded Python module (persistent per process).
    global _cached_embedding_model
    if '_cached_embedding_model' not in globals():
        _cached_embedding_model = SentenceTransformer(model_name)

    vector = _cached_embedding_model.encode(
        [Text],
        normalize_embeddings=True,
        convert_to_numpy=True,
        show_progress_bar=False
    )

    return str(vector[0].tolist())
}

Este método "vetoriza" o conteúdo do nosso texto utilizando uma biblioteca pré-treinada chamada "all-MiniLM-L6-v2". No entanto, se desejar, você pode modificá-lo e utilizar sua própria biblioteca treinada.

Primeiros Passos


Nota: Para acessar o terminal da nossa instância Docker, utilize o seguinte comando: Docker-compose exec iris iris session iris


Vamos usar um exemplo de busca vetorizada. Para isso, utilizaremos uma tabela chamada St.vectorsearch.Feeling, que possui os seguintes campos:

Campo   Tipo Descrição
Texto %String Texto sobre como me sinto
Valor %Integer Identificador do meu sentimento (veja a tabela em anexo)
Vetor %Vector Valor vetorial de texto

Você pode criar os dados executando o seguinte comando:

Do ##class(St.vectorsearch.Data).Init()

Em seguida, vamos carregar os dados de sentimento do diretório /opt/irisbuild/data/training.csv, utilizando o comando Populate da classe St.vectorsearch.Data.

USER>do ##class(St.vectorsearch.Data).Populate()
Truncating table St_vectorsearch.Feeling
Preparing to load data from file training.csv
Loading data from file training.csv
Total records loaded: 2000
Calculating vectors for records...
Processing 496 of 2000

Seja paciente, pois isso criará um vetor para cada registro e pode levar bastante tempo.


Nota: O comando Populate inicializará um modelo de dados com 2.000 registros. Existe outro arquivo com 5.410 registros, caso você queira mais informações no modelo de dados. Se desejar trabalhar com esse arquivo, utilize o comando PopulateFull() em vez disso.


Os valores dos sentimentos são os seguintes:

Sentimento  Valor
tristeza 0
alegria 1
amor 2
raiva 3
medo 4

Por exemplo:

“Saí com meu buquê de tulipas vermelhas e amarelas debaixo do braço, me sentindo um pouco mais otimista do que quando cheguei.” Tem o valor 1 (Alegria).

“Não consigo entrar em nenhuma loja onde não me sinta confortável.” Tem o valor 4 (Medo).

Se usarmos essa função para criar vetores, o primeiro texto que passarmos retornará o próximo vetor:

.034666668623685836791, .012147962115705013276, .020678628236055374146, 
.043785430490970611572, .030321707949042320251, -.0081106657162308692932, 
-.028869708999991416931, -.059950094670057296752, .067945346236228942871, 
-.070874534547328948974, -.060159780085086822509, .016239311546087265014, 
-.034665744751691818237, -.011642633005976676941, .080176420509815216064, 
………
.0099751437082886695861, .0098187308758497238159, .00016082286310847848653, .013545278459787368774, -.0049553057178854942321, .054155148565769195556, .025806473568081855773, -.038503900170326232911, .039657127112150192261, 
-.073851920664310455322, -.070615962147712707519, .066068030893802642822, 
-.082378372550010681152, -.043505564332008361816, -.0054294602014124393463

Nota: O valor do vetor foi reduzido para evitar que o texto ficasse muito longo; na verdade, o vetor possui 384 valores.


Se buscarmos outro texto alegre ao criar o vetor, obteremos o seguinte valor.

Exemplo:

“Hoje, estou muito feliz.”

[-0.007015716750174761, 0.05171322077512741, 0.0045058708637952805, -0.04008815810084343, 0.009171668440103531, -0.04867621883749962, 0.08268272876739502, 0.004975424613803625, -0.062008269131183624, 
……
0.036987580358982086, 0.027985544875264168, 0.05382953956723213, 0.031146947294473648, -0.011256292462348938, 0.005441852379590273]

Esses dados não fazem sentido no momento, pois não faremos uma comparação valor a valor. Isso significa que não buscaremos um registro com exatamente o mesmo valor que o vetor, uma vez que cada vetor é diferente. Para isso, utilizaremos as fórmulas explicadas na primeira parte.

Utilizaremos os seguintes comandos SQL para identificar quais vetores estão mais próximos daquele que calculamos.

0
0 33
Anúncio RicardoGMIR · Ago. 11

E se sua empresa pudesse ter agentes de IA especializados por área de negócio, conectados aos seus sistemas e utilizando o conhecimento da própria empresa?

Desenvolvemos o GMIRVector.AI – Iris Studio, uma plataforma para criação e gerenciamento de agentes de IA corporativos em um único ambiente.

0
1 37
Artigo Heloisa Paiva · Jul. 25 3m read

Desafio de Programação para Funcionários da InterSystems #1 — submissão para o Code Golf

O Desafio

20 arquivos de fotometria por época (epoch) do Gaia DR3, aproximadamente 1,5 GB descompactados. Encontre todas as estrelas cujo fluxo BP ou RP variou mais de 100% ao longo do período de observação. Gere um arquivo CSV contendo source_id, bp_min_flux, bp_max_flux, , e .

A competição é avaliada com base em três critérios: correção, desempenho e code golf — ou seja, o menor número possível de linhas de código significativas.

Por que IRIS

0
0 29
Artigo Heloisa Paiva · Jul. 14 4m read

Tudo começou durante uma viagem de trem para visitar meus pais, enquanto eu conversava com uma vizinha de cabine. Como de costume, a conversa acabou chegando à tecnologia, e ela fez uma pergunta extremamente específica: o ChatGPT poderia ser usado para analisar o genoma humano? Fiquei bastante cético de que ele fosse capaz de realizar algo tão complexo, mas a pergunta ficou na minha cabeça, martelando sem parar. Quando finalmente cheguei em casa, meu ceticismo já havia se transformado em um desafio. Eu não tinha um conjunto de dados de sequenciamento genômico à disposição, mas queria descobrir se o ChatGPT padrão conseguiria construir uma Interoperabilidade em Produção funcional do zero utilizando o pacote PyProd. Além disso, essa seria uma boa oportunidade para participar da 1ª rodada do Community Bounty Program "Idea to Application", implementando a terceira ideia.

Image

0
0 25
Anúncio Danusa Calixto · Jul. 2

Se você deseja criar agentes em ObjectScript, integrar o Claude Desktop à sua lógica de negócios IRIS por meio do MCP ou implantar um aplicativo LangChain com credenciais controladas e RBAC, o InterSystems AI Hub leva você ao seu objetivo sem que precise montar toda uma pilha de IA por conta própria.

O que vem na caixa:

  •  AI SDK para desenvolvedores ObjectScript e Python/LangChain. Crie agentes, conecte-se a LLMs e gerencie ferramentas usando abstrações nativas do IRIS. Cuidamos do encanamento, da segurança e da contabilidade para que você possa se concentrar no que é específico do seu negócio.
0
0 27
Pergunta Aziz Cotrim · Jun. 24

Ao salvar o seguinte ClassMethod:

ClassMethod create() [ Language = python ] {

 print("python") 

}

o seguinte erro foi recebido: Compilation started on 06/03/2026 02:15:21 with qualifiers 'cuk /multicompile=0'

 ERROR #7802: Worker job/s '1078:17' unexpectedly shut down in group '#Default:(9119826733444):0'.

 ERROR #7802: Worker job/s '1078:17' unexpectedly shut down in group '#Default:(9119826733444):0'.  

 

Com as flags de compilação "cuk", o retorno é:

ERROR #7802: Worker job/s '1160:34' unexpectedly shut down in group '#Default:(6933525859080):0'.

2
0 46
Artigo Heloisa Paiva · Jun. 18 22m read

Este artigo apresenta uma abordagem simples para ajustar hiperparâmetros de modelos de machine learning de forma automática e eficiente utilizando o Optuna como framework de otimização. Exploramos como utilizar tanto as opções nativas de armazenamento do Optuna quanto o InterSystems IRIS como backend de banco de dados para acompanhar o progresso das buscas por hiperparâmetros. Também mostramos como o MLflow pode ser usado para monitorar experimentos e gerenciar modelos por meio de sua interface de rastreamento e registro de modelos.

1
0 39
Artigo Heloisa Paiva · Jun. 16 5m read

Visão Geral

O Smart Patient Summary Generator é uma aplicação de demonstração baseada em IA desenvolvida para o InterSystems IRIS for Health. Ele lê dados de pacientes no padrão FHIR R4, extrai informações clínicas essenciais e gera resumos concisos direcionados a quatro papéis (roles) diferentes:

  • Médico Plantonista
  • Gestor de Cuidados
  • Paciente
  • Cuidador Familiar

Ao consolidar registros FHIR fragmentados em resumos específicos para cada papel, a aplicação ajuda profissionais de saúde a compreender rapidamente o quadro atual do paciente, mudanças recentes e riscos de acompanhamento.

1
0 30
Artigo Moises Kerschner · Jun. 14 12m read

O problema real

Às 16h57 de uma sexta-feira, um pedido de exame de rotina falhou.

A amostra do paciente já estava em trânsito. O laboratório de referência externo rejeitou a requisição — não conseguiu identificar o paciente de forma única. A operadora de saúde rejeitou a autorização por um motivo diferente. Nenhum dos sistemas falava a mesma linguagem, nenhum expunha mensagens de erro compatíveis, e a única camada de integração no meio simplesmente repassava as requisições.

1
0 46
Artigo Aziz Cotrim · Jun. 12 3m read

Olá!

Estou tentando compilar uma classe com Embedded Python e recebo este erro:

Compilation started on 06/12/2026 11:44:17 with qualifiers 'cuk'
Compiling class User.VectorSearch
ERROR #7802: Worker job/s '749:33' unexpectedly shut down in group '#Default:(446070926892):0'.
ERROR #7812: Work queue unexpectedly removed, shutting down.
ERROR #5002: ObjectScript error: <THROW>WaitForComplete+215^%SYS.WorkQueueMgr *%Exception.StatusException ERROR #7802: Worker job/s '749:33' unexpectedly shut down in group '#Default:(446070926892):0'.
ERROR #7812: Work queue unexpectedly removed, shutting down.
Detected 3 errors during compilation in 1.020s.
0
0 38
Pergunta Vitor Leal da Silva · Maio 25

Olá a todos. 

Após tentar executar métodos Python no Docker intersystemsdc/irishealth-community, que agora não permite executar nenhum método com Python, decidi deixar essa versão e começar a trabalhar com o [containers.intersystems.com/intersystems/iris-community](https://containers.intersystems.com/intersystems/iris-community). 

Neste ambiente os métodos Python funcionam, o que já foi um passo bem grande. Estou tentando importar minhas bibliotecas com pip install -r requirements.txt

3
0 40
Artigo Vitor Leal da Silva · Jun. 5 2m read

Se o seu código em Embedded Python chamar a biblioteca tkinter (que é utilizada por várias bibliotecas de geração de gráficos, incluindo a matplotlib), você poderá se deparar com o seguinte erro:

<THROW> *%Exception.PythonException <CLASS DOES NOT EXIST> 230 ^^0^DO ##CLASS(User.Test).Test() 
<class '_tkinter.TclError'>: Can't find a usable init.tcl in the following directories:

c:/intersystems/irispy/lib/python/lib/tcl8.6
c:/intersystems/irispy/lib/tcl8.6
c:/intersystems/lib/tcl8.6
c:/intersystems/irispy/library
c:/intersystems/library
c:/intersystems/tcl8.6.9/library
c:/tcl8.6.9/library

This probably means that Tcl wasn't installed properly.
2
0 56
Artigo Vitor Leal da Silva · Jun. 5 3m read

No artigo anterior, usamos o pyprod para criar componentes de produção enquanto dependíamos da interface de usuário (UI) para a configuração da produção. Essa mesma produção agora pode ser definida inteiramente em Python:

from intersystems_pyprod import Production, ServiceItem, ProcessItem, OperationItem

iris_package_name = "HelloWorld"

class MyProduction(Production):
    services = [
        ServiceItem(
            "MyServiceName",
            "HelloWorld.MyService",
            host_settings={"target": "MyProcessName"},
        )
    ]
    processes = [
        ProcessItem(
            "MyProcessName",
            "HelloWorld.MyProcess",
            host_settings={"target": "MyOperationName"},
        )
    ]
    operations = [
        OperationItem("MyOperationName", "HelloWorld.MyOperation")
    ]
2
0 42
Artigo Vitor Leal da Silva · Jun. 2 6m read

Olá,

Sou eu de novo 😁, recentemente estou trabalhando na geração de alguns dados fictícios de pacientes para fins de teste com a ajuda do Chat-GPT usando Python. E, ao mesmo tempo, gostaria de compartilhar minha curva de aprendizado. 😑

Antes de mais nada, construir um serviço de API REST personalizado é fácil estendendo a classe %CSP.REST. Criando um Serviço REST Manualmente Vamos começar! 😂

1. Crie uma classe datagen.restservice que estende %CSP.REST

ClassExtends%CSP.REST

2. Adicione uma função

0
0 33
Artigo Heloisa Paiva · Maio 22 6m read

    Olá a todos! 👋
    Estou animado em compartilhar o projeto que enviei para o atual InterSystems .Net, Java, Python, and JavaScript Contest — ele se chama IRIStool and Data Manager, e você pode encontrá-lo no InterSystems Open Exchange e na minha página do GitHub.

0
0 60
Artigo Heloisa Paiva · Maio 19 8m read

Image

Ao desenvolver aplicações Python com o InterSystems IRIS, você pode rapidamente acabar com vários contextos de execução:

  • Python iniciado diretamente pelo IRIS com Embedded Python;
  • um processo python3 comum que carrega as bibliotecas Embedded Python de uma instalação local do IRIS;
  • uma aplicação Python externa que se conecta ao IRIS através do driver nativo oficial.

Esses três casos são úteis, mas eles não se comportam exatamente da mesma forma para imports, configuração do sistema, APIs de objetos e acesso SQL.

0
1 34
Artigo Heloisa Paiva · Maio 16 7m read

Os globals do InterSystems IRIS são um dos principais pontos fortes da plataforma: eles armazenam dados hierárquicos em uma estrutura direta, ordenada e eficiente. Mas ao trabalhar com Python, manipular globals às vezes pode parecer mais próximo de uma API de baixo nível do que dos hábitos naturais da linguagem.

Image

O projeto iris-global-reference fornece uma camada Python sobre os globals do IRIS. Seu objetivo é simples: tornar o acesso aos globals mais legível, mais idiomático e mais fácil de integrar em código Python moderno, sem esconder o modelo hierárquico subjacente.

0
0 35
Artigo Evandro Wendt · Maio 12 3m read

Apresentando o iris-synthetic-data-gen

Hoje publiquei um novo pacote no Open Exchange para geração de dados sintéticos diretamente no IRIS.

Pode ser um processo frustrante encontrar datasets decentes quando você está tentando montar um aplicativo de demonstração. Talvez o dataset não seja tão importante, mas você ainda quer que ele pareça minimamente realista e com várias tabelas relacionadas que sejam utilizáveis diretamente no IRIS, com os elegantes joins implícitos usando ->

0
0 16
Artigo Heloisa Paiva · Abr. 24 3m read

Desde que comecei a usar o Claude Code, minha motivação para criar coisas disparou.

Anteriormente, mesmo que eu quisesse construir algo, o ato de codificar parecia um incômodo, então, a menos que houvesse uma necessidade muito forte, eu raramente chegava ao ponto de programar. Mas agora, se eu apenas anotar as especificações, o Claude Code cuida do resto automaticamente, resultando em uma melhoria dramática na produtividade.

Eu venho de uma geração nativa em ObjectScript, então costumava sentir certa hesitação quando se tratava de mudar para o Python.

0
0 41
Artigo Evandro Wendt · Abr. 2 2m read

Trabalhar com arquivos geralmente começa de forma simples: abrir o arquivo, ler e processar. Essa abordagem funciona perfeitamente, até que o arquivo seja um Excel.

Uma Suposição Comum

À primeira vista, um arquivo Excel (.xlsx) parece apenas mais um arquivo de dados, linhas, colunas e valores. Nada incomum. Portanto, é natural assumir que ele pode ser lido da mesma forma que um arquivo .txt ou .csv. Mas é aí que as coisas começam a dar errado.

Por que arquivos Excel se comportam de forma diferente

A principal diferença está em como os dados são armazenados:

-> .txt / .

0
0 41
Artigo Evandro Wendt · Mar. 23 4m read

Introdução

Em um artigo anterior, apresentei o módulo IRIStool, que integra de forma transparente a biblioteca pandas do Python com o banco de dados IRIS. Agora, estou explicando como podemos usar o IRIStool para aproveitar o InterSystems IRIS como base para buscas inteligentes e semânticas sobre dados de saúde no formato FHIR.

Este artigo cobre o que fiz para criar o banco de dados de outro dos meus projetos, o FHIR Data Explorer. Ambos os projetos são candidatos no concurso atual da InterSystems, então, por favor, vote neles se os achar úteis.

1
0 39