Nova postagem

Rechercher

Artigo
· Maio 27, 2024 4min de leitura

Unir bases de datos de excel con IRIS

¡Hola a todos! 

Llevo muchos años trabajando con Excel y, últimamente, lo he enfocado al tratamiento de bases de datos.

Realmente mi experiencia con Excel ha sido para labores financieras, no tanto analíticas de datos en sí, pero en un proyecto reciente he podido trabajar mucho con SQL y me he interesado un poco por el tema (no soy para nada una experta, ¡aviso!)

Me he preguntado cómo podría unir varios excels en uno para, por ejemplo, entregárselo al Data Análisis utilizando la tecnología InterSystems. He recopilado la información en un pequeño artículo. Espero que sea útil y por supuesto estoy abierta a correcciones. 

Vamos a utilizar InterSystems IRIS. Lo que buscaremos es leer los archivos Excel, procesarlos y por último fusionarlos. 

PRIMERO: Qué necesitaremos

Vale, para empezar, deberíamos tener instalado InterSystems IRIS.

Necesitaremos instalar las librerías de Python pandas y openpyxl para poder trabajar con Excel.

Importarte: hay que asegurarse de tener InterSystems Embedded Python habilitado en el entorno IRIS.

SEGUNDA: Lectura de un Excel con Python

Como InterSystems IRIS soporta la integración con Python, podemos leer/manipular archivos Excel. Por ejemplo podríamos usar este script: 

import pandas as pd

def merge_excels(file_paths, output_path):

    dataframes = []

    

    for file in file_paths:

        df = pd.read_excel(file)

        dataframes.append(df)

    

    merged_df = pd.concat(dataframes, ignore_index=True)

    merged_df.to_excel(output_path, index=False)

    

    return output_path

# Ejemplo de uso:

files = ['file1.xlsx', 'file2.xlsx', 'file3.xlsx']

output_file = 'merged_output.xlsx'

merge_excels(files, output_file)

Tercero: integración en IRIS

Vamos a ejecutar dicho script de Python desde InterSystems IRIS. Para ello recurriremos al soporte de Embedded Python. Lo que tendríamos que hacer es crear una class (o clase, vaya) en ObjectScript para llamar a dicho Script.

Class ExcelApp.ExcelMerger Extends %RegisteredObject

{

    ClassMethod MergeExcelFiles(filePaths As %String, outputFile As %String) As %String [ Language = python ]

    {

        import pandas as pd

        def merge_excels(file_paths, output_path):

            dataframes = []

            

            for file in file_paths:

                df = pd.read_excel(file)

                dataframes.append(df)

            

            merged_df = pd.concat(dataframes, ignore_index=True)

            merged_df.to_excel(output_path, index=False)

            

            return output_path

        files = filePaths.split(",")

        result = merge_excels(files, outputFile)

        return result

    }

}

CUARTO: fusionar desde IRIS

Por último, con el método MergeExcelFiles desde InterSystems IRIS podríamos fusionar los archivos Excel.

Set filePaths = "file1.xlsx,file2.xlsx,file3.xlsx"

Set outputFile = "merged_output.xlsx"

Set result = ##class(ExcelApp.ExcelMerger).MergeExcelFiles(filePaths, outputFile)

Write "Archivos fusionados y guardados en: ", result

EN DEFINITIVA:

No sé si esto sería lo más eficiente o útil, como digo, soy bastante novata en tratamiento de datos. Si conocéis algún tutorial para potenciar el uso de excel en este sentido es bien recibido.

Si sigo entrando en proyectos donde me pidan este aspecto seguiré indagando poco a poco ¡Gracias!

1 Comment
Discussão (1)2
Entre ou crie uma conta para continuar
Discussão (2)1
Entre ou crie uma conta para continuar
Anúncio
· Maio 27, 2024

Desenvolvedor MUMPS / CACHE

Olá grupo.

Tenho mais de 36 anos de experiência desenvolvendo soluções com MUMPS e Cache.  Além disso também desenvolvo em Python e HTML. Estou procurando uma oportunidade de emprego. 

Muito Obrigado,

Carlos
 

Discussão (0)1
Entre ou crie uma conta para continuar
Artigo
· Maio 27, 2024 4min de leitura

Studio IRIS AI Studio: Playground para explorar as capacidades RAG sobre as incorporações de vetores da IRIS DB

No artigo anterior, vimos detalhes a respeito dos conectores, que permitem que o usuário carregue o arquivo, o converta para incorporações e armazene na IRIS DB. Nesse artigo, vamos explorar opções diferentes de recuperações que o Studio IRIS AI oferece: Semantic Search (pesquisa semântica), Chat (conversa), Recommender (recomendação) e Similarity (similaridade).

Novas atualizações  ⛴️ 

  • Adicionada instalação pelo Docker. Rode `./build.sh` após clonagem para ter a aplicação e a instância IRIS rodando na sua máquina local.
  • Conecte via InterSystems Extension no vsCode - Graças ao @Evgeny Shvarov 
  • Adicionado FAQ's na página principal que cobre a informação básica para novos usuários.

Semantic Search - Pesquisa semântica

Semantic Search é um método para recuperar dados que busca entender a intenção do usuário e o contexto da consulta ao invés de  somente palavras chave que combinam. Ele considera a relações entre palavras e conceitos, indo além de uma simples combinação de palavras chave.

A construção através da criação de índice e carregamento de dados na IRIS DB foi coberta no artigo anterior, no código de Connectors, e agora começamos com o índice e rodamos a máquina de consulta:

Ref. a `query_llama.py`

query_engine = index.as_query_engine()
response = query_engine.query(query)

 

Chat Engine - Máquina de Chat

A Chat Engine - máquina de chat aumenta o conteúdo carregado e age como uma versão de estados da máquina de consult "query_engine" anterior. Ela mantém o rastreio do histórico da conversa e pode responder perguntas com esse contexto passado em "mente".

Ref. a `chat_llama.py`

chat_engine = index.as_chat_engine(chat_mode='condense_question')
response = chat_engine.chat(user_message)

 

Recommender - Recomendador

O Recommender - Recomendador é similar aos sistemas de recomendação usados nos sites de e-commerce, onde produtos similares são exibidos abaixo do produto que procuramos. O Recommender and Similarity RAG (Retrieval-augmented generation) - RAG (Geração aumentada de recuperação) de Recomendação e Similaridade também cai em aspectos similares, mas no Recommender, você pode escolher o modelo de rankeamento LLM (Large Language Model - Grande Modelo de Linguagem) a ser usado.

Ref. to `reco_llama.py`

if reco_type == 'cohere_rerank':
    cohere_rerank = CohereRerank(api_key=cohere_api_key, top_n=results_count)
    query_engine = index.as_query_engine(
        similarity_top_k=10,
        node_postprocessors=[cohere_rerank],
    )
    response = query_engine.query(query)

elif reco_type == 'openai_rerank':
    rankgpt_rerank = RankGPTRerank(
        llm=OpenAI(
            model="gpt-3.5-turbo-16k",
            temperature=0.0,
            api_key=openai_api_key,
        ),
        top_n=results_count,
        verbose=True,
    )
    query_engine = index.as_query_engine(
        similarity_top_k=10,
        node_postprocessors=[rankgpt_rerank],
    )
    response = query_engine.query(query)

Similarity - Similaridade

O recurso Similarity - Similaridade retorna uma pontuação de similaridade, que ajuda a avaliar a qualidade do sistema de respostas via similaridade semântica. Você pode filtrar os resultados baseados em um mínimo de pontuação de similaridade e o número de intens similares para retornar da base DB (Database - Base de Dados)

Ref. a `similarity_llama.py`

retriever = index.as_retriever(similarity_top_k=top_k)
nodes = retriever.retrieve(query)

 

Ao nivelar essas diferentes opções de recuperação de dados no Stuio IRIS AI, incluindo Semantic Search, Chat Engine, Recommender e Similarity, os usuários podem explorar o potencial dos seus dados. Esses atributos permitem recuperação avançada de informações, respostas a perguntas de contexto, recomendações pessoais e análises de similaridade semântica, empoderando usuários a obter percepções valiosas e fazer decisões baseadas nos dados (ao menos para construir similares no seu domínio).

By leveraging these different retrieval options at IRIS AI Studio, including Semantic Search, Chat Engine, Recommender, and Similarity, users can explore the potential of their data. These features enable advanced information retrieval, contextual question answering, personalized recommendations, and semantic similarity analysis, empowering users to derive valuable insights and make data-driven decisions (at least to build similar ones in their domain).

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

Fique à vontade para compartilhar qualquer feedabck ou entradas que tiver. Obrigado.

Discussão (0)1
Entre ou crie uma conta para continuar
Anúncio
· Maio 27, 2024

The 3rd InterSystems Ideas Contest

Hello Community,

We're super excited to invite all our Developer Community members (both InterSystems employees and not) to participate in our next contest!

💡 The 3rd InterSystems Ideas Contest 💡

We're looking for your innovative ideas to enhance InterSystems IRIS and related products and services. We encourage suggestions based on real-life use cases, highlighting the tangible benefits your idea will bring to other users and how it will enhance developers' experiences with InterSystems technology.

📅 Duration: June 10 - July 7, 2024

🏆 Prizes for the best ideas!

🎁 Gifts for everyone: A special gift will be given to each author whose idea is accepted in the contest.

 

>> VOTE FOR THE BEST IDEAS HERE <<

Accepted ideas should:

  • be created during the Ideas Contest period by a user registered on the InterSystems Ideas portal (you can log in via InterSystems SSO);
  • not be part of other already existing ideas - only new ideas are allowed;
  • not describe the existing functionality of InterSystems IRIS and related Products or Services;
  • be posted in English;
  • be written by a person, not generated by AI;
  • be specific rather than general, with an explanation of how this exact change will benefit users and is linked to a real-life use case;
  • be accepted as meaningful by InterSystems experts.

All ideas are subject to moderation. We may request to clarify the submitted idea. Ideas that meet the requirements will receive a special "Ideas Contest" status.

Who can participate?

We invite EVERYONE to join our new Ideas Contest. Both InterSystems employees and non-employees are welcome to participate and submit their ideas. 

Prizes

1. Participation gift - authors of all accepted ideas will get:

🎁 Branded T-shirt with InterSystems logo (unisex)

2. Expert award - the 3 best ideas will be selected by InterSystems experts. Winners will get:

🥇 1st place - JBL Tour Pro wireless Noise Cancelling earbuds

🥈 2nd place - Patagonia Unisex Nano Puff® Vest

🥉 3rd place -  LEGO Vespa 125 / Corvette / NASA Mars Rover Perseverance / Kawasaki Ninja H2R Motorcycle

3. Community Award - an idea with the most votes will get:

🎁 LEGO Vespa 125 / Corvette / NASA Mars Rover Perseverance / Kawasaki Ninja H2R Motorcycle

Note: InterSystems employees can only get the participation prize. Expert and Community awards can only be won by non-InterSystems members of the Community. 

Contest period

⚠️ Idea Submission: June 10 - 30

✅ Voting for ideas: July 1 - 7

🎉 Winners announcement: July 8

We encourage you to share your ideas on the Ideas portal during this period. Registered members can participate by voting and providing comments on published ideas.

Note: only votes from active Community users who have made at least one post on the Developer Community are counted for the Community Award.

--

Post your idea(s) on the InterSystems Ideas portal, and stay tuned for your idea's status updates:

>> VOTE FOR THE BEST IDEAS HERE <<

Good luck! 🍀 


Note: All prizes are subject to availability and shipping options. Some items may not be available for international shipping to specific countries, in this case, an equivalent alternative will be provided. We will let you know if a prize is not available and offer a possible replacement. Prizes cannot be delivered to residents of Crimea, Russia, Belarus, Iran, North Korea, Syria, or other US-embargoed countries.

5 Comments
Discussão (5)2
Entre ou crie uma conta para continuar