Azure OpenAI
Como configurar o Azure OpenAI no LibreChat através do arquivo `librechat.yaml`, abrangendo deployments, grupos de modelos, múltiplas regiões e configurações relacionadas.
Integração do Azure OpenAI para o LibreChat
O LibreChat oferece suporte aos serviços da Azure OpenAI API como um endpoint de primeira classe. Para usar a Azure OpenAI no LibreChat, configure o arquivo librechat.yaml para sua instalação. Este documento aborda o processo de configuração para usar múltiplas implantações e modelos.
Exemplo
Um exemplo de configuração incluindo muitas das opções e recursos descritos abaixo:
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 exemplo segue a Documentação de Configuração de Endpoint do Azure OpenAI.
Cada nível de configuração está detalhado em sua respectiva seção:
Configuração
-
Abra o
librechat.yamlpara edição: Use seu editor de texto ou IDE de preferência para abrir e editar o arquivolibrechat.yaml.- Opcional: use um caminho de arquivo remoto ou personalizado com a seguinte variável de ambiente:
CONFIG_PATH="/alternative/path/to/librechat.yaml" -
Configurar as definições do Azure OpenAI: Siga a estrutura descrita abaixo para preencher as suas definições do Azure OpenAI, incluindo chaves de API, nomes de instâncias, grupos de modelos e outras configurações.
-
Remover Configurações Legadas: Se você estiver usando qualquer uma das configurações legadas, remova-as. O servidor LibreChat também detectará isso e o lembrará.
-
Salve suas alterações: Salve o arquivo
librechat.yaml. -
Reinicie o LibreChat: Reinicie sua aplicação LibreChat para que a configuração atualizada seja carregada.
Campos Obrigatórios
Para integrar o Azure OpenAI ao LibreChat, campos específicos devem ser configurados no seu arquivo librechat.yaml. Esses campos são validados por meio de uma combinação de variáveis personalizadas e de ambiente. Os requisitos detalhados seguem abaixo.
Configuração em Nível de Endpoint
Configurações Globais do Azure:
Configurações de Título e Conversa:
| Key | Type | Description | Example |
|---|---|---|---|
| titleModel | string | Especifica o modelo a ser usado para gerar títulos de conversas. Se não for fornecido, o modelo padrão é definido como `gpt-3.5-turbo`, o que resultará na ausência de títulos caso não possua este modelo. Você também pode configurá-lo para usar dinamicamente o modelo atual definindo-o como `current_model`. | titleModel: |
| plugins | boolean | Habilita o uso de plugins através do Azure. Defina como `true` para ativar o suporte ao endpoint de Plugins através da sua configuração do Azure. Padrão: `false`. | plugins:false |
| assistants | boolean | Habilita o uso de assistants através do Azure. Defina como `true` para ativar o endpoint de Assistants através da sua configuração do Azure. Padrão: `false`. Nota: isso requer uma região compatível com assistants. | assistants:false |
| summarize | boolean | Habilita o resumo de conversas para todos os modelos Azure. Defina como `true` para ativar o resumo. Padrão: `false`. | summarize:false |
| summaryModel | string | Especifica o modelo a ser usado para gerar resumos de conversas. Se não for fornecido, o comportamento padrão é usar o primeiro modelo na matriz `default` do primeiro grupo. | summaryModel: |
| titleConvo | boolean | Habilita a geração de títulos de conversa para todos os modelos Azure. Defina como `true` para ativar a geração de títulos. Padrão: `false`. | titleConvo:false |
| titleMethod | string | Controla o método usado para gerar títulos de conversas. Valores válidos: "completion" (padrão), "structured", "functions" (alias legado para "structured"). | titleMethod:completion |
| titlePrompt | string | Prompt personalizado para a geração de títulos. Deve incluir o placeholder {convo} para o conteúdo da conversa. | See documentation for default prompt |
| titlePromptTemplate | string | Modelo para formatar o conteúdo da conversa. Deve incluir os placeholders {input} e {output}. Padrão: "User: {input}\nAI: {output}" | titlePromptTemplate: |
| titleEndpoint | string | Endpoint alternativo para usar na geração de títulos. Valores aceitos: openAI, azureOpenAI, google, anthropic, bedrock ou nomes de endpoint personalizados. | titleEndpoint: |
Configuração de Grupo:
| Key | Type | Description | Example |
|---|---|---|---|
| groups | array | Especifica a lista de grupos de modelos do Azure OpenAI. Cada grupo representa um conjunto de modelos com configurações compartilhadas. O campo groups é uma matriz de objetos, onde cada objeto define as configurações para um grupo específico. Este é um campo obrigatório no nível do endpoint, e pelo menos um grupo deve ser definido. As configurações no nível do grupo estão detalhadas na seção Group-Level Configuration. | # groups:[] |
Ordem Personalizada (Opcional):
| Key | Type | Description | Example |
|---|---|---|---|
| customOrder | number | Permite especificar uma ordem personalizada para o endpoint Azure na interface do usuário. Números maiores aparecerão mais abaixo na lista. Se não for fornecido, a ordem padrão é determinada pela ordem em que os endpoints são definidos no arquivo `librechat.yaml`. | customOrder: |
A opção customOrder está comentada, pois é opcional.
Exemplo dessas configurações em nível de endpoint no seu arquivo 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)Configuração em Nível de Grupo
Os campos configuráveis no arquivo de Configuração Personalizada (librechat.yaml). Para mais informações sobre cada campo, consulte a seção Azure OpenAI na Documentação de Configuração Personalizada.
Configuração em Nível de Grupo: Identificação de Grupo:
| Key | Type | Description | Example |
|---|---|---|---|
| group | string | Nome de identificador único para um grupo de modelos. Nomes de grupo duplicados não são permitidos e resultarão em erros de validação. | group: default |
Autenticação:
| Key | Type | Description | Example |
|---|---|---|---|
| apiKey | string | Deve ser uma chave de API válida para os serviços do Azure OpenAI. Pode ser uma string de chave direta ou uma referência de variável de ambiente (por exemplo, ${WESTUS_API_KEY}). | apiKey: ${AZURE_API_KEY} |
Instância do Azure OpenAI:
| Key | Type | Description | Example |
|---|---|---|---|
| instanceName | string | Nome da instância do Azure OpenAI. Este campo também pode oferecer suporte a referências de variáveis de ambiente. **Suporta ambos os formatos de domínio**: `.openai.azure.com` (legado) e `.cognitiveservices.azure.com` (novo). Você pode especificar o domínio completo (por exemplo, `my-instance.cognitiveservices.azure.com`) ou apenas o nome da instância (por exemplo, `my-instance`) para compatibilidade com versões anteriores com o formato legado `.openai.azure.com`. | instanceName: ${AZURE_OPENAI_INSTANCE} |
Configuração de Implantação:
| Key | Type | Description | Example |
|---|---|---|---|
| deploymentName | string | O nome da implantação no nível do grupo é opcional, mas obrigatório se qualquer modelo dentro do grupo estiver definido como true. | deploymentName: my-deployment |
| version | string | A versão da API do Azure OpenAI no nível do grupo é opcional, mas necessária se qualquer modelo dentro do grupo estiver definido como true. | version: 2023-03-15-preview |
Configurações Avançadas:
| Key | Type | Description | Example |
|---|---|---|---|
| baseURL | string | URL base personalizada para as solicitações da API do Azure OpenAI. Referências a variáveis de ambiente são suportadas. Isso é opcional e pode ser usado para cenários de roteamento avançados. | baseURL: https://my-custom-base-url.com |
| additionalHeaders | object | Especifica quaisquer cabeçalhos extras para solicitações da API do Azure OpenAI como pares de chave-valor. Referências a variáveis de ambiente podem ser incluídas como valores. | additionalHeaders: {Authorization: ${AUTH_HEADER}} |
| serverless | boolean | Especifica se o grupo é um endpoint de chat completions de inferência serverless do Azure Model Catalog, para o qual apenas um identificador de modelo, baseURL e apiKey são necessários. Para mais informações, consulte serverless inference endpoints. | serverless: true |
| addParams | object | Adiciona ou substitui parâmetros adicionais para solicitações da API do Azure OpenAI. Útil para especificar opções específicas da API como pares de chave-valor. | addParams: {temperature: 0.7} |
| dropParams | array | Permite a exclusão de certos parâmetros padrão das solicitações da API do Azure OpenAI. Útil para APIs que não aceitam ou não reconhecem parâmetros específicos. Isso deve ser especificado como uma lista de strings. | dropParams: [top_p, stop] |
Configuração do Modelo:
| Key | Type | Description | Example |
|---|---|---|---|
| models | object | Especifica o mapeamento de identificadores de modelo para suas configurações dentro do grupo. As chaves representam os identificadores de modelo, que devem corresponder aos nomes de modelo OpenAI correspondentes. Os valores podem ser booleanos (true) ou objetos contendo configurações específicas do modelo. Se um modelo for definido como true, ele herda o deploymentName e a version do nível do grupo. Se um modelo for configurado como um objeto, ele pode ter seu próprio deploymentName e version. Este campo é obrigatório, e pelo menos um modelo deve ser definido dentro de cada grupo. Mais informações aqui | models: {gpt-3.5-turbo: true, text-davinci-003: {}} |
Exemplo de uma configuração em nível de grupo no arquivo 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)Configuração em Nível de Modelo
Dentro de cada grupo, o campo models contém um mapeamento de identificadores de modelo para suas configurações:
Identificação do Modelo:
| Key | Type | Description | Example |
|---|---|---|---|
| Model Identifier | string | Deve corresponder ao nome do modelo OpenAI correspondente. Pode ser uma correspondência parcial. | gpt-3.5-turbo: true |
Configuração do Modelo:
| Key | Type | Description | Example |
|---|---|---|---|
| Model Configuration | boolean/object | Boolean true: Usa o deploymentName e a version do nível do grupo. Object: Especifica o deploymentName e a version específicos do modelo. Se não for fornecido, herda do grupo. | text-davinci-003: {deploymentName: my-model-deployment, version: 2023-03-15-preview} |
| deploymentName | string | O nome da implantação para este modelo específico. | deploymentName: my-model-deployment |
| version | string | A versão da API do Azure OpenAI para este modelo específico. | version: 2023-03-15-preview |
Endpoints de Inferência Serverless:
| Key | Type | Description | Example |
|---|---|---|---|
| Serverless Inference Endpoints | note | Para modelos serverless, defina o model como true. | gpt-4: true |
- O identificador do modelo deve corresponder ao seu nome de modelo OpenAI correspondente para que ele reflita corretamente seus limites de contexto conhecidos e/ou funcione no caso de visão. Por exemplo, se você pretende usar o gpt-4-vision, ele deve ser configurado da seguinte forma:
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-
Veja Model Deployments para mais exemplos.
-
Se um modelo estiver definido como
true, isso implica o uso dodeploymentNamee daversionde nível de grupo para este modelo. Ambos devem ser definidos no nível do grupo neste caso. -
Se um modelo for configurado como um objeto, ele pode especificar seu próprio
deploymentNameeversion. Se estes não forem fornecidos, o modelo herda odeploymentNamee aversiondo grupo. -
Se o grupo representar um serverless inference endpoint, o modelo singular deve ser definido como
truepara adicioná-lo à lista de modelos.
Considerações Especiais
-
Nomes Únicos: Tanto os nomes dos modelos quanto os dos grupos devem ser únicos em toda a configuração. Nomes duplicados levam a falhas de validação.
-
Campos Obrigatórios Ausentes: A falta de
deploymentNameouversionobrigatórios, seja no nível do grupo (para modelos com sinalização booleana) ou dentro das configurações dos modelos (se não estiverem herdando ou especificados explicitamente), resultará em erros de validação, a menos que o grupo represente um serverless inference endpoint. -
Referências de Variáveis de Ambiente: A configuração suporta referências de variáveis de ambiente (por exemplo,
${VARIABLE_NAME}). Certifique-se de que todas as variáveis referenciadas estejam presentes em seu ambiente para evitar erros de tempo de execução. A ausência de variáveis de ambiente definidas que sejam referenciadas na configuração causará erros.${INSTANCE_NAME}e${DEPLOYMENT_NAME}são placeholders únicos e não correspondem a variáveis de ambiente, mas sim ao nome da instância e ao nome da implantação do modelo selecionado atualmente. Não é recomendado que você useINSTANCE_NAMEeDEPLOYMENT_NAMEcomo nomes de variáveis de ambiente para evitar quaisquer conflitos potenciais. -
Tratamento de Erros: Quaisquer problemas na configuração, como nomes duplicados, variáveis de ambiente indefinidas ou campos obrigatórios ausentes, invalidarão a configuração e gerarão mensagens de erro descritivas visando uma resolução rápida. Você não terá permissão para executar o servidor com uma configuração inválida.
-
Identificadores de modelo: Um modelo desconhecido (para o projeto) pode ser usado como um identificador de modelo, mas ele deve corresponder a um modelo conhecido para refletir seu tamanho de contexto conhecido, o que é crucial para o tratamento de mensagens/tokens; por exemplo,
gpt-7000será válido, mas usará um limite padrão de 4k tokens, enquantogpt-4-turboserá reconhecido como tendo um limite de contexto de 128k.
Valide sua configuração em relação às definições de esquema e diretrizes mais recentes para manter a compatibilidade.
Implantações de Modelos
A lista de modelos disponíveis para seus usuários é determinada pelos agrupamentos de modelos especificados na configuração do seu endpoint azureOpenAI.
Por exemplo:
# 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: trueA configuração acima habilitaria gpt-4-vision-preview, gpt-3.5-turbo e gpt-4-turbo para seus usuários na ordem em que foram definidos.
Usando Assistants com Azure
Para habilitar o uso de Assistants com Azure OpenAI, existem 2 etapas principais.
- Defina o campo
assistants, abaixo do endpointazureOpenAI, ou seja, no Endpoint-level comotrue, desta forma:
endpoints:
azureOpenAI:
# Enable use of Assistants with Azure
assistants: true- Adicione o campo
assistantsaos grupos compatíveis com a integração da Assistants API do Azure.
- Pelo menos uma das suas configurações de grupo deve ser compatível.
- Você pode verificar as regiões e modelos compatíveis na documentação do Azure aqui.
- A versão também deve ser "2024-02-15-preview" ou posterior, preferencialmente posterior para acesso aos recursos mais recentes.
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 credenciais, utilize variáveis de ambiente personalizadas especificadas em cada configuração de grupo compatível com assistants.
-
Se você marcar várias regiões como compatíveis com assistants, os assistants que você criar serão agregados entre as regiões na lista principal de seleção de assistants.
-
Os arquivos que você envia para o Azure OpenAI, seja no nível de mensagem ou de assistente, estarão disponíveis apenas na região da qual o modelo do assistente atual faz parte.
- Por esse motivo, é recomendado que você utilize apenas uma região ou grupo de recursos para o Azure OpenAI Assistants, ou você encontrará um erro.
- O upload para o "OpenAI" é o comportamento padrão para as capacidades oficiais de
code_interpretereretrieval.
-
O download de arquivos gerados por assistentes terá suporte em breve.
-
A partir de 19 de maio de 2024, retrieval e streaming ainda não são suportados através do Azure OpenAI.
- Para evitar quaisquer erros com a recuperação (retrieval) enquanto ela não for suportada, recomenda-se desativar a funcionalidade completamente através da configuração do endpoint
azureAssistants:
endpoints: azureOpenAI: # ...rest azureAssistants: # "retrieval" omitted. capabilities: ["code_interpreter", "actions", "tools"]- Por padrão, todos os recursos, exceto a recuperação (retrieval), estão habilitados.
- Para evitar quaisquer erros com a recuperação (retrieval) enquanto ela não for suportada, recomenda-se desativar a funcionalidade completamente através da configuração do endpoint
Usando Plugins com Azure
Para usar o endpoint Plugins com o Azure OpenAI, você precisa de uma implantação que suporte function calling. Caso contrário, desative "Functions" nas configurações do Agent. Quando você não estiver usando o modo "functions", é recomendado também manter "skip completion" desativado, que é uma etapa de revisão do que o agente gerou.
Para usar o Azure com o endpoint Plugins, certifique-se de que o campo plugins esteja definido como true na configuração do seu endpoint do Azure OpenAI:
# Example Azure OpenAI Object Structure
endpoints:
azureOpenAI:
plugins: true # <------- Set this
groups:
# omitted for brevityConfigurar o campo plugins configurará os Plugins para usar modelos Azure.
NOTA: A configuração atual através do librechat.yaml usa o modelo principal que você seleciona no frontend para o uso de Plugins, o que geralmente não é como funciona sem o Azure, onde, em vez disso, o modelo "Agent" é usado. A configuração do modelo Agent pode ser ignorada ao usar Plugins através do Azure.
Usando uma Base URL Especificada com Azure
A URL base para solicitações da API do Azure OpenAI pode ser configurada dinamicamente. Isso é útil para serviços de proxy, como o Cloudflare AI Gateway, ou se você desejar substituir explicitamente o tratamento da baseURL do aplicativo.
O LibreChat usará o campo baseURL para o seu agrupamento de modelos Azure, que pode incluir espaços reservados para a instância da API do Azure OpenAI e nomes de implantação.
Suporte ao Formato de Domínio do Endpoint Azure
O Azure OpenAI agora suporta ambos os formatos de domínio de endpoint:
- Novo formato:
.cognitiveservices.azure.com - Formato legado:
.openai.azure.com
Ao usar instanceName sem um domínio completo, o formato legado .openai.azure.com é aplicado por padrão. Se você fornecer um domínio completo (por exemplo, my-instance.cognitiveservices.azure.com), ele será usado como está. Isso se aplica tanto aos campos instanceName quanto às configurações de baseURL.
Na configuração, a base URL pode ser personalizada da seguinte forma:
# 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} e ${DEPLOYMENT_NAME} são espaços reservados únicos e não correspondem a variáveis de ambiente, mas sim ao nome da instância e ao nome da implantação do modelo selecionado atualmente. Não é recomendado que você use INSTANCE_NAME e DEPLOYMENT_NAME como nomes de variáveis de ambiente para evitar quaisquer conflitos potenciais.
Você também pode omitir os placeholders completamente e simplesmente construir a baseURL com suas credenciais:
baseURL: "https://gateway.ai.cloudflare.com/v1/ACCOUNT_TAG/GATEWAY/azure-openai/my-secret-instance/my-deployment"Por fim, você pode especificar a baseURL inteira por meio de uma variável de ambiente personalizada
baseURL: "${MY_CUSTOM_BASEURL}"Habilitando Títulos Gerados Automaticamente com Azure
Para habilitar a geração de títulos para Azure, defina titleConvo como true.
# Example Azure OpenAI Object Structure
endpoints:
azureOpenAI:
titleConvo: true # <------- Set this
groups:
# omitted for brevityVocê também pode especificar o modelo a ser usado para a criação de títulos, com titleModel, desde que você o tenha configurado em seu(s) grupo(s).
titleModel: "gpt-3.5-turbo"Nota: "gpt-3.5-turbo" é o valor padrão, portanto você pode omiti-lo se quiser usar este modelo exato e já o tiver configurado. Se não estiver configurado e titleConvo estiver definido como true, o processo de criação de título resultará em um erro e nenhum título será gerado. Você também pode definir isso para usar dinamicamente o modelo atual, configurando-o como current_model.
titleModel: "current_model"Usando o GPT-4 Vision com Azure
Para usar Vision (análise de imagem) com Azure OpenAI, certifique-se de que gpt-4-vision-preview seja um modelo especificado em um de seus agrupamentos.
Isso funciona da mesma forma que com o endpoint OpenAI: não há necessidade de selecionar o modelo de visão, pois ele será alternado nos bastidores.
Gerar imagens com o Azure OpenAI Service (DALL-E)
| ID do Modelo | Disponibilidade de Recurso | Requisição Máxima (caracteres) |
|---|---|---|
| dalle2 | East US | 1000 |
| dalle3 | Sweden Central | 4000 |
- Primeiro, você precisa criar um recurso Azure que hospede o DALL-E
- No momento da redação deste documento, o dall-e-3 está disponível na região
SwedenCentral, e o dall-e-2 na regiãoEastUS.
- No momento da redação deste documento, o dall-e-3 está disponível na região
- Em seguida, você precisa implantar o modelo de geração de imagem em uma das regiões acima.
- Leia o Azure OpenAI Image Generation Quickstart Guide para obter assistência adicional
- Configure suas variáveis de ambiente com base nas credenciais do Azure:
As opções de configuração do DALL-E:
DALL-E:
Chaves de API:
| Key | Type | Description | Example |
|---|---|---|---|
| DALLE_API_KEY | string | A chave de API da OpenAI para os serviços DALL-E 2 e DALL-E 3. | # DALLE_API_KEY= |
Chaves de API (Específicas da Versão):
| Key | Type | Description | Example |
|---|---|---|---|
| DALLE3_API_KEY | string | A chave de API da OpenAI para o DALL-E 3. | # DALLE3_API_KEY= |
| DALLE2_API_KEY | string | A chave de API da OpenAI para o DALL-E 2. | # DALLE2_API_KEY= |
System Prompts:
| Key | Type | Description | Example |
|---|---|---|---|
| DALLE3_SYSTEM_PROMPT | string | O prompt de sistema para o DALL-E 3. | # DALLE3_SYSTEM_PROMPT="Your DALL-E-3 System Prompt here" |
| DALLE2_SYSTEM_PROMPT | string | O system prompt para o DALL-E 2. | # DALLE2_SYSTEM_PROMPT="Your DALL-E-2 System Prompt here" |
Configurações de Reverse Proxy:
| Key | Type | Description | Example |
|---|---|---|---|
| DALLE_REVERSE_PROXY | string | A URL de proxy reverso para solicitações da API DALL-E. | # DALLE_REVERSE_PROXY= |
Base URLs:
| Key | Type | Description | Example |
|---|---|---|---|
| DALLE3_BASEURL | string | A URL base para os endpoints da API do DALL-E 3. Suporta ambos os formatos de domínio `.openai.azure.com` (legado) e `.cognitiveservices.azure.com` (novo). | # 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 | A URL base para os endpoints da API do DALL-E 2. Suporta ambos os formatos de domínio `.openai.azure.com` (legado) e `.cognitiveservices.azure.com` (novo). | # 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>/ |
Integração com Azure OpenAI (Opcional):
| Key | Type | Description | Example |
|---|---|---|---|
| DALLE3_AZURE_API_VERSION | string | A versão da API para DALL-E 3 com o serviço Azure OpenAI. | # DALLE3_AZURE_API_VERSION=the-api-version # e.g.: 2023-12-01-preview |
| DALLE2_AZURE_API_VERSION | string | A versão da API para DALL-E 2 com o serviço Azure OpenAI. | # DALLE2_AZURE_API_VERSION=the-api-version # e.g.: 2023-12-01-preview |
Substitua o texto de exemplo por prompts ou instruções reais e forneça suas chaves de API caso opte por incluí-las diretamente no arquivo (recomenda-se gerenciar chaves sensíveis fora da base de código). Revise e respeite as políticas de uso da OpenAI ao incorporar chaves de API em softwares.
Nota: se você tiver um PROXY definido, ele também será usado para chamadas DALL-E, o que é universal para o aplicativo.
Serverless Inference Endpoints
Por meio do arquivo librechat.yaml, você pode configurar endpoints de inferência serverless do Azure AI Studio para acessar modelos do Azure AI Foundry. Apenas um identificador de modelo, baseURL e apiKey são necessários, juntamente com o campo serverless para indicar o tratamento especial que esses endpoints exigem.
-
Você precisará seguir as instruções nos cartões de modelo compatíveis para configurar o acesso MaaS ("Models as a Service") no Azure AI Studio.
-
Para referência, aqui estão alguns cartões de modelo compatíveis conhecidos:
-
Mistral-large | Meta-Llama-3.1-8B-Instruct | Phi-3-medium-128k-instruct
-
-
Você também pode conferir o blog técnico sobre o lançamento do modelo "Mistral-large" para mais informações.
-
Em seguida, você precisará adicioná-los à sua configuração
azureOpenAIno arquivo librechat.yaml. -
Aqui está um exemplo de configuração para o
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:
- Os modelos do Azure AI Foundry agora provisionam endpoints em
/models/chat/completions?api-version=versionpara inferência serverless.- O campo
baseURLdeve ser definido como a raiz do endpoint, sem nada após/models/, ou seja, o caminho/chat/completions. - Exemplo:
https://example.services.ai.azure.com/models/parahttps://example.services.ai.azure.com/models/chat/completions?api-version=2024-05-01-preview - O parâmetro de consulta
versioné opcional e pode ser especificado no campobaseURL.
- O campo
- O nome do modelo usado no campo
modelsdeve corresponder ao nome da implantação do modelo no Azure AI Foundry. - A compatibilidade com o LibreChat depende da paridade com as especificações da API da OpenAI, que no momento da redação deste documento, são tipicamente implantações "Pay-as-you-go" ou "Models as a Service" (MaaS) no Azure AI Studio, que são compatíveis com o OpenAI-SDK com tratamento de endpoint
v1/completionsoumodels/chat/completions. - Todos os modelos que oferecem implantações serverless ("Serverless APIs") são compatíveis a partir do catálogo de modelos do Azure. Você pode filtrar por "Serverless API" em Deployment options e "Chat completion" em inference tasks para ver a lista completa; no entanto, modelos de real time endpoint não foram testados.
- Estes endpoints/modelos de inferência serverless podem ou não oferecer suporte a function calling de acordo com as especificações da OpenAI API, o que permite seu uso com Agents.
Como está este guia?