Creación de una aplicación de chat básica en Python mediante el SDK de Azure AI Foundry
Importante
Los elementos marcados (versión preliminar) en este artículo se encuentran actualmente en versión preliminar pública. Esta versión preliminar se ofrece sin acuerdo de nivel de servicio y no se recomienda para las cargas de trabajo de producción. Es posible que algunas características no sean compatibles o que tengan sus funcionalidades limitadas. Para más información, consulte Términos de uso complementarios de las Versiones Preliminares de Microsoft Azure.
En este inicio rápido, le guiaremos a través de la configuración de su entorno de desarrollo local con el SDK de Azure AI Foundry. Escribimos un aviso, lo ejecutamos como parte del código de su aplicación, rastreamos las llamadas LLM que se realizan y ejecutamos una evaluación básica de los resultados del LLM.
Requisitos previos
- Para poder seguir este inicio rápido, antes debe completar el inicio rápido del área de juegos de AI Foundry para implementar un modelo gpt-4o-mini en un proyecto.
Instale la CLI de Azure e inicie sesión.
Instale la CLI de Azure e inicie sesión desde el entorno de desarrollo local, de modo que pueda usar las credenciales de usuario para llamar al servicio Azure OpenAI.
En la mayoría de los casos, puede instalar la CLI de Azure desde el terminal mediante el siguiente comando:
Puede seguir las instrucciones Cómo instalar la CLI de Azure si estos comandos no funcionan para su sistema operativo o configuración concretos.
Después de instalar la CLI de Azure, inicie sesión con el comando az login
e inicie sesión con el explorador:
az login
Como alternativa, puede iniciar sesión manualmente a través del explorador con un código de dispositivo.
az login --use-device-code
Creación de un entorno de Python
En primer lugar, debe crear un nuevo entorno de Python y usarlo para instalar el paquete que necesita para este tutorial. NO instale paquetes en la instalación global de Python. Siempre debe usar un entorno virtual o conda al instalar paquetes de Python; de lo contrario, puede interrumpir la instalación global de Python.
Si es necesario, instale Python.
Se recomienda usar Python 3.10 o posterior, pero se requiere al menos Python 3.8. Si no tiene instalada una versión adecuada de Python, puede seguir las instrucciones del Tutorial de Python de VS Code para la manera más fácil de instalar Python en el sistema operativo.
Creación de un entorno virtual
Si ya tiene Instalado Python 3.10 o superior, puede crear un entorno virtual con los siguientes comandos:
La activación del entorno de Python significa que, al ejecutar python
o pip
desde la línea de comandos, se usa el intérprete de Python incluido en la carpeta .venv
de la aplicación.
Nota:
Puede usar el comando deactivate
para salir del entorno virtual de Python y, posteriormente, volver a activarlo cuando sea necesario.
Instalar paquetes
Instale azure-ai-projects
(versión preliminar), azure-ai-inference
(versión preliminar) y paquetes de azure-identity:
pip install azure-ai-projects azure-ai-inference azure-identity
Compilación de la aplicación de chat
Cree un archivo denominado chat.py. Copie y pegue el siguiente código en él.
from azure.ai.projects import AIProjectClient
from azure.identity import DefaultAzureCredential
project_connection_string = "<your-connection-string-goes-here>"
project = AIProjectClient.from_connection_string(
conn_str=project_connection_string, credential=DefaultAzureCredential()
)
chat = project.inference.get_chat_completions_client()
response = chat.complete(
model="gpt-4o-mini",
messages=[
{
"role": "system",
"content": "You are an AI assistant that speaks like a techno punk rocker from 2350. Be cool but not too cool. Ya dig?",
},
{"role": "user", "content": "Hey, can you help me with my taxes? I'm a freelancer."},
],
)
print(response.choices[0].message.content)
Inserción de la cadena de conexión
Su cadena de conexión del proyecto es necesaria para llamar a Azure OpenAI Service desde el código.
Busque la cadena de conexión en el proyecto de Azure AI Foundry que creó en el inicio rápido del área de juegos de AI Foundry. Abra el proyecto y busque la cadena de conexión en la página Información general.
Copie la cadena de conexión y reemplace <your-connection-string-goes-here>
en el archivo chat.py.
Ejecución del script de chat
Ejecute el script para ver la respuesta del modelo.
python chat.py
Generación de indicaciones a partir de la entrada del usuario y una plantilla de indicación
El script usa mensajes de entrada y salida codificados de forma rígida. En una aplicación real, tomaría la entrada de una aplicación cliente, generaría un mensaje del sistema con instrucciones internas para el modelo y, a continuación, llamaría al LLM con todos los mensajes.
Vamos a cambiar el script para que tome la entrada de una aplicación cliente y genere un mensaje del sistema mediante una plantilla de indicación.
Quite la última línea del script que imprime una respuesta.
Ahora, defina una función
get_chat_response
que tome mensajes y contexto, genere un mensaje del sistema mediante una plantilla de indicación y llame a un modelo. Agregue este código al archivo chat.py existente:from azure.ai.inference.prompts import PromptTemplate def get_chat_response(messages, context): # create a prompt template from an inline string (using mustache syntax) prompt_template = PromptTemplate.from_string( prompt_template=""" system: You are an AI assistant that speaks like a techno punk rocker from 2350. Be cool but not too cool. Ya dig? Refer to the user by their first name, try to work their last name into a pun. The user's first name is {{first_name}} and their last name is {{last_name}}. """ ) # generate system message from the template, passing in the context as variables system_message = prompt_template.create_messages(data=context) # add the prompt messages to the user messages response = chat.complete( model="gpt-4o-mini", messages=system_message + messages, temperature=1, frequency_penalty=0.5, presence_penalty=0.5, ) return response
Nota:
La plantilla de indicación usa el formato Mustache.
La función get_chat_response podría agregarse fácilmente como una ruta a una aplicación FastAPI o Flask para habilitar la llamada a esta función desde una aplicación web front-end.
Ahora simula el paso de información de una aplicación de front-end a esta función. Agregue el código siguiente al final del archivo chat.py. No dude en jugar con el mensaje y agregar su propio nombre.
if __name__ == "__main__": response = get_chat_response( messages=[{"role": "user", "content": "what city has the best food in the world?"}], context={"first_name": "Jessie", "last_name": "Irwin"}, ) print(response.choices[0].message.content)
Ejecute el script revisado para ver la respuesta del modelo con esta nueva entrada.
python chat.py