Allow customising defaultQuery for native Azure OpenAI support (#822)
Browse filesThe api-version is a required query parameter for Azure OpenAI, by
supporting this we can support it without a gateway like portkey.
Co-authored-by: Nathan Sarrazin <sarrazin.nathan@gmail.com>
README.md
CHANGED
@@ -353,9 +353,12 @@ MODELS=`[{
|
|
353 |
"endpoints": [
|
354 |
{
|
355 |
"type": "openai",
|
356 |
-
"baseURL": "https://
|
357 |
"defaultHeaders": {
|
358 |
-
"
|
|
|
|
|
|
|
359 |
}
|
360 |
}
|
361 |
]
|
|
|
353 |
"endpoints": [
|
354 |
{
|
355 |
"type": "openai",
|
356 |
+
"baseURL": "https://{resource-name}.openai.azure.com/openai/deployments/{deployment-id}",
|
357 |
"defaultHeaders": {
|
358 |
+
"api-key": "{api-key}"
|
359 |
+
},
|
360 |
+
"defaultQuery": {
|
361 |
+
"api-version": "2023-05-15"
|
362 |
}
|
363 |
}
|
364 |
]
|
src/lib/server/endpoints/openai/endpointOai.ts
CHANGED
@@ -15,12 +15,13 @@ export const endpointOAIParametersSchema = z.object({
|
|
15 |
.union([z.literal("completions"), z.literal("chat_completions")])
|
16 |
.default("chat_completions"),
|
17 |
defaultHeaders: z.record(z.string()).optional(),
|
|
|
18 |
});
|
19 |
|
20 |
export async function endpointOai(
|
21 |
input: z.input<typeof endpointOAIParametersSchema>
|
22 |
): Promise<Endpoint> {
|
23 |
-
const { baseURL, apiKey, completion, model, defaultHeaders } =
|
24 |
endpointOAIParametersSchema.parse(input);
|
25 |
let OpenAI;
|
26 |
try {
|
@@ -33,6 +34,7 @@ export async function endpointOai(
|
|
33 |
apiKey: apiKey ?? "sk-",
|
34 |
baseURL,
|
35 |
defaultHeaders,
|
|
|
36 |
});
|
37 |
|
38 |
if (completion === "completions") {
|
|
|
15 |
.union([z.literal("completions"), z.literal("chat_completions")])
|
16 |
.default("chat_completions"),
|
17 |
defaultHeaders: z.record(z.string()).optional(),
|
18 |
+
defaultQuery: z.record(z.string()).optional(),
|
19 |
});
|
20 |
|
21 |
export async function endpointOai(
|
22 |
input: z.input<typeof endpointOAIParametersSchema>
|
23 |
): Promise<Endpoint> {
|
24 |
+
const { baseURL, apiKey, completion, model, defaultHeaders, defaultQuery } =
|
25 |
endpointOAIParametersSchema.parse(input);
|
26 |
let OpenAI;
|
27 |
try {
|
|
|
34 |
apiKey: apiKey ?? "sk-",
|
35 |
baseURL,
|
36 |
defaultHeaders,
|
37 |
+
defaultQuery,
|
38 |
});
|
39 |
|
40 |
if (completion === "completions") {
|