Su organización requiere un Chatbot inteligente multicanal y un motor de búsqueda capaz de comprender diversos tipos de datos dispersos en varias ubicaciones. Además, el chatbot conversacional debería poder brindar respuestas a consultas, junto con la fuente y una explicación de cómo y dónde se obtuvo la respuesta. En otras palabras, desea ChatGPT privado y seguro para su organización que pueda interpretar, comprender y responder preguntas sobre los datos de su empresa .
El objetivo de la POC es mostrar/probar el valor de un Asistente Virtual GPT creado con Servicios de Azure, con sus propios datos en su propio entorno. Los entregables son:
API de Backend Bot creada con Bot Framework y expuesta a múltiples canales (chat web, MS Teams, SMS, correo electrónico, Slack, etc.)
Aplicación web frontend con una interfaz de usuario de búsqueda y bot.
El repositorio está diseñado para enseñarle paso a paso cómo crear un motor de búsqueda inteligente basado en OpenAI. Cada Notebook se construye uno encima del otro y termina construyendo las dos aplicaciones.
Para Microsoft FTE: este es un VBD financiado por el cliente, debajo de los activos para la entrega.
Artículo | Descripción | Enlace |
---|---|---|
Información y hoja de datos del SKU de VBD | CSAM debe enviarlo como "Inversión del cliente" contra créditos/horas del Contrato de soporte unificado. El cliente decide si 3 o 5 días. | Página de SKU de ESXP |
Acreditación VBD para CSA | Enlaces para que los CSA obtengan la acreditación necesaria para impartir el taller | Enlace 1, Enlace 2 |
Activo POC (IP) de VBD de 3 a 5 días | El MVP que se entregará (este repositorio de GitHub) | Acelerador-Azure-Cognitive-Search-Azure-OpenAI |
Cubierta del taller VBD | La baraja presentando y explicando el taller. | Introducción AOAI GPT Azure Smart Search Engine Accelerator.pptx |
Vídeo de formación CSA | Capacitación de 2 horas para Microsoft CSA | Grabación de entrenamiento de POC VBD (¡Nuevo video próximamente!) |
Requisitos previos Cliente 3-5 días POC
Suscripción a Azure
Solicitud aceptada para Azure Open AI, incluido GPT-4o. Si el cliente no tiene aprobado GPT-4o, los CSA de Microsoft pueden prestar el suyo durante el taller.
Es preferible que los miembros de Microsoft se agreguen como invitados en los clientes de Azure AD. Si no es posible, los clientes pueden emitir identificaciones corporativas a los miembros de Microsoft.
Es necesario configurar un grupo de recursos (RG) para esta POC de Workshop en el inquilino de Azure del cliente.
El equipo del cliente y el equipo de Microsoft deben tener permisos de Colaborador para este grupo de recursos para que puedan configurar todo 2 semanas antes del taller.
Se debe configurar una cuenta de almacenamiento en el RG.
Los datos/documentos del cliente deben cargarse en la cuenta de almacenamiento de blobs al menos dos semanas antes de la fecha del taller.
El cliente debe crear un registro de aplicación multiinquilino (principal de servicio) (guarde la identificación del cliente y el valor secreto).
El cliente debe proporcionar al equipo de Microsoft entre 10 y 20 preguntas (de fáciles a difíciles) que desea que el bot responda correctamente.
Para la colaboración y estandarización de IDE durante el taller, se utilizarán instancias informáticas AML con Jupyper Lab; para ello, se debe implementar Azure Machine Learning Workspace en el RG.
Nota: asegúrese de tener suficiente cuota de procesamiento central en su espacio de trabajo de Azure Machine Learning.
El usuario hace una pregunta.
En la aplicación, un LLM de OpenAI utiliza un mensaje inteligente para determinar qué fuente usar en función de la entrada del usuario.
Hay cinco tipos de fuentes disponibles:
Transcripciones de los diálogos de todos los episodios del Programa de TV: AMIGOS
90.000 resúmenes de publicaciones de Covid
4 libros PDF extensos
3a. Azure SQL Database: contiene estadísticas relacionadas con COVID en EE. UU.
3b. Puntos finales API: API RESTful OpenAPI 3.0 que contiene estadísticas actualizadas sobre Covid.
3c. Azure Bing Search API: proporciona acceso a Internet permitiendo escenarios como: QnA en sitios web públicos.
3d. Azure AI Search: contiene documentos enriquecidos con IA de Blob Storage:
3f. Archivo tabular CSV: contiene estadísticas relacionadas con COVID en EE. UU.
La aplicación recupera el resultado de la fuente y elabora la respuesta.
La tupla (Pregunta y Respuesta) se guarda en CosmosDB como memoria persistente y para su posterior análisis.
La respuesta se entrega al usuario.
https://gptsmartsearchapp.azurewebsites.net/
100% pitón.
Utiliza Azure Cognitive Services para indexar y enriquecer documentos no estructurados: OCR sobre imágenes, Chunking y vectorización automatizada.
Utiliza las capacidades de búsqueda híbrida de Azure AI Search para proporcionar la mejor respuesta semántica (búsqueda de texto y vector combinada).
Utiliza LangChain como contenedor para interactuar con Azure OpenAI, almacenes de vectores, crear solicitudes y crear agentes.
Multilingüe (ingiere, indexa y comprende cualquier idioma)
Índice múltiple -> múltiples índices de búsqueda
Preguntas y respuestas sobre datos tabulares con archivos CSV y bases de datos de tipo SQL
Utiliza el SDK de Azure AI Document Intelligence (antiguo Form Recognizer) para analizar documentos PDF complejos o grandes.
Utiliza la API de búsqueda de Bing para impulsar las búsquedas en Internet y las preguntas y respuestas en sitios web públicos.
Se conecta a fuentes de datos API convirtiendo preguntas en lenguaje natural en llamadas API.
Utiliza CosmosDB como memoria persistente para guardar las conversaciones de los usuarios.
Utiliza Streamlit para crear la aplicación web Frontend en Python.
Utiliza Bot Framework y Bot Service para alojar el backend de Bot API y exponerlo a múltiples canales, incluidos MS Teams.
También utiliza LangServe/FastAPI para implementar una API de backend alternativa con capacidades de transmisión
Nota: (Requisito previo) Debe tener un servicio Azure OpenAI ya creado
Bifurca este repositorio en tu cuenta de Github.
En Azure OpenAI Studio, implemente estos modelos (los modelos más antiguos que los que se indican a continuación no funcionarán):
"gpt-4o"
"gpt-4o-mini"
"text-embedding-ada-002 (o más reciente)"
Crea un Grupo de Recursos donde estarán todos los activos de este acelerador. Azure OpenAI puede estar en un RG diferente o en una suscripción diferente.
HAGA CLIC A CONTINUACIÓN para crear toda la infraestructura de Azure necesaria para ejecutar los portátiles (Azure AI Search, Cognitive Services, etc.):
Nota : Si nunca antes ha creado una Azure AI Services Multi-Service account
, cree una manualmente en el portal de Azure para leer y aceptar los términos de IA responsable. Una vez implementado, elimínelo y luego use el botón de implementación anterior.
Clona tu repositorio bifurcado en tu instancia informática AML. Si su repositorio es privado, consulte a continuación en la sección Solución de problemas cómo clonar un repositorio privado.
Asegúrese de ejecutar los cuadernos en un entorno conda Python 3.10 o más reciente
Instale las dependencias en su máquina (asegúrese de ejecutar el siguiente comando pip en el mismo entorno conda en el que va a ejecutar las computadoras portátiles. Por ejemplo, en la instancia informática AZML, ejecute:
conda activate azureml_py310_sdkv2 pip install -r ./common/requirements.txt
Es posible que obtenga algunos errores de dependencias de pip, pero está bien, las bibliotecas se instalaron correctamente independientemente del error.
Edite el archivo credentials.env
con sus propios valores de los servicios creados en el paso 4.
Para BLOB_SAS_TOKEN y BLOB_CONNECTION_STRING. Vaya a Cuenta de almacenamiento>Seguridad + redes>Firma de acceso compartido>Generar SAS
Ejecute los cuadernos en orden . Se acumulan uno encima del otro.
¿Por qué utilizar el motor de búsqueda Azure AI para proporcionar el contexto para el LLM y no ajustarlo?
R: Citando la documentación de OpenAI: "GPT-3 ha sido entrenado previamente en una gran cantidad de texto de Internet abierto. Cuando se le da un mensaje con solo unos pocos ejemplos, a menudo puede intuir qué tarea está intentando realizar y generar una finalización plausible. Esto a menudo se denomina "aprendizaje en pocas oportunidades". El ajuste fino mejora el aprendizaje en pocas oportunidades al entrenar con muchos más ejemplos de los que caben en el mensaje, lo que le permite lograr mejores resultados en una amplia cantidad de tareas. Una vez que se haya ajustado un modelo, ya no será necesario proporcionar ejemplos en el mensaje. Esto ahorra costos y permite solicitudes de menor latencia "
Sin embargo, para ajustar el modelo es necesario proporcionar cientos o miles de tuplas de solicitud y finalización, que son esencialmente muestras de respuesta a consultas. El propósito del ajuste no es brindarle al LLM conocimiento de los datos de la empresa, sino brindarle ejemplos para que pueda realizar tareas realmente bien sin requerir ejemplos en cada solicitud.
Hay casos en los que es necesario realizar ajustes, como cuando los ejemplos contienen datos de propiedad que no deben exponerse en las indicaciones o cuando el lenguaje utilizado es altamente especializado, como en la atención médica, la farmacia u otras industrias, o casos de uso en los que el lenguaje utilizado no se encuentra comúnmente en Internet.
Pasos para clonar un repositorio privado:
En su Terminal, pegue el texto a continuación, sustituyendo su dirección de correo electrónico de GitHub. Genere una nueva clave SSH.
ssh-keygen -t ed25519 -C "tu_correo electró[email protected]"
Copie la clave pública SSH a su portapapeles. Agregue una nueva clave SSH.
cat ~/.ssh/id_ed25519.pub# Luego seleccione y copie el contenido del archivo id_ed25519.pub# que se muestra en la terminal a su portapapeles
En GitHub, vaya a Configuración-> Claves SSH y GPG-> Nueva clave SSH
En el campo "Título", agregue una etiqueta descriptiva para la nueva clave. "Cálculo AML". En el campo "Clave", pegue su clave pública.
Clona tu repositorio privado
git clone [email protected]:TU-NOMBRE DE USUARIO/TU-REPOSITORIO.git
Este proyecto agradece contribuciones y sugerencias. La mayoría de las contribuciones requieren que usted acepte un Acuerdo de licencia de colaborador (CLA) que declara que tiene derecho a otorgarnos, y de hecho lo hace, los derechos para usar su contribución. Para obtener más detalles, visite https://cla.opensource.microsoft.com.
Cuando envía una solicitud de extracción, un bot CLA determinará automáticamente si necesita proporcionar un CLA y decorar el PR de manera adecuada (por ejemplo, verificación de estado, comentario). Simplemente siga las instrucciones proporcionadas por el bot. Solo necesitarás hacer esto una vez en todos los repositorios que utilicen nuestro CLA.
Este proyecto ha adoptado el Código de conducta de código abierto de Microsoft. Para obtener más información, consulte las preguntas frecuentes sobre el Código de conducta o comuníquese con [email protected] si tiene alguna pregunta o comentario adicional.
Este proyecto puede contener marcas comerciales o logotipos de proyectos, productos o servicios. El uso autorizado de las marcas comerciales o logotipos de Microsoft está sujeto y debe seguir las Pautas de marcas y marcas comerciales de Microsoft. El uso de marcas comerciales o logotipos de Microsoft en versiones modificadas de este proyecto no debe causar confusión ni implicar patrocinio de Microsoft. Cualquier uso de marcas comerciales o logotipos de terceros está sujeto a las políticas de dichos terceros.