Compartir vía


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

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:

winget install -e --id Microsoft.AzureCLI

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:

py -3 -m venv .venv
.venv\scripts\activate

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.

Recorte de pantalla que muestra la página de información general de un proyecto y la ubicación de la cadena de conexión.

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.

  1. Quite la última línea del script que imprime una respuesta.

  2. 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.

  3. 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

Paso siguiente