Add support for Azure OpenAI (#495)

This commit is contained in:
itbm
2023-04-11 10:16:33 +01:00
committed by GitHub
parent 60288ad20a
commit 25a4dbb052
6 changed files with 67 additions and 19 deletions
+17 -6
View File
@@ -1,4 +1,4 @@
import { OPENAI_API_HOST } from '@/utils/app/const';
import { OPENAI_API_HOST, OPENAI_API_TYPE, OPENAI_API_VERSION, OPENAI_ORGANIZATION } from '@/utils/app/const';
import { OpenAIModel, OpenAIModelID, OpenAIModels } from '@/types/openai';
@@ -12,12 +12,22 @@ const handler = async (req: Request): Promise<Response> => {
key: string;
};
const response = await fetch(`${OPENAI_API_HOST}/v1/models`, {
let url = `${OPENAI_API_HOST}/v1/models`;
if (OPENAI_API_TYPE === 'azure') {
url = `${OPENAI_API_HOST}/openai/deployments?api-version=${OPENAI_API_VERSION}`;
}
const response = await fetch(url, {
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${key ? key : process.env.OPENAI_API_KEY}`,
...(process.env.OPENAI_ORGANIZATION && {
'OpenAI-Organization': process.env.OPENAI_ORGANIZATION,
...(OPENAI_API_TYPE === 'openai' && {
Authorization: `Bearer ${key ? key : process.env.OPENAI_API_KEY}`
}),
...(OPENAI_API_TYPE === 'azure' && {
'api-key': `${key ? key : process.env.OPENAI_API_KEY}`
}),
...((OPENAI_API_TYPE === 'openai' && OPENAI_ORGANIZATION) && {
'OpenAI-Organization': OPENAI_ORGANIZATION,
}),
},
});
@@ -40,8 +50,9 @@ const handler = async (req: Request): Promise<Response> => {
const models: OpenAIModel[] = json.data
.map((model: any) => {
const model_name = (OPENAI_API_TYPE === 'azure') ? model.model : model.id;
for (const [key, value] of Object.entries(OpenAIModelID)) {
if (value === model.id) {
if (value === model_name) {
return {
id: model.id,
name: OpenAIModels[value].name,