# Azure OpenAI
This document explains how to configure Azure OpenAI as the LLM provider for yCrash AI chat.
Note
After you create ycbuddy-config.json, place it in the upload directory and restart yCrash as described in the Introduction.
Use this provider when your organization hosts models on an Azure OpenAI resource instead of calling OpenAI directly.
# Step 1: Get Your Azure OpenAI Credentials
- In a web browser, go to the Azure portal (opens new window)
- Open your Azure OpenAI resource
- Copy the endpoint URL (for example
https://your-resource.openai.azure.com) - Copy a key from Keys and Endpoint
- Confirm the chat and embedding deployment names you will use (these are the names you created in Azure, not necessarily the base model IDs)
Store the key in a secrets manager or restricted server directory. Treat it like a password - do not email it, commit it to Git, or share it in tickets.
# Step 2: Add the Azure OpenAI Settings
Paste the following JSON into ycbuddy-config.json and replace the placeholders with your Azure values:
{
"llmProvider": "azure-openai",
"llmApiKey": "your-azure-api-key",
"llmEndpoint": "https://your-resource.openai.azure.com",
"llmApiVersion": "2024-10-21",
"llmModelName": "gpt-5.6-terra",
"llmEmbeddingModelName": "text-embedding-3-small",
"llmMaxOutputTokens": 4096,
"llmReasoningEffort": "none"
}
2
3
4
5
6
7
8
9
10
| Field | Required | Notes |
|---|---|---|
llmProvider | Yes | Must be "azure-openai" |
llmApiKey | Yes | Azure OpenAI key |
llmEndpoint | Yes | Azure resource URL (e.g. https://your-resource.openai.azure.com) |
llmApiVersion | No | Azure REST API version; defaults to 2024-08-01-preview if omitted |
llmModelName | Yes | Chat deployment name in Azure (not necessarily the base model id). Example assumes a deployment named gpt-5.6-terra. |
llmEmbeddingModelName | Yes | Embedding deployment name in Azure |
llmMaxOutputTokens | No | Same meaning as OpenAI (default 4096) |
llmReasoningEffort | No | Same meaning as OpenAI (default "none"); only sent for GPT-5.x / o-series deployment names |
You can also set these as environment variables instead of putting them in the JSON file:
| JSON field | Environment variable |
|---|---|
llmApiKey | LLM_API_KEY |
llmEndpoint | LLM_ENDPOINT |
llmApiVersion | LLM_API_VERSION |
All other fields (llmProvider, llmModelName, llmEmbeddingModelName) are still required in the JSON file.
# Optional Azure OpenAI Tuning
| Field | Default | Notes |
|---|---|---|
llmMaxOutputTokens | 4096 | Soft cap on completion tokens. For GPT-5.x this budget includes reasoning tokens; values much below ~2k often truncate or empty answers. Raise (e.g. 8192) for longer RCAs. Hard ceiling: 128000. |
llmReasoningEffort | "none" | Sent for GPT-5.x / o-series deployment names only. Values: none, minimal, low, medium, high, xhigh, max. |
maxAllowedTokens | 20000 | Caps total prompt context for OpenAI/Azure (TPM/account limits). Independent of the model's context window. |
Supported chat model IDs are the same as OpenAI. In Azure, set llmModelName / llmEmbeddingModelName to your deployment names.
# Step 3: Place the File and Restart
Place ycbuddy-config.json in the yCrash upload directory and restart the server. See the Introduction for file location, restart, and verification steps.
# Troubleshooting
| Symptom | Likely cause |
|---|---|
Log: Unsupported LLM provider | Typo in llmProvider (must be exactly azure-openai) |
| Chat opens but returns 401 / 403 | Invalid key, or the key is for a different Azure resource |
| 404 / deployment not found | llmModelName or llmEmbeddingModelName is a base model id instead of the Azure deployment name |
| Connection errors | llmEndpoint missing, mistyped, or blocked by firewall |
Also confirm:
llmProvideris"azure-openai"(lowercase, with a hyphen)llmEndpointis the Azure resource URL (no trailing path such as/openai/deployments/...)- Outbound HTTPS from the yCrash server to your Azure OpenAI resource is allowed
For shared file-placement and restart checks, see the Introduction troubleshooting checklist.