esta demostración está basada en el sitio web Learn Microsoft
Algún otro cuaderno de Jupyter estará disponible en el repositorio para mostrar cómo utilizar los asistentes de una manera más compleja.
Esta demostración utilizará python, la biblioteca openAi y azure para crear un asistente para usarlo en un cuaderno jupyter.
Si desea probar directamente en el estudio Azure Ai, está aquí el estudio Azure OpenAi.
Documentación para el estudio Azure Ai
Un asistente (¡o muchos que puedan trabajar juntos!) pueden realizar una amplia gama de tareas, como responder preguntas, brindar recomendaciones y ejecutar comandos con la ayuda de herramientas.
Un asistente podría tener algunas herramientas:
Puede utilizar asistentes para crear una amplia gama de aplicaciones, como chatbots, agentes virtuales y más.
Claramente, podría crear en unas pocas líneas de código algún asistente con herramientas para crear una canalización de subprocesos con el fin de abordar una solicitud o demanda del usuario. el asistente tomará la herramienta correcta para la demanda según la solicitud del usuario.
en la misma idea podrías usar diferentes modelos por asistente para tener una mejor respuesta o limitar el costo del asistente
Puedes crear múltiples asistentes con diferentes herramientas en un hilo (asíncrono o no) para resolver un problema o dar una respuesta a un usuario, también puedes tener diferentes hilos con diferentes asistentes.
Ejecuciones de subprocesos de múltiples asistentes con llamadas a funciones paralelas
Al final, con esta biblioteca recuperará la respuesta en formato json, un formato fácil de usar en Python y de realizar algún proceso en él.
Para crear una orquestación del asistente tendrás que gestionar estos:
La primera demostración en la raíz del repositorio es un asistente sencillo basado en la documentación de Microsoft.
AoaiAssistant.ipynb
Nombre del escenario | Descripción cuaderno | Enlace |
---|---|---|
Asistente de resolución de matemáticas | 1 asistente con solo intérprete de código como herramienta. | AoaiAssistant.ipynb |
Necesitará si desea probar el portátil en local:
Python 3.8 o posterior
Código y complementos de Visual Studio:
Una suscripción a Azure: 200 $ por la primera suscripción
Acceso al servicio Azure OpenAi Solicitar acceso para AOAI
Acceso al último modelo gpt4 0125 (actualmente disponible en Suecia Central, Oeste de EE. UU., Este de Japón)
Otros modelos son compatibles con la función de agentes.
Implemente el servicio en Portal Azure para el servicio Azure Open Ai en la región correspondiente.
Realice una implementación del modelo en el servicio azure openAi Ai studio, proporcione un nombre de implementación
o
Codespace para usar el cuaderno en la nube con Github
Para el nombre de la implementación del modelo (normalmente le dio un nombre que podría ser diferente del nombre del modelo cuando lo implementó) en Azure Ai Studio, puede encontrarlo en la sección de implementación del modelo si no No lo recuerdo
Tienes que modificar correctamente la información en secrets_env renombrado en secrets.env
El punto final de Azure y la clave de Azure para el servicio Open Ai se pueden encontrar en su portal/suscripción de Azure. o directamente en la categoría de conversación en Ai Studio, con el modelo seleccionado y el código del botón hecho clic en el primer paso Y luego tendrá que hacer clic en el botón "mostrar secreto" para obtener la clave y el punto final se muestra en el código de ejemplo.
Tendrás que hacer clic en cada paso del código junto al botón de reproducción a la izquierda de cada celda.
Si no hay errores, obtendrá en la última celda este volcado json con el resultado y toda la información recopilada.
Cuando esté listo, puede seguir los pasos del cuaderno AzureAOAI.ipynb.
En mi caso, mi modelo de implementación para gpt4-1106 se llama gpt-4turbo.
Ahora puede usar Python del cuaderno en el código de Visual Studio (o dentro de un navegador con espacio de código) si desea realizar algún proceso sobre el resultado o alguna orquestación con el resultado del asistente:
¿Has creado un asistente? ¿Quieres entender cómo gestionar hilos y mensajes?
En primer lugar, eche un vistazo a la documentación para comprender y comenzar con los asistentes.
Respeta un flujo específico para crear un hilo y gestionar mensajes en un hilo.
diagrama de secuencia
participante A como asistente de creación
participante B como creación de hilo
participante C como creación de mensajes de usuario
participante D como ejecución del hilo
participante E como recuperación del estado de ejecución
participante F como bucle de verificación de estado
participante G como recuperación de mensajes
A->>B: Crear asistente con modelo
B->>C: Crear hilo
C->>D: Agregar mensaje de usuario al hilo
D->>E: Ejecutar hilo
E->>F: Recuperar estado de ejecución
F->>F: bucle hasta que el estado sea final
F-->>G: Estado: completado
Nota a la derecha de G: buscar y mostrar mensajes
F-->>A: Estado: cancelado
F-->>A: Estado: caducado
F-->>A: Estado: fallido
{
"data" : [
{
"id" : " msg_5Oc2nmN7boHKfYuJaOnxkYrQ " ,
"assistant_id" : " asst_vid43QSBUFAVr7f7nraAwfkS " , // the id of the assistant
"content" : [
{
"text" : {
"annotations" : [],
"value" : " The solution to the equation \ (3x + 11 = 14 \ ) is \ (x = 1 \ ). " // the result of the assistant
},
"type" : " text "
}
],
"created_at" : 1706827368 ,
"file_ids" : [],
"metadata" : {},
"object" : " thread.message " ,
"role" : " assistant " ,
"run_id" : " run_VlCTYceNmV8HlQyOLQUe7Xj6 " ,
"thread_id" : " thread_KM402gTevvYxlfxYA1ONQPHP "
},
{
"id" : " msg_ZHWVk1gJT292L4YJzlbLjmFq " ,
"assistant_id" : null ,
"content" : [
{
"text" : {
"annotations" : [],
"value" : " I need to solve the equation `3x + 11 = 14`. Can you help me? " // the rquest of the user
},
"type" : " text "
}
],
"created_at" : 1706827327 ,
"file_ids" : [],
"metadata" : {},
"object" : " thread.message " ,
"role" : " user " ,
"run_id" : null ,
"thread_id" : " thread_KM402gTevvYxlfxYA1ONQPHP " // id of the thread
}
],
"object" : " list " ,
"first_id" : " msg_5Oc2nmN7boHKfYuJaOnxkYrQ " , // the id of the first message - request user
"last_id" : " msg_ZHWVk1gJT292L4YJzlbLjmFq " , // Last message of the thread
"has_more" : false
}
Las herramientas de interpretación de código convierten en código Python. En este caso de uso, si desea verificar la solución del problema del asistente de matemáticas con una biblioteca dedicada como sympy o numpy
Esta información se extrae de la biblioteca openAi en la biblioteca python python openai
code_interpreter
, retrieval
o function
.