Skip to main content

Azure OpenAI Integration

KoreShield can proxy Azure OpenAI requests to apply sanitization, detection, and policy enforcement before requests reach your Azure endpoint.

Model Names

In Azure OpenAI, the model field usually maps to your deployment name, not the base model name.

Basic Request (TypeScript)

const response = await fetch("http://localhost:8000/v1/chat/completions", {
method: "POST",
headers: { "content-type": "application/json" },
body: JSON.stringify({
model: "gpt-4o",
messages: [{ role: "user", content: "Summarize the ticket backlog." }]
})
});

Basic Request (Python)

import requests

response = requests.post(
"http://localhost:8000/v1/chat/completions",
json={
"model": "gpt-4o",
"messages": [{"role": "user", "content": "Summarize the ticket backlog."}]
}
)

Streaming

const response = await fetch("http://localhost:8000/v1/chat/completions", {
method: "POST",
headers: { "content-type": "application/json" },
body: JSON.stringify({
model: "gpt-4o",
stream: true,
messages: [{ role: "user", content: "Write an executive summary." }]
})
});
response = requests.post(
"http://localhost:8000/v1/chat/completions",
json={
"model": "gpt-4o",
"stream": True,
"messages": [{"role": "user", "content": "Write an executive summary."}]
},
stream=True
)

for line in response.iter_lines():
if line:
print(line.decode("utf-8"))

System Prompts and Multi-Turn

{
"model": "gpt-4o",
"messages": [
{"role": "system", "content": "You are a support analyst."},
{"role": "user", "content": "Summarize the backlog."},
{"role": "assistant", "content": "Summary..."},
{"role": "user", "content": "Highlight top risks."}
]
}
payload = {
"model": "gpt-4o",
"messages": [
{"role": "system", "content": "You are a support analyst."},
{"role": "user", "content": "Summarize the backlog."},
{"role": "assistant", "content": "Summary..."},
{"role": "user", "content": "Highlight top risks."}
]
}

Error Handling

  • 403 indicates a blocked request due to policy enforcement.
  • 429 or 5xx typically indicates provider or rate-limit issues.

Security Controls

security:
sensitivity: medium
default_action: block
features:
sanitization: true
detection: true
policy_enforcement: true

Next Steps