Skip to content

Commit 969236c

Browse files
committed
urgent: provider error
1 parent 0ef3891 commit 969236c

2 files changed

Lines changed: 4 additions & 62 deletions

File tree

Lines changed: 2 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,8 @@
11
package chat
22

33
import (
4-
"paperdebugger/internal/api/mapper"
5-
"paperdebugger/internal/models"
6-
"paperdebugger/internal/services"
4+
"errors"
75
chatv1 "paperdebugger/pkg/gen/api/chat/v1"
8-
9-
"go.mongodb.org/mongo-driver/v2/bson"
106
)
117

128
func (s *ChatServer) sendStreamError(stream chatv1.ChatService_CreateConversationMessageStreamServer, err error) error {
@@ -23,60 +19,5 @@ func (s *ChatServer) CreateConversationMessageStream(
2319
req *chatv1.CreateConversationMessageStreamRequest,
2420
stream chatv1.ChatService_CreateConversationMessageStreamServer,
2521
) error {
26-
ctx := stream.Context()
27-
ctx, conversation, err := s.prepare(
28-
ctx,
29-
req.GetProjectId(),
30-
req.GetConversationId(),
31-
req.GetUserMessage(),
32-
req.GetUserSelectedText(),
33-
models.LanguageModel(req.GetLanguageModel()),
34-
req.GetConversationType(),
35-
)
36-
if err != nil {
37-
return s.sendStreamError(stream, err)
38-
}
39-
40-
// 用法跟 ChatCompletion 一样,只是传递了 stream 参数
41-
openaiChatHistory, inappChatHistory, err := s.aiClient.ChatCompletionStream(ctx, stream, conversation.ID.Hex(), conversation.LanguageModel, conversation.OpenaiChatHistory)
42-
if err != nil {
43-
return s.sendStreamError(stream, err)
44-
}
45-
46-
// 附加消息到对话
47-
bsonMessages := make([]bson.M, len(inappChatHistory))
48-
for i := range inappChatHistory {
49-
bsonMsg, err := convertToBSON(&inappChatHistory[i])
50-
if err != nil {
51-
return s.sendStreamError(stream, err)
52-
}
53-
bsonMessages[i] = bsonMsg
54-
}
55-
conversation.InappChatHistory = append(conversation.InappChatHistory, bsonMessages...)
56-
conversation.OpenaiChatHistory = openaiChatHistory
57-
if err := s.chatService.UpdateConversation(conversation); err != nil {
58-
return s.sendStreamError(stream, err)
59-
}
60-
61-
if conversation.Title == services.DefaultConversationTitle {
62-
go func() {
63-
protoMessages := make([]*chatv1.Message, len(conversation.InappChatHistory))
64-
for i, bsonMsg := range conversation.InappChatHistory {
65-
protoMessages[i] = mapper.BSONToChatMessage(bsonMsg)
66-
}
67-
title, err := s.aiClient.GetConversationTitle(ctx, protoMessages)
68-
if err != nil {
69-
s.logger.Error("Failed to get conversation title", "error", err, "conversationID", conversation.ID.Hex())
70-
return
71-
}
72-
conversation.Title = title
73-
if err := s.chatService.UpdateConversation(conversation); err != nil {
74-
s.logger.Error("Failed to update conversation with new title", "error", err, "conversationID", conversation.ID.Hex())
75-
return
76-
}
77-
}()
78-
}
79-
80-
// The final conversation object is NOT returned
81-
return nil
22+
return s.sendStreamError(stream, errors.New("Due to some technical problem from LLM providers, we are trying to bring the service back. Please retry later."))
8223
}

internal/services/toolkit/client/client.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,8 @@ func CheckOpenAIWorks(oaiClient openai.Client, logger *logger.Logger) {
9696
Model: openai.ChatModelGPT4o,
9797
})
9898
if err != nil {
99-
logger.Fatalf("[AI Client] openai client does not work: %v", err)
99+
logger.Errorf("[AI Client] openai client does not work: %v", err)
100+
return
100101
}
101102
logger.Info("[AI Client] openai client works", "response", chatCompletion.Choices[0].Message.Content)
102103
}

0 commit comments

Comments
 (0)