Nova postagem

検索

Artigo
· Maio 24, 2024 2min de leitura

Reviews on Open Exchange - #45

If one of your packages on OEX receives a review you get notified by OEX only of YOUR own package.   
The rating reflects the experience of the reviewer with the status found at the time of review.   
It is kind of a snapshot and might have changed meanwhile.   
Reviews by other members of the community are marked by * in the last column.

I also placed a bunch of Pull Requests on GitHub when I found a problem I could fix.    
Some were accepted and merged, and some were just ignored.     
So if you made a major change and expect a changed review just let me know.

# Package Review Stars IPM Docker *
1 CSPFileViewDownload Docker availale IPM ready 5.0   y  
2 System-Alerts Interesting example 5.0   y  
3 Cogs JSON Class now also with Docker 5.0   y  
4 CosNumberTranslate Docker was added 5.0   y  
5 Debug Stack Docker working, IPM prepared 5.0   y  
6 DynamicObject Adapter Docker working, IPM prepared 5.0   y  
7 Object Synchronization ready to use with Docker 5.0   y  
8 Objectscript Roman Numeral Converter Docker now available 5.0   y  
9 SpatialIndex more comfort now with Docker 5.0   y  
10 String Datatype - Regular Expression Docker working, IPM prepared 5.0   y  
11 SystemMethodsRemover refreshed with Docker 5.0   y  
12 Metrics example finally arrived in Docker 4.5   y  
13 iris-angular-template a personal experience 4.0 y y  
3 Comments
Discussão (3)2
Entre ou crie uma conta para continuar
Artigo
· Maio 24, 2024 15min de leitura

VIP in GCP

If you're running IRIS in a mirrored configuration for HA in GCP, the question of providing a Mirror VIP (Virtual IP) becomes relevant. Virtual IP offers a way for downstream systems to interact with IRIS using one IP address. Even when a failover happens, downstream systems can reconnect to the same IP address and continue working.

The main issue, when deploying to GCP, is that an IRIS VIP has a requirement of IRIS being essentially a network admin, per the docs.

To get HA, IRIS mirror members must be deployed to different availability zones in one subnet (which is possible in GCP as subnets always span the entire region). One of the solutions might be load balancers, but they, of course, cost extra, and you need to administrate them.

In this article, I would like to provide a way to configure a Mirror VIP without using Load Balancers suggested in most other GCP reference architectures.

3 Comments
Discussão (3)3
Entre ou crie uma conta para continuar
Discussão
· Maio 24, 2024

Code Golf: Smiley Faces

It's Friday and a long weekend is upon us, so let's have a round of code golf!

Nowadays, it's rare to find a text message without at least one emoji. 😃😄😎🙂😊😀😁😆😂
But back in the day, people had to be creative to express their emotions in text. They would use emoticons, which are symbols made up of keyboard characters :^) =] ) B).
Our challenge for today is to create a function that receives a string as argument and returns the total number of smiling faces or happy faces.
Each smiley face must have one smiling mouth, which should be marked with ), ], }, D or >.
A smiley face can have a pair of eyes but it does not have to. Valid characters for eyes are :, ;, 8, B or =.
A nose is optional, and can be represented these characters: -, ^, c, o and ~.

Valid smiley face examples:

    :) :D ;-D :~) :‑) :-] =)    
    :] :-> :> 8-) :D 8‑D )
    8) :-} :} :o) :c) :^) =]
    :‑D 8D =D B^D

Input

"count how many smiley faces are here :)"

Output

1

15 Comments
Discussão (15)2
Entre ou crie uma conta para continuar
Artigo
· Maio 24, 2024 6min de leitura

Studio IRIS AI Studio: Um playground para explorar as capacidades de Generative AI & Vector Embedding

 

Problema

Você se identifica com isso: a capacidade e impacto da tecnologia que é realmente descoberta quando empacotada da maneira correta para seu público alvo? O melhor exemplo seria como a Generative AI deslanchou quando o ChatGPT veio ao público para fácil acesso e não como as capacidades Transformers/RAG's (Retrieval-Augmented Generation - Geração Aumentada de Recuperação) foram identificadas. Pelo menos uma usabilidade muito maior surgiu, quando a audiência foi incentivada para explorar as possibilidades.

 

Motivação

Recentemente tive a oportunidade de participar no MIT (Massachusetts Institute of Technology - Instituto de Tecnologia de Massachusetts) Grand Hack, em Boston, onde, durante minhas conversas com outros participantes, notei o imenso interesse por médicos e veteranos não técnicos em explorar as capacidades de Generative AI em seu domínio. Em uma das conversas, o melhor exemplo, que exibiu como os EHR's (Electronic Health Record - Registro Eletrônico de Saúde) tem uma UI (User Interface - Interface do usuário) complicada quando comparada com a UI polida do ChatGPT. Ainda que elas atendam a diferentes necessidades e tenham cada uma seus prós e contras, minha impressão final foi "O mundo não está voltando para trás, para interfaces complicadas para o usuário ou sistemas lentos. O futuro está em sistemas caracterizados por designs intuitivos e performance otimizada".

Para as partes não técnicas  interessadas que queriam explorar as capacidades do Generative AI, existe uma maneira de fazê-lo sem muitas complicações técnicas. De fato, o Co-lab/Jupyter notebook simplificaram significativamente o processo de rodar um código. Contudo, será podemos melhorar ainda mais isso para assemelhar-se às interfaces de plataformas como Playgrounds OpenAI ou o Studio Azure/Vertex AI? Um ambiente amigável ao usuário como esse encorajaria as partes não técnicas interessadas a entender as capacidades e limitações do Vector DB sem esforço. 

⚡️ Como nós podemos habilitar indivíduos não técnicos a avaliar o potencial do IRIS Vector DV em casos de uso para seus produtos/serviços, sem recursos exaustivos de desenvolvedores?

 

Solução

IRIS AI Studio— Uma plataforma no-code/low-code para explorar as capacidades de incorporações de Vectors no IRIS DB. Um usuário consegue, sem maiores dificuldades, carregar dados de várias fontes como vetores incorporados dentro da IRIS DB e então retornar a informação por meio de diversos canais. Aqui, o carregamento de dados é chamado de Connectors e a parte de retorno pode ser feito pelo Playground. Na essência, o Studio IRIS AI simplifica o processo de trabalhar com vetores incorporados e permite que o usuário visualize o poder da AI sendo cultivada para variadas aplicações. 

Connectors

Nos conectores, o usuário começa escolhendo a fonte de dados de onde querem buscar os dados e e carregar no IRIS DB como vetores incorporados. Eles podem carregar arquivos do sistema local ou devolver informações de serviços de armazenamento em cloud também. Esse recurso tem o potencial de funcionar como um pipeline de dados com a adição das capacidades de uma tarefa CRON.

Inicialmente, eu adicionei 4 fontes de dados diferentes: Armazenamento local, AWS S3, Airtable e Azure Blob Storage.

Após escolher a fonte dos dados, o usuário deve inserir a informação adicional a respeito da conexão, como id do cliente e chave secreta para o armazenamento AWS S3. Então, o usuário pode configurar as incorporações ao escolher tipo de indexação, modelo que deseja usar, dimensões e o nome da tabela em IRIS onde os dados serão carregados. Atualmente, indexações vindas de incorporações de OpenAI e Cohere são suportadas, mas com apenas algumas linhas de código poderíamos adicionar suporte para muitas outras incorporações.

Após finalizar os dois passos, os dados da fonte são convertidos em vetores incorporados e adicionados à tabela IRIS.

Playground

Agora que temos os dados do vetor incorporado na IRIS DB, permitir que o usuário retorne o conteúdo pelo canal preferido pode ser feito pelo Playground. Aqui vão alguns exemplos de como isso é feito.

Na Semantic Search (pesquisa semântica), o usuário insere as configurações que usou para carregar os dados e a pesquisa semântica consulta o que ele quer que seja executado no vetor incorporado. Isso vai retornar conteúdos da IRIS DB e devolver os resultados em formato de linguagem natural.

 

No Chat with Docs (Conversa com Documentos), o usuário deve inserir as configurações que usou para carregar os dados e o chat consulta o que ele quis fazer.  A opção do chat tem uma grande diferença da opção da consulta por causa da extensão do contexto em cada uma. Além disso, na conversa com documentos nós poderáamos conectar com várias opções LLM diferentes para retornar os conteúdos e não precisaríamos nos prender às opções de indexação (Atualmente a OpenAI's GPT 3.5 turbo é adicionada por padrão).]

 

Definições

Na seção de definições, o usuário poderia adicionar múltiplas configurações de instâncias IRIS que serão gravadas no armazenamento local do navegador e o usuário pode escolher com quais vai querer atuar ativamente. Isso fará seu trabalho mais fácil para administrar múltiplas instâncias e escolher as preferidas para uso. Além disso, aqui as chaves de API do serviço LLM  podem ser adicionadas (serão salvas no armazenamento de sessão do navegador) e automaticamente selecionadas para propósitos de indexação ou recuperação de dados. Nenhuma dessas informações está sendo salva e foi levada ao backend apenas para fins de processamento.

 

Teste você mesmo

Clone o repositório do projeto do link do GitHub a seguir: https://github.com/ikram-shah/iris-ai-studio.

Siga as instruções fornecidas para configurar o projeto localmente na sua máquina. Por favor note que, tendo escrito isso em 12 de Maio de 2024 para alguns módulos o desenvolvimento ainda está em progresso, mas a funcionalidade discutida acima deve funcionar perfeitamente 💪🏻 Me avise se algo não funcionar como esperado na DM (Direct Message - mensagem direta) ou na seção de problemas (issues) do GitHub.

Tech Stack

Frontend: VueJS, TailwindCSS, Flowbite

Backend: Python, Flask

Database: InterSystems IRIS

Frameworks/Libraries/Services: Llama-Index, SQLalchemy-iris, OpenAI, Cohere

Infrastructure: Vercel (frontend hosting), Render (backend hosting)

 

Creditos

Agradeço à detalhada documentação sobre Pesquisa de Vetor da InterSystems

Agradeço ao modelo de Pesquisa de Vetor IRIS por simplificar os módulos e capacidades, de@Alvin.Ryanputra 

Agradeço à livraria llama-iris do @Dmitry Maslennikov 

 

Considerações finais e Feedback

Eu venho de um passado de Inovação e Engenharia de Produto, e por mais de um ano eu tenho explorado avanços tecnológicos no setor de saúde, Aqui estou aprendendo mais da comunidade de desenvolvedores ISC e tenho certeza que essa plataforma AI Studio pode ajudar no seu trabalho, e desenvolvedores podem compartilhá-la com administradores de produto ou médicos para que deem suas participações na qualidade dos dados que está sendo retornado e muitos outros casos de uso. Se esse artigo fez sentido para você ou iluminou alguma ideia, por favor deixe uma curtida 👍 e fique à vontade para compartilhar seus pensamentos na seção de comentários abaixo. Eu adoraria me conectar com qualquer um interessado em discutir mais!

🚀 Vote por essa aplicação na competição de Vector Search, GenAI and ML, se acreditar que ela tem futuro!

Eu vou compartilhar mais publicações que dão um mergulho técnico profundo a respeito dessa plataforma.

Discussão (0)1
Entre ou crie uma conta para continuar
Pergunta
· Maio 24, 2024

Cannot parse valid HL7 message

I'm having problems with an HL7 message that is not properly parsed by IRIS (any version, including Ensemble).

The message is a OML_O21 and is valid, in fact is similar of what is described in the document "IHE Laboratory Technical Framework, Volume 2a (LAB TF-2a) version 6.0".
This is the sample from the IHE document (paragraph 2315):

MSH|^~\&|OF|Chemistry|AM|Automation|200309060825||OML^O21^OML_O21|msgOF101|T|2.5|123||||USA||EN
PID|1||12345^5^M10^Memphis_Hosp^PI||EVERYMAN^ADAM^^JR^^^L|19800101|M 2320
PV1|1|O|Ward|||||||||||||||12345
ORC|NW|||666^gastric|||||200309060824|222221^NURSE^NANCY|||||||||||Entero-gastric^^^^^^FI^^^EG02
TQ1|||||||||A
OBR||555_1^chemistry||GLUC^GLUCOSE^L||||||1234^BLEEDER|S|||||222222^PHYSICIAN^^^^DR|822325 1
SPM|1|123456781^gastric ||SER|||||||P||||||200309060735|200309060821||||||||1
ORC|NW|||666^gastric|||||200309060710|222221^NURSE^NANCY|||||||||||Entero-gastric^^^^^^FI^^^EG02
TQ1|||||||||A 2330
OBR||555_2^chemistry||GLUC^GLUCOSE^L||||||1234^BLEEDER|S||||| 222222^PHYSICIAN^^^^DR|821
SPM|1|123456782^gastric||SER|||||||P||||||200309060755|200309060821||||||||1

The result in IRIS is:

Is the IHE document sample an invalid message?
Because of this issue I cannot handle this message in rules and DTL

6 Comments
Discussão (6)4
Entre ou crie uma conta para continuar