jueves, 31 de octubre de 2024

Azure Chat Bot (Copilotos)

En Azure existen principalmente dos alternativas para crear Chat Bot con IA:

  • Copilot Studio 
  • Azure Bot Services
Para ayudarnos a decidir cual es mejor para cada escenario, es util este post:

Para profuncizar en el tema

En este ultimo curso, se utilizan los siguientes servicios:
  • Microsoft.KeyVault
  • Microsoft.MachineLearningServices
  • Microsoft.Storage
  • Application Insights
  • Azure OpenAI Service
  •  Azure AI Search

martes, 29 de octubre de 2024

Infraestructura para AI

Data Lake: un data lake es un repositorio centralizado diseñado para almacenar, procesar y proteger grandes cantidades de datos estructurados, semiestructurados o no estructurados. Puede almacenar datos en su formato nativo y procesar cualquier variedad de datos, sin importar los límites de tamaño.

DataWarehouse: un almacén de datos o repositorio de datos es una colección de datos estructurados orientada a un determinado ámbito, integrado, no volátil y variable en el tiempo, que ayuda a la toma de decisiones.

Infraestructura "modelo" de un Data Lake.


Fuente: Video de RD

Cómo construir un Data Lake




DataLakeHouse: es una arquitectura de datos moderna que crea una plataforma única mediante la combinación de los beneficios clave de los data lakes (grandes repositorios de datos sin procesar en su forma original) y los almacenes de datos (conjuntos organizados de datos estructurados).


Proveedores líderes (históricos) en data lakes:


Actualmente, cada plataforma (Cloud) tiene sus herramientas:




Opciones de Data Lake Open Source:




  • AirByte: extraccion de datos

  • PostgreSQL / BigQuery

  • Airflow: herramienta de orquestacion procesos

  • DBT: para estructurar procesos de transformacion de datos. 

  • Superset: idem PowerBI



Otra infraestructura Open Source:


Ingeniería de datos

Herramientas más utilizadas para la carga de datos.




Carga de datos (en tiempo real)

  • Spark

  • kafka

Traditional-structured Data (herramientas que no requieren saber programar)

  • Azure Data Factory

  • AWS Glue

  • Google Dataflow

  • IBM Infosphere

Unstructured Data (permiten tomar un documento y extraer información)

  • Spark (requiere programacion, Python)

  • nifi




Data Marurity Index (DMI)

Niveles de madurez en el uso de datos - Data Marurity Index (DMI)

Se puede bajar PDF de evaluación aquí.



** Modelos de recomentacion (viste esa pelicula?)



Advanced Analytics

Ver definición Google

El análisis avanzado es el proceso de utilizar técnicas complejas de machine learning (ML) y visualización para obtener información de datos más allá de la inteligencia empresarial tradicional. Las organizaciones modernas recopilan grandes volúmenes de datos y los analizan para descubrir patrones y tendencias ocultos. Utilizan la información para mejorar la eficiencia de los procesos empresariales y la satisfacción del cliente. Con el análisis avanzado, puede ir un paso más allá y utilizar los datos para la toma de decisiones futuras y en tiempo real. Las técnicas de análisis avanzado también extraen conclusiones a partir de datos no estructurados, como los comentarios o las imágenes de las redes sociales. Pueden ayudar a su organización a resolver problemas complejos de manera más eficiente. Los avances en la computación en la nube y el almacenamiento de datos han hecho que el análisis avanzado sea más asequible y accesible para todas las organizaciones.


Advanced Analytics es poder dialogar con los datos. Es la combinación de Data Mining con BI. Es detectar patrones dentro de mi información.

Si bien las tecnologias avanzan hacia el low code o no code, surgen estas otras especialidades.



Machine Learning Engeneer

Ver definición Google

Un Professional Machine Learning Engineer crea, evalúa, produce y optimiza modelos de AA (Aprenidzaje Automático) mediante las tecnologías de Cloud y el conocimiento de modelos y técnicas comprobados. El ML Engineer controla conjuntos de datos grandes y complejos, y crea código repetible y reutilizable.






MLOps (Machine Learning Operations)

MLOps tiene como objetivo implementar y mantener modelos de aprendizaje automático en producción de manera confiable y eficiente.

  • mlflow (herramienta Open Source de databricks)

  • Azure Machine Learning (Microsoft)

  • Amazon SageMaker (Amazon)

  • Vertex AI (Google)



Gobierno de Datos

Data Hub: es una herramienta de codigo libre. Sirve para armar un catdefinir un Catálogo y un Diccionario de datos, definir que es cada dato y para qué se usa. Otras similares son PureView (Microsoft), Unity (DataBricks), 


Conceptos varios:

  • Data Stewards (tecnico): es el guardián de las políticas de datos dentro de la organización. Por tanto, debe definir, implementar y mantener las reglas y estándares que rigen el uso de los datos para que sean fiables y se les dé un uso correcto. Calidad de los datos. Estos deben estar completos y ser coherentes

  • Data Owners (negocio): los propietarios de datos tienen responsabilidades específicas relacionadas con el dominio, incluida la seguridad de los datos, el control de acceso y la toma de decisiones dentro de sus áreas de datos asignadas.

  • Auditoria: identificar patrones y tendencias en los datos para detectar posibles fraudes y errores, así como para mejorar la eficiencia y eficacia del proceso de auditoría y también puede ayudar a las empresas a identificar nuevas oportunidades de negocio y a mejorar la toma de decisiones.

  • Data Lineage (trazabilidad): el linaje de datos es el proceso de rastrear el flujo de datos a lo largo del tiempo, facilitando la comprensión de dónde se han originado los datos, cómo han cambiado y su destino final dentro de la canalización de datos.

  • Data Quality: se refiere al grado en que los datos cumplen con los estándares y requisitos establecidos para su uso en la empresa.

  • Data LifeCycle: el ciclo de vida de los macrodatos consta de cuatro fases: recopilación de datos, almacenamiento de datos, análisis de datos y creación de conocimiento

I


miércoles, 23 de octubre de 2024

RAG with Azure AI Search

RAG (Retrieval Augmented Generation) es el enfoque más común que se utiliza para que los LLM respondan preguntas basadas en los datos de un dominio en particular. Azure AI Search es un potente motor de búsqueda, con muchas características diseñadas específicamente para aplicaciones RAG. 

Demostraremos una recuperación óptima mediante la búsqueda híbrida con el clasificador semántico, mostraremos la nueva característica de vectorización integrada para la ingesta de datos basada en la nube y analizaremos la optimización del almacenamiento vectorial.

Video  https://www.youtube.com/watch?v=ys9CYtqP2Ow 

Español: https://www.youtube.com/watch?v=JLf5kVgVFFA








Código de ejemplo "ChatGPT + Enterprise data with Azure OpenAI and Azure AI Search (.NET)"

https://github.com/Azure-Samples/azure-search-openai-demo-csharp 

Mas info en: 

https://github.com/microsoft/RAG_Hack?tab=readme-ov-file#raghack-lets-build-rag-applications-together

viernes, 18 de octubre de 2024

Ejemplo de personalización de Modelos de Lenguaje (LM) con RAG

 El siguiente es un ejemplo de modelo de lenguaje personalizado con RAG (Retrieval Aumented Generation)

Proyecto: eShopSupport

Video: https://reactor.microsoft.com/es-es/reactor/events/23333/ 

Soporta los siguientes casos de uso: 

  • Text classification, applying labels based on content
  • Sentiment analysis based on message content
  • Summarization of large sets of text
  • Synthetic data generation, creating test content for the sample
  • Chat bot interactions with chat history and suggested responses

De este proyecto se desprenden las siguientes herramientas y técnicas:

.Net Aspire: es una herramienta completa para el diagnóstico y la supervisión de aplicaciones. El panel permite realizar un seguimiento estrecho de varios aspectos de la aplicación, incluidos registros, seguimientos y configuraciones de entorno, en tiempo real.

Redis: plataforma de bases de datos en tiempo real. Redis es un motor de base de datos en memoria, basado en el almacenamiento en tablas de hashes pero que opcionalmente puede ser usada como una base de datos durable o persistente.


lunes, 23 de octubre de 2023

Cómo generar archivos PDF a partir de HTML

Una opción es wkhtmltopdf pero es a través de línea de comando y plantea problemas de implementación en sitios web y sobre todo en la nube.

Creación de archivo PDF en C# a partir de un archivo HTML (sin crystal report, sin itextsharp)

El resto son librerías, la mayoría pagas.


Las únicas de código libre son:

iTextSharp

- pdfSharp

- pdfSharpCore


Dentro de las librerías licenciadas están:

- IRONPDF

- DynamicPDF




jueves, 28 de septiembre de 2023

No funciona "Submit" desde PDF cuando se levanta con Microsoft Edge

 

Submit button doesn't work in PDF file when opened in Edge.

Microsoft Edge: directivas


Soluciones alternativas:

  1. Utilizar componentes de terceras partes - PDF.JS EXPRESS

  1. Modificar circuito de firma en PADs de firma
    1. Al iniciar el circuito hacer un download de un nuevo PDF con datos actualizados.
    2. Editar y grabar el PDF en la PC cliente (Acrobat Reader)
    3. Nuevo botón para subir y reanudar proceso de firma digital.
    4. Al subir el documento, del lado del servidor, leer los campos modificados y actualizar los datos correrspondientes (xml).
    5. Luego continuar el proceso de firma a través del PAD de firma.



viernes, 22 de septiembre de 2023

Editor de PDFs

 Realizamos una búsqueda de herramientas que nos permitan mostrar y editar archivos PDF desde nuestras aplicaciones.

Palabras clave: 

  • pdf viewer
  • read pdf form field values
  • javascript read pdf form field values
  • get filled pdf form data


PDF.js

Manually Download & integrate PDF.js Express Plus

PDF.js Form Filling Library:  Let your users fill and submit PDF forms directly in your PDF.js application.

Support forms with PDF.js Express: Express Web Viewer provides support for interactive forms which are a collection of fields for gathering information interactively from the user.

PDF.js Express benefits include:

  • Fill PDF Forms
  • Read PDF form field values
  • Form field name management
  • Create new form fields
  • Support for JavaScript calculation in forms

Major features of PDF.js Express Web Viewer form support:

  • Rendering of the form field widgets as from the original PDF document
  • Dynamic data entry into form field widgets
  • Loading and saving of form field data
  • Support for a number of form actions, including embedded JavaScript
  • Programmatic access to form field data, values and child widgets via the Annotations.Forms.FieldManager class

StackOverflow - pdfjs: Fill out a form and get the fieldValues