Uso del punto de conexión de inferencia del modelo de Azure AI
El servicio de inferencia de Azure AI en los servicios de Azure AI permite a los clientes consumir los modelos más eficaces de los proveedores de modelos insignia mediante un único punto de conexión y credenciales. Esto significa que puede cambiar entre modelos y consumirlos desde la aplicación sin cambiar una sola línea de código.
En el artículo se explica cómo se organizan los modelos dentro del servicio y cómo usar el punto de conexión de inferencia para invocarlos.
Implementaciones
El servicio de inferencia de modelos de Azure AI hace que los modelos estén disponibles mediante el concepto de implementación. Las implementaciones son una manera de asignar un nombre a un modelo en determinadas configuraciones. A continuación, puede invocar dicha configuración de modelo indicando su nombre en las solicitudes.
Captura de implementaciones:
- Un nombre de modelo
- Una versión de modelo
- Un tipo de aprovisionamiento o capacidad1
- Una configuración de filtrado de contenido1
- Una configuración de limitación de frecuencia1
1 Las configuraciones puede variar en función del modelo seleccionado.
Un recurso de servicios de Azure AI puede tener tantas implementaciones de modelos como sea necesario y no se incurrirá en costos a menos que se realice la inferencia para esos modelos. Las implementaciones son recursos de Azure y, por tanto, están sujetas a directivas de Azure.
Para obtener más información sobre cómo crear implementaciones, consulte Agregar y configurar implementaciones de modelos.
Punto de conexión de inferencia de Azure AI
El punto de conexión de inferencia de Azure AI permite a los clientes usar un único punto de conexión con la misma autenticación y esquema para generar inferencia para los modelos implementados en el recurso. Este punto de conexión sigue la API de inferencia del modelo de Azure AI que es compatible con todos los modelos del servicio de inferencia de modelos de Azure AI.
Puede ver la dirección URL del punto de conexión y las credenciales en la sección Información general. Normalmente, el punto de conexión tiene el formato https://<resource-name>.services.ai.azure.com/models
:
Puede conectarse al punto de conexión mediante el SDK de inferencia de Azure AI:
Instale el paquete azure-ai-inference
mediante el administrador de paquetes, como pip:
pip install azure-ai-inference>=1.0.0b5
Advertencia
El recurso de Servicios de Azure AI necesita la versión azure-ai-inference>=1.0.0b5
para Python.
A continuación, puede usar el paquete para consumir el modelo. En el ejemplo siguiente se muestra cómo crear un cliente para consumir finalizaciones de chat:
import os
from azure.ai.inference import ChatCompletionsClient
from azure.core.credentials import AzureKeyCredential
client = ChatCompletionsClient(
endpoint=os.environ["AZUREAI_ENDPOINT_URL"],
credential=AzureKeyCredential(os.environ["AZUREAI_ENDPOINT_KEY"]),
)
Explore nuestros ejemplos y lea la documentación de referencia de API para empezar a trabajar.
Consulte Idiomas y SDK admitidos para obtener más ejemplos de código y recursos.
Enrutamiento
El punto de conexión de inferencia enruta las solicitudes a una implementación determinada mediante la coincidencia del parámetro name
dentro de la solicitud con el nombre de la implementación. Esto significa que las implementaciones funcionan como un alias de un modelo determinado en determinadas configuraciones. Esta flexibilidad le permite implementar un modelo determinado varias veces en el servicio, pero en configuraciones diferentes si es necesario.
Por ejemplo, si crea una implementación denominada Mistral-large
, esta implementación se puede invocar como:
from azure.ai.inference.models import SystemMessage, UserMessage
response = client.complete(
messages=[
SystemMessage(content="You are a helpful assistant."),
UserMessage(content="Explain Riemann's conjecture in 1 paragraph"),
],
model="mistral-large"
)
print(response.choices[0].message.content)
Sugerencia
El enrutamiento de implementación no distingue mayúsculas de minúsculas.
Lenguajes y SDK admitidos
Todos los modelos implementados en el servicio de inferencia de modelos de Azure AI admiten la API de inferencia de modelos de Azure AI y su familia asociada de SDK, que están disponibles en los siguientes lenguajes:
Lenguaje | Documentación | Paquete | Ejemplos |
---|---|---|---|
C# | Referencia | azure-ai-inference (NuGet) | Ejemplos de C# |
Java | Referencia | azure-ai-inference (Maven) | Ejemplos de Java |
JavaScript | Referencia | @azure/ai-inference (npm) | Ejemplos de JavaScript |
Python | Referencia | azure-ai-inference (PyPi) | Ejemplos de Python |
Punto de conexión de inferencia de Azure OpenAI
Los modelos de Azure OpenAI también admiten la API de Azure OpenAI. Esta API expone las funcionalidades completas de los modelos de OpenAI y admite características adicionales, como asistentes, subprocesos, archivos e inferencia por lotes.
Cada implementación de modelo de OpenAI tiene su propia dirección URL asociada a dicha implementación en el punto de conexión de inferencia de Azure OpenAI. Sin embargo, se puede usar el mismo mecanismo de autenticación para consumirlo. Las direcciones URL suelen tener el formato https://<resource-name>.openai.azure.com/openai/deployments/<model-deployment-name>
. Obtenga más información en la página de referencia de la API de Azure OpenAI
Cada implementación tiene una dirección URL que es la concatenación de la dirección URL base de Azure OpenAI y la ruta /deployments/<model-deployment-name>
.
Importante
No hay ningún mecanismo de enrutamiento para el punto de conexión de Azure OpenAI, ya que cada dirección URL es exclusiva para cada implementación de modelo.
Lenguajes y SDK admitidos
El punto de conexión de Azure OpenAI es compatible con el SDK de OpenAI (claseAzureOpenAI
) y el SDK de Azure OpenAI, que están disponibles en varios idiomas:
Lenguaje | Código fuente | Paquete | Ejemplos |
---|---|---|---|
C# | Código fuente | Azure.AI.OpenAI (NuGet) | Ejemplos de C# |
Go | Código fuente | azopenai (Go) | Ejemplos de Go |
Java | Código fuente | azure-ai-openai (Maven) | Ejemplos de Java |
JavaScript | Código fuente | @azure/openai (npm) | Ejemplos de JavaScript |
Python | Código fuente | openai (PyPi) | Ejemplos de Python |