diff --git a/controller/channel-test.go b/controller/channel-test.go index 0f58f4d0..710b893d 100644 --- a/controller/channel-test.go +++ b/controller/channel-test.go @@ -45,10 +45,13 @@ func testChannel(channel *model.Channel, request ChatRequest) (err error, openai requestURL := common.ChannelBaseURLs[channel.Type] if channel.Type == common.ChannelTypeAzure { modelMap := channel.GetModelMapping() + var deployment string if modelMap[request.Model] != "" { - request.Model = modelMap[request.Model] + deployment = modelMap[request.Model] + } else { + deployment = model.ModelToDeployment(request.Model) } - requestURL = getFullRequestURL(channel.GetBaseURL(), fmt.Sprintf("/openai/deployments/%s/chat/completions?api-version=%s", request.Model, channel.Other), channel.Type) + requestURL = getFullRequestURL(channel.GetBaseURL(), fmt.Sprintf("/openai/deployments/%s/chat/completions?api-version=%s", deployment, channel.Other), channel.Type) } else { if baseURL := channel.GetBaseURL(); len(baseURL) > 0 { requestURL = baseURL @@ -125,6 +128,9 @@ func TestChannel(c *gin.Context) { err, _ = testChannel(channel, *testRequest) tok := time.Now() milliseconds := tok.Sub(tik).Milliseconds() + if err != nil { + milliseconds = 0 + } go channel.UpdateResponseTime(milliseconds) consumedTime := float64(milliseconds) / 1000.0 if err != nil { diff --git a/model/channel.go b/model/channel.go index 78c37ba0..4202330d 100644 --- a/model/channel.go +++ b/model/channel.go @@ -99,7 +99,7 @@ func (channel *Channel) GetBaseURL() string { } func (channel *Channel) GetModelMapping() (m map[string]string) { - if channel.ModelMapping == nil { + if channel.ModelMapping == nil || *channel.ModelMapping == "" { return } err := json.Unmarshal([]byte(*channel.ModelMapping), &m) diff --git a/web/src/components/ChannelsTable.js b/web/src/components/ChannelsTable.js index d44ea2d7..a212cf39 100644 --- a/web/src/components/ChannelsTable.js +++ b/web/src/components/ChannelsTable.js @@ -219,15 +219,15 @@ const ChannelsTable = () => { const res = await API.get(`/api/channel/test/${id}/`); const { success, message, time } = res.data; if (success) { - let newChannels = [...channels]; - let realIdx = (activePage - 1) * ITEMS_PER_PAGE + idx; - newChannels[realIdx].response_time = time * 1000; - newChannels[realIdx].test_time = Date.now() / 1000; - setChannels(newChannels); showInfo(`通道 ${name} 测试成功,耗时 ${time.toFixed(2)} 秒。`); } else { showError(message); } + let newChannels = [...channels]; + let realIdx = (activePage - 1) * ITEMS_PER_PAGE + idx; + newChannels[realIdx].response_time = time * 1000; + newChannels[realIdx].test_time = Date.now() / 1000; + setChannels(newChannels); }; const testAllChannels = async () => {