| Generador de aplicaciones de IA generativa en AWS | ? Solicitud de función | ? Informe de error | Guía de implementación |
NOTA:
La solución Generative AI Application Builder en AWS (GAAB) proporciona un panel de administración basado en web para implementar casos de uso personalizables de IA generativa (Gen AI). Este panel de implementación permite a los clientes implementar, experimentar y comparar diferentes combinaciones de casos de uso de modelos de lenguaje grande (LLM). Una vez que los clientes hayan configurado y optimizado con éxito su caso de uso, pueden llevar su implementación a producción e integrarla en sus aplicaciones.
Generative AI Application Builder se publica bajo una licencia Apache 2.0 y está dirigido a usuarios principiantes y experimentados que desean experimentar y producir diferentes casos de uso de Gen AI. La solución utiliza el software de código abierto (OSS) LangChain para configurar conexiones a su elección de modelos de lenguaje grande (LLM) para diferentes casos de uso. La primera versión de GAAB permite a los usuarios implementar casos de uso de chat que permiten consultar los datos empresariales de los usuarios en una interfaz de usuario (UI) estilo chatbot, junto con una API para admitir implementaciones personalizadas para el usuario final.
Algunas de las características de GAAB son:
Para obtener una guía detallada de implementación de la solución, consulte The Generative AI Application Builder en AWS.
Hay tres personas de usuario únicas a las que se hace referencia en el tutorial de la solución a continuación:
NOTA:
Cuando el usuario de DevOps implementa el panel de implementación, los siguientes componentes se implementan en la cuenta de AWS:
Note: Although the Deployment dashboard can be launched in most AWS regions, the deployed use cases have some restrictions based on service availability. See Supported AWS Regions in the Implementation Guide for more details.
Una vez que se implementa el Panel de implementación, el usuario administrador puede implementar múltiples pilas de casos de uso. Cuando el usuario administrador implementa una pila de casos de uso, los siguientes componentes se implementan en la cuenta de AWS:
NOTA:
Hay dos opciones para la implementación en su cuenta de AWS:
cdk deploy
Los siguientes son requisitos previos para compilar e implementar localmente:
ensurepip
y pip
; sin embargo, si se ejecuta en un entorno sin estos paquetes, deberá instalarlos manualmente (por ejemplo, una imagen mínima de Docker). Consulte la guía de instalación de pip para obtener más detalles. Nota: Configure AWS CLI con sus credenciales de AWS o expórtelas en el entorno del terminal CLI. En caso de que las credenciales no sean válidas o hayan caducado, ejecutar cdk deploy
produce un error.
Además, si no ha ejecutado cdk bootstrap
en esta cuenta y región, siga las instrucciones aquí para ejecutar cdk bootstrap como un proceso único antes de continuar con los pasos a continuación.
Después de clonar el repositorio de GitHub, complete los siguientes pasos:
NOTA:
cdk-asset-bucket
en source/infrastructure/cdk.json
. El valor de esta propiedad debe ser el nombre del depósito que creó el proceso cdk bootstrap
. A menos que se configure un nombre de depósito, el proceso cdk bootstrap
crea un depósito en el siguiente formato: cdk-hnb659fds-assets--
(donde está el ID de la cuenta de AWS donde se implementa la solución). lo específico). El repositorio actualmente tiene el valor establecido de la siguiente manera: "cdk-asset-bucket": "cdk-hnb659fds-assets-123456789012-us-east-1"
cd /source/infrastructure
npm install
npm run build
cdk synth
cdk deploy DeploymentPlatformStack --parameters AdminUserEmail=
Nota: Debido a que cdk deploy
se ejecuta con un nombre de pila, no sintetiza las otras pilas de CloudFormation en la carpeta de infraestructura. Para garantizar que todas las pilas se sinteticen en función de los cambios en el código de infraestructura, asegúrese de usar cdk synth
. Para obtener una lista completa de los comandos de cdk que se pueden ejecutar, consulte Comandos del kit de herramientas
Para que el panel de implementación implemente casos de uso de chat de LLM, además necesitará organizar activos CDK sintetizados (como lambdas, plantillas de CloudFormation sintetizadas, etc.) desde el directorio source/infrastructure/cdk.out
a un depósito S3 configurado en su cuenta. de donde se extraerán estos recursos en el momento del despliegue. Para facilitar la preparación de estos activos, puede utilizar el script source/stage-assets.sh
. Este script debe ejecutarse desde el directorio source
.
cd /source
./stage-assets.sh
Cuando se ejecuta, el script se ve así:
>>> ./stage-assets.sh
This script should be run from the 'source' folder
The region to upload CDK artifacts to (default:us-east-1)?
>>> us-west-2
>>> All assets will be uploaded to cdk-hnb659fds-assets-123456789-us-west-2
>>> Do you want to proceed? (y/n) y
Debe proporcionar el nombre completo de la región como primera entrada al script, como se muestra en el ejemplo anterior.
Nota: Los recursos deben prepararse cada vez que haya un cambio en el código base para tener los activos preparados más actualizados. También se recomienda ejecutar cdk synth
antes de la puesta en escena.
Consulte la sección Creación de una compilación personalizada
├── CHANGELOG.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── Config
├── LICENSE.txt
├── NOTICE.txt
├── README.md
├── buildspec.yml
├── deployment
│ ├── build-open-source-dist.sh
│ ├── build-s3-dist.sh
│ ├── cdk-solution-helper
│ ├── clean-for-scan.sh
│ ├── get-cdk-version.js
│ └── manifest.yaml
| ├── run-unit-tests.sh [shell script that can run unit tests for the entire project]
├── pyproject.toml
├── pytest.ini
├── sonar-project.properties
└── source
├── images
├── infrastructure [CDK infrastructure]
├── lambda [Lambda functions for the application]
├── pre-build-lambda-layers.sh [pre-builds lambda layers for the project]
├── scripts [standalone utility scripts]
├── stage-assets.sh
├── test
├── ui-chat [Web App project for chat UI]
└── ui-deployment [Web App project for deployment dashboard UI]
└── docs
El proyecto proporciona una carpeta de documentos que le brinda acceso a muestras de entradas de SageMaker. Como los modelos de SageMaker pueden recibir y generar una variedad de esquemas de entrada y salida, respectivamente, la solución solicita estos valores a los usuarios para permitir la invocación correcta del modelo. Esto permite que la solución admita un amplio conjunto de modelos de SageMaker.
Los esquemas de entrada son esencialmente la carga útil de su modelo, con marcadores de posición para los valores reales. Los marcadores de posición permiten reemplazar los valores reales del modelo en tiempo de ejecución y están representados por una palabra clave entre corchetes angulares como: <
. Tenga en cuenta que <
y <
son marcadores de posición reservados para el indicador del modelo y las temperaturas, respectivamente.
El JSONPath de salida del modelo proporciona a la solución una ruta para recuperar la respuesta textual del LLM a partir de la respuesta del modelo.
Consulte siempre la documentación del modelo y los ejemplos de portátiles jupyter JumpStart de SageMaker para ver las cargas útiles del modelo más actualizadas y los parámetros admitidos.
Ejecute el siguiente comando:
git clone https://github.com/aws-solutions/
cd /source/infrastructure
npm install
Nota: Para ejecutar las pruebas unitarias, Docker debe estar instalado y en ejecución, y se deben configurar credenciales de AWS válidas.
cd /deployment
chmod +x ./run-unit-tests.sh
./run-unit-tests.sh
export DIST_OUTPUT_BUCKET=my-bucket-name
export VERSION=my-version
cd /deployment
chmod +x ./build-s3-dist.sh
./build-s3-dist.sh $DIST_OUTPUT_BUCKET $SOLUTION_NAME $VERSION $CF_TEMPLATE_BUCKET_NAME
Detalles del parámetro:
$DIST_OUTPUT_BUCKET - This is the global name of the distribution. For the bucket name, the AWS Region is added to the global name (example: 'my-bucket-name-us-east-1') to create a regional bucket. The lambda
artifacts should be uploaded to the regional buckets for the CloudFormation template to pick it up for deployment.
$SOLUTION_NAME - The name of This solution (example: generative-ai-application-builder-on-aws)
$VERSION - The version number of the change
$CF_TEMPLATE_BUCKET_NAME - The name of the S3 bucket where the CloudFormation templates should be uploaded
Al crear y utilizar depósitos, le recomendamos que:
Nota: Debe tener instalada la AWS CLI.
aws s3 cp ./global-s3-assets/ s3://my-bucket-name-/generative-ai-application-builder-on-aws// --recursive --acl bucket-owner-full-control --profile aws-cred-profile-name
aws s3 cp ./regional-s3-assets/ s3://my-bucket-name-/generative-ai-application-builder-on-aws// --recursive --acl bucket-owner-full-control --profile aws-cred-profile-name
La solución incluye dos aplicaciones web independientes basadas en React: la interfaz de usuario del panel de implementación y la interfaz de usuario de chat. Ambas interfaces de usuario se crean utilizando Vite, una herramienta de creación rápida y moderna para proyectos web modernos.
Abrir una terminal
Navegue al directorio de origen
source
dentro de la raíz del proyecto: cd /source
Obtener y actualizar la configuración del tiempo de ejecución
Ejecute el script setup_local_dev_server.py
proporcionado con los argumentos apropiados:
python setup_local_dev_server.py --ui-project-type --website
con ui-chat
o ui-deployment
dependiendo del proyecto de UI que desee configurar.
con la URL del sitio web donde se implementa la solución (por ejemplo, https://example.com
).El script recuperará la configuración de tiempo de ejecución utilizada para configurar AWS Amplify, que utiliza el proyecto. También actualizará el cliente de la aplicación Cognito agregando la dirección de host local a la lista de callbackurls y logouturls, para que funcione con el dominio alojado de Cognito.
Por ejemplo, para actualizar el proyecto UI Chat:
python setup_local_dev_server.py --ui-project-type ui-chat --website https://example.com
o
python setup_local_dev_server.py -t ui-chat -w https://example.com
Para actualizar el proyecto de implementación de UI:
python setup_local_dev_server.py --ui-project-type ui-deployment --website https://example.com
o
python setup_local_dev_server.py -t ui-deployment -w https://example.com
Navegue al directorio de proyectos de UI
Cambie al directorio del proyecto de UI con el que desea trabajar:
cd ui-chat
o
cd ui-deployment
Instalar dependencias
Instale las dependencias requeridas de Node.js ejecutando el siguiente comando en el directorio del proyecto:
npm install
Inicie el servidor de desarrollo local
En el directorio del proyecto, ejecute el siguiente comando para iniciar el servidor de desarrollo local de Vite:
npm start
El servidor de desarrollo de la interfaz de usuario del panel de implementación comenzará en http://localhost:5177
y el servidor de desarrollo de la interfaz de usuario de Chat comenzará en http://localhost:5178
.
Si estos puertos ya están en uso en su máquina, puede personalizar el script setup_local_dev_server.py
para usar diferentes puertos.
Con el entorno de desarrollo local configurado, ahora puede personalizar los componentes de React y la funcionalidad de los proyectos de UI según sus requisitos. El código fuente de la interfaz de usuario del panel de implementación se encuentra en el directorio source/ui-deployment
y el código fuente de la interfaz de usuario de Chat se encuentra en el directorio source/ui-chat
.
Siga el flujo de trabajo de desarrollo estándar de React para realizar cambios en el código y utilice el servidor de desarrollo local de Vite para obtener una vista previa de los cambios en tiempo real.
Cuando esté listo para implementar sus proyectos de UI personalizados, siga las instrucciones en el archivo README principal para crear e implementar la solución mediante AWS CDK.
Esta solución recopila métricas operativas anónimas para ayudar a AWS a mejorar la calidad y las características de la solución. Para obtener más información, incluido cómo desactivar esta capacidad, consulte la guía de implementación.
Copyright Amazon.com, Inc. o sus afiliados. Reservados todos los derechos.
Licenciado bajo la Licencia Apache, Versión 2.0 (la "Licencia"); no puede utilizar este archivo excepto de conformidad con la Licencia. Puede obtener una copia de la Licencia en
http://www.apache.org/licenses/LICENSE-2.0
A menos que lo exija la ley aplicable o se acuerde por escrito, el software distribuido bajo la Licencia se distribuye "TAL CUAL", SIN GARANTÍAS NI CONDICIONES DE NINGÚN TIPO, ya sean expresas o implícitas. Consulte la Licencia para conocer el idioma específico que rige los permisos y limitaciones de la Licencia.
Se incluye un script para migrar casos de uso creados por v1.X a una implementación actualizada de v2.X. Ver la documentación