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)
+ }
}
}
}
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/PersonalSetting.js b/web/src/components/PersonalSetting.js
index 3fc2052..214c495 100644
--- a/web/src/components/PersonalSetting.js
+++ b/web/src/components/PersonalSetting.js
@@ -628,7 +628,7 @@ const PersonalSetting = () => {
onCancel={() => setShowWeChatBindModal(false)}
// onOpen={() => setShowWeChatBindModal(true)}
visible={showWeChatBindModal}
- size={'mini'}
+ size={'small'}
>