Merge pull request #4953 from ConnectAI-E/hotfix/azure-deployment-notfound

hotfix: old AZURE_URL config error: "DeploymentNotFound". #4945 #4930
This commit is contained in:
Lloyd Zhou 2024-07-09 14:52:26 +08:00 committed by GitHub
commit 5295802720
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 43 additions and 3 deletions

View File

@ -181,6 +181,7 @@ Specify OpenAI organization ID.
### `AZURE_URL` (optional) ### `AZURE_URL` (optional)
> Example: https://{azure-resource-url}/openai/deployments/{deploy-name} > Example: https://{azure-resource-url}/openai/deployments/{deploy-name}
> if you config deployment name in `CUSTOM_MODELS`, you can remove `{deploy-name}` in `AZURE_URL`
Azure deploy url. Azure deploy url.
@ -245,6 +246,9 @@ To control custom models, use `+` to add a custom model, use `-` to hide a model
User `-all` to disable all default models, `+all` to enable all default models. User `-all` to disable all default models, `+all` to enable all default models.
For Azure: use `modelName@azure=deploymentName` to customize model name and deployment name.
> Example: `+gpt-3.5-turbo@azure=gpt35` will show option `gpt35(Azure)` in model list.
### `DEFAULT_MODEL` optional ### `DEFAULT_MODEL` optional
Change default model Change default model

View File

@ -95,6 +95,7 @@ OpenAI 接口代理 URL如果你手动配置了 openai 接口代理,请填
### `AZURE_URL` (可选) ### `AZURE_URL` (可选)
> 形如https://{azure-resource-url}/openai/deployments/{deploy-name} > 形如https://{azure-resource-url}/openai/deployments/{deploy-name}
> 如果你已经在`CUSTOM_MODELS`中参考`displayName`的方式配置了{deploy-name},那么可以从`AZURE_URL`中移除`{deploy-name}`
Azure 部署地址。 Azure 部署地址。
@ -156,6 +157,10 @@ anthropic claude Api Url.
用来控制模型列表,使用 `+` 增加一个模型,使用 `-` 来隐藏一个模型,使用 `模型名=展示名` 来自定义模型的展示名,用英文逗号隔开。 用来控制模型列表,使用 `+` 增加一个模型,使用 `-` 来隐藏一个模型,使用 `模型名=展示名` 来自定义模型的展示名,用英文逗号隔开。
在Azure的模式下支持使用`modelName@azure=deploymentName`的方式配置模型名称和部署名称(deploy-name)
> 示例:`+gpt-3.5-turbo@azure=gpt35`这个配置会在模型列表显示一个`gpt35(Azure)`的选项
### `DEFAULT_MODEL` (可选) ### `DEFAULT_MODEL` (可选)
更改默认模型 更改默认模型

View File

@ -66,6 +66,31 @@ export async function requestOpenai(req: NextRequest) {
"/api/azure/", "/api/azure/",
"", "",
)}?api-version=${azureApiVersion}`; )}?api-version=${azureApiVersion}`;
// Forward compatibility:
// if display_name(deployment_name) not set, and '{deploy-id}' in AZURE_URL
// then using default '{deploy-id}'
if (serverConfig.customModels) {
const modelName = path.split("/")[1];
let realDeployName = "";
serverConfig.customModels
.split(",")
.filter((v) => !!v && !v.startsWith("-") && v.includes(modelName))
.forEach((m) => {
const [fullName, displayName] = m.split("=");
const [_, providerName] = fullName.split("@");
if (providerName === "azure" && !displayName) {
const [_, deployId] = serverConfig.azureUrl.split("deployments/");
if (deployId) {
realDeployName = deployId;
}
}
});
if (realDeployName) {
console.log("[Replace with DeployId", realDeployName);
path = path.replaceAll(modelName, realDeployName);
}
}
} }
const fetchUrl = `${baseUrl}/${path}`; const fetchUrl = `${baseUrl}/${path}`;

View File

@ -49,7 +49,7 @@ export const DEFAULT_CONFIG = {
modelConfig: { modelConfig: {
model: "gpt-3.5-turbo" as ModelType, model: "gpt-3.5-turbo" as ModelType,
providerName: "Openai" as ServiceProvider, providerName: "OpenAI" as ServiceProvider,
temperature: 0.5, temperature: 0.5,
top_p: 1, top_p: 1,
max_tokens: 4000, max_tokens: 4000,

View File

@ -47,10 +47,16 @@ export function collectModelTable(
(model) => (model.available = available), (model) => (model.available = available),
); );
} else { } else {
// 1. find model by name(), and set available value // 1. find model by name, and set available value
const [customModelName, customProviderName] = name.split("@");
let count = 0; let count = 0;
for (const fullName in modelTable) { for (const fullName in modelTable) {
if (fullName.split("@").shift() == name) { const [modelName, providerName] = fullName.split("@");
if (
customModelName == modelName &&
(customProviderName === undefined ||
customProviderName === providerName)
) {
count += 1; count += 1;
modelTable[fullName]["available"] = available; modelTable[fullName]["available"] = available;
if (displayName) { if (displayName) {