azure-openai-proxy
v0.0.2
Published
A proxy server for Azure Open API using azure cli for authentication.
Readme
azure-openai-proxy
CLI tool to create open ai compatible endpoints for azure open ai by using azure cli as the authentication mechanism to get access token automatically which can be useful when api key is disabled or not available.
Installation
Make sure azure cli is installed and configured. https://learn.microsoft.com/en-us/cli/azure/
Add
~/.azure-openai-proxy.jsonwith the following content replacing the resource name and deployment names correctly.
The configuration supports the following options for model definitions:
- Simple string format: Maps model name to Azure deployment name
- Object format with the following properties:
deployment: (Required) The Azure deployment nameendpoint: (Optional) Override the default endpoint for this modelapiVersion: (Optional) Override the default API version for this modelmodelName: (Optional) Override the model parameter sent to Azure API
{
"defaultEndpoint": "https://resourcename.openai.azure.com",
"defaultApiVersion": "2024-08-01-preview",
"models": {
"gpt-4o": {
"deployment": "gpt-4o",
"endpoint": "https://resourcename2.openai.azure.com"
},
"gpt-4o-mini": "gpt-4o-mini",
"DeepSeek-R1-abyc": {
"deployment": "deepseek-r1-deployment",
"modelName": "DeepSeek-R1"
},
"text-embedding-3-large": "text-embedding-3-large"
}
}- Run the following command to start the proxy server:
npx azure-openai-proxy@latestExample Requests
List Models API
curl http://localhost:3000/v1/models | jqChat Completions API
curl http://localhost:3000/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model": "gpt-4o-mini",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Tell me a brief joke about programming."
}
],
"temperature": 0.7,
"stream": false
}' | jq '.choices[0].message.content'Embeddings API
curl http://localhost:3000/v1/embeddings \
-H "Content-Type: application/json" \
-d '{
"model": "text-embedding-3-large",
"input": ["Your text here", "Another text to embed"]
}'OpenAI Response API
curl -X POST http://localhost:3000/openai/responses \
-H 'Content-Type: application/json' \
-d '{
"model": "gpt-4.1",
"input": [
{
"type": "message",
"role": "user",
"content": "Tell me a joke"
}
],
"truncation": "auto",
"stream": false
}'