From 2d36dee17cd879e98b813d342c5c1392c76171d2 Mon Sep 17 00:00:00 2001 From: CaIon <1808837298@qq.com> Date: Sat, 23 Mar 2024 23:52:04 +0800 Subject: [PATCH 1/3] =?UTF-8?q?fix:=20=E6=B5=81=E6=A8=A1=E5=BC=8F=E7=BD=91?= =?UTF-8?q?=E7=BB=9C=E9=94=99=E8=AF=AF=E5=AF=BC=E8=87=B40=E8=A1=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- relay/channel/openai/relay-openai.go | 38 ++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 10 deletions(-) diff --git a/relay/channel/openai/relay-openai.go b/relay/channel/openai/relay-openai.go index b8b7d8d..39127de 100644 --- a/relay/channel/openai/relay-openai.go +++ b/relay/channel/openai/relay-openai.go @@ -75,11 +75,20 @@ func OpenaiStreamHandler(c *gin.Context, resp *http.Response, relayMode int) (*d err := json.Unmarshal(common.StringToByteSlice(streamResp), &streamResponses) if err != nil { common.SysError("error unmarshalling stream response: " + err.Error()) - return // just ignore the error - } - for _, streamResponse := range streamResponses { - for _, choice := range streamResponse.Choices { - responseTextBuilder.WriteString(choice.Delta.Content) + for _, item := range streamItems { + var streamResponse dto.ChatCompletionsStreamResponseSimple + err := json.Unmarshal(common.StringToByteSlice(item), &streamResponse) + if err == nil { + for _, choice := range streamResponse.Choices { + responseTextBuilder.WriteString(choice.Delta.Content) + } + } + } + } else { + for _, streamResponse := range streamResponses { + for _, choice := range streamResponse.Choices { + responseTextBuilder.WriteString(choice.Delta.Content) + } } } case relayconstant.RelayModeCompletions: @@ -87,11 +96,20 @@ func OpenaiStreamHandler(c *gin.Context, resp *http.Response, relayMode int) (*d err := json.Unmarshal(common.StringToByteSlice(streamResp), &streamResponses) if err != nil { common.SysError("error unmarshalling stream response: " + err.Error()) - return // just ignore the error - } - for _, streamResponse := range streamResponses { - for _, choice := range streamResponse.Choices { - responseTextBuilder.WriteString(choice.Text) + for _, item := range streamItems { + var streamResponse dto.CompletionsStreamResponse + err := json.Unmarshal(common.StringToByteSlice(item), &streamResponse) + if err == nil { + for _, choice := range streamResponse.Choices { + responseTextBuilder.WriteString(choice.Text) + } + } + } + } else { + for _, streamResponse := range streamResponses { + for _, choice := range streamResponse.Choices { + responseTextBuilder.WriteString(choice.Text) + } } } } From f671176da0a86c6d1c490f87896109dab70feccf Mon Sep 17 00:00:00 2001 From: QuentinHsu Date: Sun, 24 Mar 2024 18:50:21 +0800 Subject: [PATCH 2/3] fix(global): error in console under dev mode --- web/src/components/PersonalSetting.js | 4 ++-- web/src/components/SystemSetting.js | 3 ++- web/src/pages/Setting/index.js | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/web/src/components/PersonalSetting.js b/web/src/components/PersonalSetting.js index ded9ad0..f08dfeb 100644 --- a/web/src/components/PersonalSetting.js +++ b/web/src/components/PersonalSetting.js @@ -595,7 +595,7 @@ const PersonalSetting = () => { onCancel={() => setShowWeChatBindModal(false)} // onOpen={() => setShowWeChatBindModal(true)} visible={showWeChatBindModal} - size={'mini'} + size={'small'} >
@@ -645,7 +645,7 @@ const PersonalSetting = () => { onClick={sendVerificationCode} disabled={disableButton || loading} > - {disableButton ? `重新发送(${countdown})` : '获取验证码'} + {disableButton ? `重新发送 (${countdown})` : '获取验证码'}
diff --git a/web/src/components/SystemSetting.js b/web/src/components/SystemSetting.js index 3716a00..c305d2c 100644 --- a/web/src/components/SystemSetting.js +++ b/web/src/components/SystemSetting.js @@ -42,7 +42,7 @@ const SystemSetting = () => { TurnstileSecretKey: '', RegisterEnabled: '', EmailDomainRestrictionEnabled: '', - EmailDomainWhitelist: '', + EmailDomainWhitelist: [], // telegram login TelegramOAuthEnabled: '', TelegramBotToken: '', @@ -85,6 +85,7 @@ const SystemSetting = () => { useEffect(() => { getOptions().then(); }, []); + useEffect(() => {}, [inputs.EmailDomainWhitelist]); const updateOption = async (key, value) => { setLoading(true); diff --git a/web/src/pages/Setting/index.js b/web/src/pages/Setting/index.js index 25d3600..fe38ea7 100644 --- a/web/src/pages/Setting/index.js +++ b/web/src/pages/Setting/index.js @@ -39,7 +39,7 @@ const Setting = () => { {panes.map((pane) => ( - + {pane.content} ))} From 3800dc219e6ada00cee987228c6ef026cf483d49 Mon Sep 17 00:00:00 2001 From: CaIon <1808837298@qq.com> Date: Mon, 25 Mar 2024 14:10:57 +0800 Subject: [PATCH 3/3] fix: Cannot read properties of undefined (reading 'map') (close #148) --- web/src/components/ChannelsTable.js | 6 ++++++ web/src/components/SiderBar.js | 3 +++ web/src/pages/Channel/EditChannel.js | 9 +++++++++ 3 files changed, 18 insertions(+) diff --git a/web/src/components/ChannelsTable.js b/web/src/components/ChannelsTable.js index 3f61ffc..0d2ed57 100644 --- a/web/src/components/ChannelsTable.js +++ b/web/src/components/ChannelsTable.js @@ -322,6 +322,9 @@ const ChannelsTable = () => { const res = await API.get( `/api/channel/?p=${startIdx}&page_size=${pageSize}&id_sort=${idSort}`, ); + if (res === undefined) { + return; + } const { success, message, data } = res.data; if (success) { if (startIdx === 0) { @@ -608,6 +611,9 @@ const ChannelsTable = () => { let res = await API.get(`/api/group/`); // add 'all' option // res.data.data.unshift('all'); + if (res === undefined) { + return; + } setGroupOptions( res.data.data.map((group) => ({ label: group, diff --git a/web/src/components/SiderBar.js b/web/src/components/SiderBar.js index e0b2ae3..96d7e7e 100644 --- a/web/src/components/SiderBar.js +++ b/web/src/components/SiderBar.js @@ -156,6 +156,9 @@ const SiderBar = () => { const loadStatus = async () => { const res = await API.get('/api/status'); + if (res === undefined) { + return; + } const { success, data } = res.data; if (success) { localStorage.setItem('status', JSON.stringify(data)); diff --git a/web/src/pages/Channel/EditChannel.js b/web/src/pages/Channel/EditChannel.js index ab0a373..9b98de2 100644 --- a/web/src/pages/Channel/EditChannel.js +++ b/web/src/pages/Channel/EditChannel.js @@ -188,6 +188,9 @@ const EditChannel = (props) => { const loadChannel = async () => { setLoading(true); let res = await API.get(`/api/channel/${channelId}`); + if (res === undefined) { + return; + } const { success, message, data } = res.data; if (success) { if (data.models === '') { @@ -223,6 +226,9 @@ const EditChannel = (props) => { const fetchModels = async () => { try { let res = await API.get(`/api/channel/models`); + if (res === undefined) { + return; + } let localModelOptions = res.data.data.map((model) => ({ label: model.id, value: model.id, @@ -244,6 +250,9 @@ const EditChannel = (props) => { const fetchGroups = async () => { try { let res = await API.get(`/api/group/`); + if (res === undefined) { + return; + } setGroupOptions( res.data.data.map((group) => ({ label: group,