Azure OpenAI
Cómo configurar Azure OpenAI en LibreChat a través del archivo `librechat.yaml`, cubriendo implementaciones, grupos de modelos, múltiples regiones y configuraciones relacionadas.
Integración de Azure OpenAI para LibreChat
LibreChat admite los servicios de la API de Azure OpenAI como un endpoint de primera clase. Para usar Azure OpenAI dentro de LibreChat, configure el archivo librechat.yaml para su instalación. Este documento cubre el proceso de configuración para utilizar múltiples despliegues y modelos.
Ejemplo
Un ejemplo de configuración que incluye muchas de las opciones y características descritas a continuación:
endpoints:
azureOpenAI:
# Endpoint-level configuration
titleModel: "llama-70b-chat"
plugins: true
assistants: true
groups:
# Group-level configuration
- group: "my-resource-westus"
apiKey: "${WESTUS_API_KEY}"
instanceName: "my-resource-westus"
version: "2024-03-01-preview"
# Model-level configuration
models:
gpt-4-vision-preview:
deploymentName: gpt-4-vision-preview
version: "2024-03-01-preview"
gpt-3.5-turbo:
deploymentName: gpt-35-turbo
gpt-4-1106-preview:
deploymentName: gpt-4-1106-preview
# Group-level configuration
- group: "mistral-inference"
apiKey: "${AZURE_MISTRAL_API_KEY}"
baseURL: "https://Mistral-large-vnpet-serverless.region.inference.ai.azure.com/v1/chat/completions"
serverless: true
# Model-level configuration
models:
mistral-large: true
# Group-level configuration
- group: "my-resource-sweden"
apiKey: "${SWEDEN_API_KEY}"
instanceName: "my-resource-sweden"
deploymentName: gpt-4-1106-preview
version: "2024-03-01-preview"
assistants: true
# Model-level configuration
models:
gpt-4-turbo: trueEste ejemplo sigue la Documentación de configuración del endpoint de Azure OpenAI.
Cada nivel de configuración se detalla en su sección respectiva:
Configuración
-
Abrir
librechat.yamlpara editar: Utilice su editor de texto o IDE preferido para abrir y editar el archivolibrechat.yaml.- Opcional: utilice una ruta de archivo remota o personalizada con la siguiente variable de entorno:
CONFIG_PATH="/alternative/path/to/librechat.yaml" -
Configurar los ajustes de Azure OpenAI: Siga la estructura descrita a continuación para completar sus ajustes de Azure OpenAI, incluyendo claves de API, nombres de instancia, grupos de modelos y otras configuraciones.
-
Eliminar configuraciones heredadas: Si está utilizando alguna de las configuraciones heredadas, elimínelas. El servidor de LibreChat también las detectará y se lo recordará.
-
Guarda tus cambios: Guarda el archivo
librechat.yaml. -
Reiniciar LibreChat: Reinicie su aplicación LibreChat para que se cargue la configuración actualizada.
Campos obligatorios
Para integrar Azure OpenAI con LibreChat, se deben configurar campos específicos en su archivo librechat.yaml. Estos campos se validan mediante una combinación de variables personalizadas y de entorno. A continuación, se detallan los requisitos.
Configuración a nivel de endpoint
Configuración global de Azure:
Configuración de Título y Conversación:
| Key | Type | Description | Example |
|---|---|---|---|
| titleModel | string | Especifica el modelo a utilizar para generar los títulos de las conversaciones. Si no se proporciona, el modelo predeterminado se establece como `gpt-3.5-turbo`, lo que resultará en la ausencia de títulos si no se dispone de este modelo. También puede configurarlo para utilizar dinámicamente el modelo actual estableciéndolo en `current_model`. | titleModel: |
| plugins | boolean | Habilita el uso de plugins a través de Azure. Establézcalo en `true` para activar el soporte del endpoint Plugins a través de su configuración de Azure. Predeterminado: `false`. | plugins:false |
| assistants | boolean | Habilita el uso de asistentes a través de Azure. Establézcalo en `true` para activar el endpoint de Assistants mediante su configuración de Azure. Predeterminado: `false`. Nota: esto requiere una región compatible con assistants. | assistants:false |
| summarize | boolean | Habilita el resumen de conversaciones para todos los modelos de Azure. Establézcalo en `true` para activar el resumen. Predeterminado: `false`. | summarize:false |
| summaryModel | string | Especifica el modelo a utilizar para generar resúmenes de conversaciones. Si no se proporciona, el comportamiento predeterminado es utilizar el primer modelo en la matriz `default` del primer grupo. | summaryModel: |
| titleConvo | boolean | Habilita la generación de títulos de conversación para todos los modelos de Azure. Establézcalo en `true` para activar la generación de títulos. Predeterminado: `false`. | titleConvo:false |
| titleMethod | string | Controla el método utilizado para generar títulos de conversación. Valores válidos: "completion" (predeterminado), "structured", "functions" (alias heredado para "structured"). | titleMethod:completion |
| titlePrompt | string | Prompt personalizado para la generación de títulos. Debe incluir el marcador de posición {convo} para el contenido de la conversación. | See documentation for default prompt |
| titlePromptTemplate | string | Plantilla para dar formato al contenido de la conversación. Debe incluir los marcadores de posición {input} y {output}. Predeterminado: "User: {input}\nAI: {output}" | titlePromptTemplate: |
| titleEndpoint | string | Endpoint alternativo a utilizar para la generación de títulos. Valores aceptados: openAI, azureOpenAI, google, anthropic, bedrock, o nombres de endpoint personalizados. | titleEndpoint: |
Configuración de grupo:
| Key | Type | Description | Example |
|---|---|---|---|
| groups | array | Especifica la lista de grupos de modelos de Azure OpenAI. Cada grupo representa un conjunto de modelos con configuraciones compartidas. El campo groups es una matriz de objetos, donde cada objeto define los ajustes para un grupo específico. Este es un campo obligatorio a nivel de endpoint, y se debe definir al menos un grupo. Las configuraciones a nivel de grupo se detallan en la sección Group-Level Configuration. | # groups:[] |
Orden personalizada (Opcional):
| Key | Type | Description | Example |
|---|---|---|---|
| customOrder | number | Le permite especificar un orden personalizado para el endpoint Azure en la interfaz de usuario. Los números más altos aparecerán más abajo en la lista. Si no se proporciona, el orden predeterminado está determinado por el orden en el que los endpoints están definidos en el archivo `librechat.yaml`. | customOrder: |
La opción customOrder está comentada, ya que es opcional.
Ejemplo de estos ajustes a nivel de endpoint en su archivo librechat.yaml:
endpoints:
azureOpenAI:
titleModel: "gpt-3.5-turbo-1106"
plugins: true
assistants: true
summarize: true
summaryModel: "gpt-3.5-turbo-1106"
titleConvo: true
titleMethod: "functions"
groups:
# ... (group-level and model-level configurations)Configuración a nivel de grupo
Los campos configurables en el archivo de Custom Config (librechat.yaml). Para obtener más información sobre cada campo, consulta la sección de Azure OpenAI en la documentación de Custom Config.
Configuración a nivel de grupo: Identificación de grupo:
| Key | Type | Description | Example |
|---|---|---|---|
| group | string | Nombre de identificador único para un grupo de modelos. Los nombres de grupo duplicados no están permitidos y resultarán en errores de validación. | group: default |
Autenticación:
| Key | Type | Description | Example |
|---|---|---|---|
| apiKey | string | Debe ser una clave API válida para los servicios de Azure OpenAI. Puede ser una cadena de clave directa o una referencia a una variable de entorno (p. ej., ${WESTUS_API_KEY}). | apiKey: ${AZURE_API_KEY} |
Instancia de Azure OpenAI:
| Key | Type | Description | Example |
|---|---|---|---|
| instanceName | string | Nombre de la instancia de Azure OpenAI. Este campo también admite referencias a variables de entorno. **Admite ambos formatos de dominio**: `.openai.azure.com` (heredado) y `.cognitiveservices.azure.com` (nuevo). Puede especificar el dominio completo (p. ej., `my-instance.cognitiveservices.azure.com`) o solo el nombre de la instancia (p. ej., `my-instance`) para la compatibilidad con versiones anteriores con el formato heredado `.openai.azure.com`. | instanceName: ${AZURE_OPENAI_INSTANCE} |
Configuración de despliegue:
| Key | Type | Description | Example |
|---|---|---|---|
| deploymentName | string | El nombre de despliegue a nivel de grupo es opcional, pero obligatorio si algún modelo dentro del grupo está configurado como true. | deploymentName: my-deployment |
| version | string | La versión de la API de Azure OpenAI a nivel de grupo es opcional, pero obligatoria si algún modelo dentro del grupo está configurado como true. | version: 2023-03-15-preview |
Configuración avanzada:
| Key | Type | Description | Example |
|---|---|---|---|
| baseURL | string | URL base personalizada para las solicitudes de la API de Azure OpenAI. Se admiten referencias a variables de entorno. Esto es opcional y puede utilizarse para escenarios de enrutamiento avanzados. | baseURL: https://my-custom-base-url.com |
| additionalHeaders | object | Especifica cualquier encabezado adicional para las solicitudes de la API de Azure OpenAI como pares clave-valor. Se pueden incluir referencias a variables de entorno como valores. | additionalHeaders: {Authorization: ${AUTH_HEADER}} |
| serverless | boolean | Especifica si el grupo es un endpoint de chat completions de inferencia serverless de Azure Model Catalog, para el cual solo se necesitan un identificador de modelo, baseURL y apiKey. Para más información, consulta serverless inference endpoints. | serverless: true |
| addParams | object | Agrega o sobrescribe parámetros adicionales para las solicitudes de la API de Azure OpenAI. Útil para especificar opciones específicas de la API como pares clave-valor. | addParams: {temperature: 0.7} |
| dropParams | array | Permite la exclusión de ciertos parámetros predeterminados de las solicitudes a la API de Azure OpenAI. Útil para APIs que no aceptan o reconocen parámetros específicos. Esto debe especificarse como una lista de cadenas. | dropParams: [top_p, stop] |
Configuración del modelo:
| Key | Type | Description | Example |
|---|---|---|---|
| models | object | Especifica el mapeo de los identificadores de modelo a sus configuraciones dentro del grupo. Las claves representan los identificadores de modelo, los cuales deben coincidir con los nombres de modelo de OpenAI correspondientes. Los valores pueden ser booleanos (true) u objetos que contienen configuraciones específicas del modelo. Si un modelo se establece en true, hereda el deploymentName y la version del nivel de grupo. Si un modelo se configura como un objeto, puede tener su propio deploymentName y version. Este campo es obligatorio y se debe definir al menos un modelo dentro de cada grupo. Más información aquí | models: {gpt-3.5-turbo: true, text-davinci-003: {}} |
Ejemplo de una configuración a nivel de grupo en el archivo librechat.yaml:
endpoints:
azureOpenAI:
# ... (endpoint-level configurations)
groups:
- group: "my-resource-group"
apiKey: "${AZURE_API_KEY}"
instanceName: "my-instance"
deploymentName: "gpt-35-turbo"
version: "2023-03-15-preview"
baseURL: "https://my-instance.openai.azure.com/"
additionalHeaders:
CustomHeader: "HeaderValue"
addParams:
max_tokens: 2048
temperature: 0.7
dropParams:
- "frequency_penalty"
- "presence_penalty"
models:
# ... (model-level configurations)Configuración a nivel de modelo
Dentro de cada grupo, el campo models contiene un mapeo de los identificadores de modelo a sus configuraciones:
Identificación del modelo:
| Key | Type | Description | Example |
|---|---|---|---|
| Model Identifier | string | Debe coincidir con el nombre del modelo de OpenAI correspondiente. Puede ser una coincidencia parcial. | gpt-3.5-turbo: true |
Configuración del modelo:
| Key | Type | Description | Example |
|---|---|---|---|
| Model Configuration | boolean/object | Booleano true: Utiliza el deploymentName y la versión a nivel de grupo. Objeto: Especifica el deploymentName y la versión específicos del modelo. Si no se proporciona, hereda del grupo. | text-davinci-003: {deploymentName: my-model-deployment, version: 2023-03-15-preview} |
| deploymentName | string | El nombre de despliegue para este modelo específico. | deploymentName: my-model-deployment |
| version | string | La versión de la API de Azure OpenAI para este modelo específico. | version: 2023-03-15-preview |
Endpoints de inferencia Serverless:
| Key | Type | Description | Example |
|---|---|---|---|
| Serverless Inference Endpoints | note | Para modelos serverless, establece el modelo en true. | gpt-4: true |
- El identificador del modelo debe coincidir con su nombre de modelo de OpenAI correspondiente para que pueda reflejar correctamente sus límites de contexto conocidos y/o funcionar en el caso de visión. Por ejemplo, si tiene la intención de usar gpt-4-vision, debe configurarse de la siguiente manera:
endpoints:
azureOpenAI:
# ... (endpoint-level configurations)
groups:
# ... (group-level configurations)
- group: "example_group"
models:
# Model identifiers must match OpenAI Model name (can be a partial match)
gpt-4-vision-preview:
# Object setting: must include at least "deploymentName" and/or "version"
deploymentName: "arbitrary-deployment-name"
version: "2024-02-15-preview" # version can be any that supports vision
# Boolean setting, must be "true"
gpt-4-turbo: true-
Consulta Model Deployments para ver más ejemplos.
-
Si un modelo se establece en
true, implica el uso dedeploymentNameyversiona nivel de grupo para este modelo. Ambos deben estar definidos a nivel de grupo en este caso. -
Si un modelo está configurado como un objeto, puede especificar su propio
deploymentNameyversion. Si estos no se proporcionan, el modelo hereda eldeploymentNamey laversiondel grupo. -
Si el grupo representa un serverless inference endpoint, el modelo singular debe establecerse en
truepara añadirlo a la lista de modelos.
Consideraciones especiales
-
Nombres únicos: Tanto los nombres de los modelos como los de los grupos deben ser únicos en toda la configuración. Los nombres duplicados provocan errores de validación.
-
Campos obligatorios faltantes: La falta del campo obligatorio
deploymentNameoversion, ya sea a nivel de grupo (para modelos marcados con indicadores booleanos) o dentro de las configuraciones de los modelos (si no se heredan o especifican explícitamente), resultará en errores de validación, a menos que el grupo represente un serverless inference endpoint. -
Referencias a variables de entorno: La configuración admite referencias a variables de entorno (p. ej.,
${VARIABLE_NAME}). Asegúrese de que todas las variables referenciadas estén presentes en su entorno para evitar errores en tiempo de ejecución. La ausencia de variables de entorno definidas que se referencien en la configuración provocará errores.${INSTANCE_NAME}y${DEPLOYMENT_NAME}son marcadores de posición únicos y no corresponden a variables de entorno, sino que corresponden al nombre de la instancia y al nombre del despliegue del modelo seleccionado actualmente. No se recomienda utilizarINSTANCE_NAMEyDEPLOYMENT_NAMEcomo nombres de variables de entorno para evitar posibles conflictos. -
Manejo de errores: Cualquier problema en la configuración, como nombres duplicados, variables de entorno no definidas o campos obligatorios faltantes, invalidará la configuración y generará mensajes de error descriptivos con el objetivo de lograr una resolución rápida. No se le permitirá ejecutar el servidor con una configuración no válida.
-
Identificadores de modelo: Se puede utilizar un modelo desconocido (para el proyecto) como identificador de modelo, pero debe coincidir con un modelo conocido para reflejar su longitud de contexto conocida, lo cual es crucial para el manejo de mensajes/tokens; por ejemplo,
gpt-7000será válido pero utilizará por defecto un límite de 4k tokens, mientras quegpt-4-turboserá reconocido como poseedor de un límite de contexto de 128k.
Valide su configuración con las definiciones de esquema y directrices más recientes para mantener la compatibilidad.
Despliegues de modelos
La lista de modelos disponibles para sus usuarios está determinada por las agrupaciones de modelos especificadas en la configuración de su endpoint azureOpenAI.
Por ejemplo:
# Example Azure OpenAI Object Structure
endpoints:
azureOpenAI:
groups:
- group: "my-westus" # arbitrary name
apiKey: "${WESTUS_API_KEY}"
instanceName: "actual-instance-name" # name of the resource group or instance
version: "2023-12-01-preview"
models:
gpt-4-vision-preview:
deploymentName: gpt-4-vision-preview
version: "2024-02-15-preview"
gpt-3.5-turbo: true
- group: "my-eastus"
apiKey: "${EASTUS_API_KEY}"
instanceName: "actual-eastus-instance-name"
deploymentName: gpt-4-turbo
version: "2024-02-15-preview"
models:
gpt-4-turbo: trueLa configuración anterior habilitaría gpt-4-vision-preview, gpt-3.5-turbo y gpt-4-turbo para sus usuarios en el orden en que fueron definidos.
Uso de Assistants con Azure
Para habilitar el uso de Assistants con Azure OpenAI, hay 2 pasos principales.
- Establezca el campo
assistants, bajo el endpointazureOpenAI, es decir, en el Endpoint-level atrue, de la siguiente manera:
endpoints:
azureOpenAI:
# Enable use of Assistants with Azure
assistants: true- Agregue el campo
assistantsa los grupos compatibles con la integración de la Assistants API de Azure.
- Al menos una de tus configuraciones de grupo debe ser compatible.
- Puedes consultar las regiones y modelos compatibles en la documentación de Azure aquí.
- La versión también debe ser "2024-02-15-preview" o posterior, preferiblemente posterior para acceder a las funciones más recientes.
endpoints:
azureOpenAI:
assistants: true
groups:
- group: "my-sweden-group"
apiKey: "${SWEDEN_API_KEY}"
instanceName: "actual-instance-name"
# Mark this group as assistants compatible
assistants: true
# version must be "2024-02-15-preview" or later
version: "2024-03-01-preview"
models:
# ... (model-level configuration)Notas:
-
Para las credenciales, confíe en las variables de entorno personalizadas especificadas en cada configuración de grupo compatible con assistants.
-
Si marcas varias regiones como compatibles con assistants, los assistants que crees se agregarán a través de las regiones a la lista principal de selección de assistants.
-
Los archivos que subas a Azure OpenAI, ya sea a nivel de mensaje o de asistente, solo estarán disponibles en la región a la que pertenece el modelo del asistente actual.
- Por esta razón, se recomienda utilizar solo una región o grupo de recursos para Azure OpenAI Assistants, o experimentará un error.
- La carga a "OpenAI" es el comportamiento predeterminado para las capacidades oficiales de
code_interpreteryretrieval.
-
Pronto será posible descargar los archivos que generan los assistants.
-
A partir del 19 de mayo de 2024, la recuperación (retrieval) y el streaming aún no son compatibles a través de Azure OpenAI.
- Para evitar cualquier error con la recuperación mientras no sea compatible, se recomienda deshabilitar la capacidad por completo a través de la configuración del endpoint
azureAssistants:
endpoints: azureOpenAI: # ...rest azureAssistants: # "retrieval" omitted. capabilities: ["code_interpreter", "actions", "tools"]- De forma predeterminada, todas las capacidades, excepto retrieval, están habilitadas.
- Para evitar cualquier error con la recuperación mientras no sea compatible, se recomienda deshabilitar la capacidad por completo a través de la configuración del endpoint
Uso de Plugins con Azure
Para usar el endpoint Plugins con Azure OpenAI, necesitas un despliegue que sea compatible con function calling. De lo contrario, desactiva "Functions" en la configuración del Agente. Cuando no estés usando el modo "functions", se recomienda también desactivar "skip completion", el cual es un paso de revisión de lo que el agente generó.
Para usar Azure con el endpoint Plugins, asegúrate de que el campo plugins esté configurado como true en tu configuración del endpoint de Azure OpenAI:
# Example Azure OpenAI Object Structure
endpoints:
azureOpenAI:
plugins: true # <------- Set this
groups:
# omitted for brevityConfigurar el campo plugins configurará los Plugins para usar modelos de Azure.
NOTA: La configuración actual a través de librechat.yaml utiliza el modelo principal que seleccionas desde la interfaz para el uso de Plugins, lo cual no es usualmente cómo funciona sin Azure, donde en su lugar se utiliza el modelo "Agent". La configuración del modelo Agent puede ignorarse al utilizar Plugins a través de Azure.
Uso de una URL base especificada con Azure
La URL base para las solicitudes de la API de Azure OpenAI se puede configurar de forma dinámica. Esto es útil para servicios de proxy como Cloudflare AI Gateway, o si desea anular explícitamente el manejo de la baseURL de la aplicación.
LibreChat utilizará el campo baseURL para su agrupación de modelos de Azure, el cual puede incluir marcadores de posición para la instancia de la API de Azure OpenAI y los nombres de despliegue.
Soporte para el formato de dominio del endpoint de Azure
Azure OpenAI ahora admite ambos formatos de dominio de endpoint:
- Nuevo formato:
.cognitiveservices.azure.com - Formato heredado:
.openai.azure.com
Al usar instanceName sin un dominio completo, se aplica por defecto el formato heredado .openai.azure.com. Si proporciona un dominio completo (por ejemplo, my-instance.cognitiveservices.azure.com), se utilizará tal cual. Esto se aplica tanto a los campos instanceName como a las configuraciones de baseURL.
En la configuración, la base URL se puede personalizar de la siguiente manera:
# librechat.yaml file, under an Azure group:
endpoints:
azureOpenAI:
groups:
- group: "group-with-custom-base-url"
baseURL: "https://example.azure-api.net/${INSTANCE_NAME}/${DEPLOYMENT_NAME}"
# Legacy format (.openai.azure.com)
baseURL: "https://${INSTANCE_NAME}.openai.azure.com/openai/deployments/${DEPLOYMENT_NAME}"
# New format (.cognitiveservices.azure.com)
baseURL: "https://${INSTANCE_NAME}.cognitiveservices.azure.com/openai/deployments/${DEPLOYMENT_NAME}"
# Cloudflare example
baseURL: "https://gateway.ai.cloudflare.com/v1/ACCOUNT_TAG/GATEWAY/azure-openai/${INSTANCE_NAME}/${DEPLOYMENT_NAME}"NOTA: ${INSTANCE_NAME} y ${DEPLOYMENT_NAME} son marcadores de posición únicos y no corresponden a variables de entorno, sino que corresponden al nombre de la instancia y al nombre del despliegue del modelo seleccionado actualmente. No se recomienda utilizar INSTANCE_NAME y DEPLOYMENT_NAME como nombres de variables de entorno para evitar posibles conflictos.
También puede omitir los marcadores de posición por completo y simplemente construir la baseURL con sus credenciales:
baseURL: "https://gateway.ai.cloudflare.com/v1/ACCOUNT_TAG/GATEWAY/azure-openai/my-secret-instance/my-deployment"Por último, puede especificar el baseURL completo a través de una variable de entorno personalizada
baseURL: "${MY_CUSTOM_BASEURL}"Habilitar títulos generados automáticamente con Azure
Para habilitar la creación de títulos para Azure, establezca titleConvo en true.
# Example Azure OpenAI Object Structure
endpoints:
azureOpenAI:
titleConvo: true # <------- Set this
groups:
# omitted for brevityTambién puede especificar el modelo a utilizar para los títulos, con titleModel, siempre que lo haya configurado en su(s) grupo(s).
titleModel: "gpt-3.5-turbo"Nota: "gpt-3.5-turbo" es el valor predeterminado, por lo que puede omitirlo si desea utilizar este modelo exacto y lo tiene configurado. Si no está configurado y titleConvo está establecido en true, el proceso de titulación resultará en un error y no se generará ningún título. También puede configurarlo para usar dinámicamente el modelo actual estableciéndolo en current_model.
titleModel: "current_model"Uso de GPT-4 Vision con Azure
Para usar Vision (análisis de imágenes) con Azure OpenAI, asegúrese de que gpt-4-vision-preview sea un modelo especificado en uno de sus grupos.
Esto funciona de la misma manera que con el endpoint de OpenAI: no es necesario seleccionar el modelo de visión, ya que se cambiará automáticamente en segundo plano.
Generar imágenes con Azure OpenAI Service (DALL-E)
| Model ID | Disponibilidad de funciones | Solicitud máxima (caracteres) |
|---|---|---|
| dalle2 | East US | 1000 |
| dalle3 | Sweden Central | 4000 |
- Primero necesitas crear un recurso de Azure que aloje DALL-E
- En el momento de escribir este documento, dall-e-3 está disponible en la región
SwedenCentral, y dall-e-2 en la regiónEastUS.
- En el momento de escribir este documento, dall-e-3 está disponible en la región
- Luego, debes implementar el modelo de generación de imágenes en una de las regiones anteriores.
- Lea la Guía de inicio rápido de generación de imágenes de Azure OpenAI para obtener asistencia adicional.
- Configure sus variables de entorno según las credenciales de Azure:
Las opciones de configuración de DALL-E:
DALL-E:
Claves de API:
| Key | Type | Description | Example |
|---|---|---|---|
| DALLE_API_KEY | string | La clave de API de OpenAI para los servicios de DALL-E 2 y DALL-E 3. | # DALLE_API_KEY= |
Claves de API (específicas de la versión):
| Key | Type | Description | Example |
|---|---|---|---|
| DALLE3_API_KEY | string | La clave de API de OpenAI para DALL-E 3. | # DALLE3_API_KEY= |
| DALLE2_API_KEY | string | La clave de API de OpenAI para DALL-E 2. | # DALLE2_API_KEY= |
System Prompts:
| Key | Type | Description | Example |
|---|---|---|---|
| DALLE3_SYSTEM_PROMPT | string | El system prompt para DALL-E 3. | # DALLE3_SYSTEM_PROMPT="Your DALL-E-3 System Prompt here" |
| DALLE2_SYSTEM_PROMPT | string | El prompt del sistema para DALL-E 2. | # DALLE2_SYSTEM_PROMPT="Your DALL-E-2 System Prompt here" |
Configuración de Proxy Inverso:
| Key | Type | Description | Example |
|---|---|---|---|
| DALLE_REVERSE_PROXY | string | La URL del proxy inverso para las solicitudes de la API de DALL-E. | # DALLE_REVERSE_PROXY= |
URLs base:
| Key | Type | Description | Example |
|---|---|---|---|
| DALLE3_BASEURL | string | La URL base para los endpoints de la API de DALL-E 3. Admite formatos de dominio tanto `.openai.azure.com` (heredado) como `.cognitiveservices.azure.com` (nuevo). | # DALLE3_BASEURL=https://<AZURE_OPENAI_API_INSTANCE_NAME>.openai.azure.com/openai/deployments/<DALLE3_DEPLOYMENT_NAME>/ # OR # DALLE3_BASEURL=https://<AZURE_OPENAI_API_INSTANCE_NAME>.cognitiveservices.azure.com/openai/deployments/<DALLE3_DEPLOYMENT_NAME>/ |
| DALLE2_BASEURL | string | La URL base para los endpoints de la API de DALL-E 2. Admite formatos de dominio tanto `.openai.azure.com` (heredado) como `.cognitiveservices.azure.com` (nuevo). | # DALLE2_BASEURL=https://<AZURE_OPENAI_API_INSTANCE_NAME>.openai.azure.com/openai/deployments/<DALLE2_DEPLOYMENT_NAME>/ # OR # DALLE2_BASEURL=https://<AZURE_OPENAI_API_INSTANCE_NAME>.cognitiveservices.azure.com/openai/deployments/<DALLE2_DEPLOYMENT_NAME>/ |
Integración de Azure OpenAI (Opcional):
| Key | Type | Description | Example |
|---|---|---|---|
| DALLE3_AZURE_API_VERSION | string | La versión de la API para DALL-E 3 con el servicio de Azure OpenAI. | # DALLE3_AZURE_API_VERSION=the-api-version # e.g.: 2023-12-01-preview |
| DALLE2_AZURE_API_VERSION | string | La versión de la API para DALL-E 2 con el servicio Azure OpenAI. | # DALLE2_AZURE_API_VERSION=the-api-version # e.g.: 2023-12-01-preview |
Reemplace el texto de marcador de posición con prompts o instrucciones reales, y proporcione sus claves de API si decide incluirlas directamente en el archivo (se recomienda gestionar las claves confidenciales fuera del código base). Revise y respete las políticas de uso de OpenAI al integrar claves de API en el software.
Nota: si tiene configurado PROXY, también se utilizará para las llamadas a DALL-E, lo cual es universal para la aplicación.
Serverless Inference Endpoints
A través del archivo librechat.yaml, puede configurar los endpoints de inferencia serverless de Azure AI Studio para acceder a modelos desde Azure AI Foundry. Solo se necesitan un identificador de modelo, baseURL y apiKey, junto con el campo serverless para indicar el manejo especial que requieren estos endpoints.
-
Deberás seguir las instrucciones en las tarjetas de modelo compatibles para configurar el acceso a MaaS ("Models as a Service") en Azure AI Studio.
-
Como referencia, aquí hay algunas tarjetas de modelo compatibles conocidas:
-
Mistral-large | Meta-Llama-3.1-8B-Instruct | Phi-3-medium-128k-instruct
-
-
También puedes revisar el blog técnico sobre el lanzamiento del modelo "Mistral-large" para obtener más información.
-
Luego, deberás agregarlos a tu configuración
azureOpenAIen el archivo librechat.yaml. -
Aquí tienes un ejemplo de configuración para
Meta-Llama-3.1-8B-Instruct:
endpoints:
azureOpenAI:
groups:
- group: "serverless-example"
apiKey: "${LLAMA318B_API_KEY}" # arbitrary env var name
baseURL: "https://example.services.ai.azure.com/models/"
version: "2024-05-01-preview" # Optional: specify API version
serverless: true
models:
# Must match the deployment name of the model
Meta-Llama-3.1-8B-Instruct: trueNotas:
- Los modelos de Azure AI Foundry ahora aprovisionan endpoints bajo
/models/chat/completions?api-version=versionpara inferencia sin servidor (serverless).- El campo
baseURLdebe establecerse en la raíz del endpoint, sin nada después de/models/, es decir, la ruta/chat/completions. - Ejemplo:
https://example.services.ai.azure.com/models/parahttps://example.services.ai.azure.com/models/chat/completions?api-version=2024-05-01-preview - El parámetro de consulta
versiones opcional y puede especificarse en el campobaseURL.
- El campo
- El nombre del modelo utilizado en el campo
modelsdebe coincidir con el nombre de despliegue del modelo en Azure AI Foundry. - La compatibilidad con LibreChat depende de la paridad con las especificaciones de la API de OpenAI, las cuales, al momento de redactar este documento, suelen ser implementaciones de "Pago por uso" o "Modelos como servicio" (MaaS) en Azure AI Studio, que son compatibles con el SDK de OpenAI mediante el manejo del endpoint
v1/completionsomodels/chat/completions. - Todos los modelos que ofrecen implementaciones sin servidor ("Serverless APIs") son compatibles desde el catálogo de modelos de Azure. Puedes filtrar por "Serverless API" en las opciones de Deployment y "Chat completion" en las tareas de inferencia para ver la lista completa; sin embargo, los modelos de real time endpoint no han sido probados.
- Estos endpoint/modelos de inferencia serverless pueden o no admitir llamadas a funciones (function calling) de acuerdo con las especificaciones de la API de OpenAI, lo que permite su uso con Agents.
¿Qué te parece esta guía?