Skip to content

Commit 9a0e46e

Browse files
committed
#153: Changed the interface of streaming chat request to pass ChatParams instead of the original Glide Chat Request
1 parent e5109be commit 9a0e46e

File tree

1 file changed

+8
-22
lines changed

1 file changed

+8
-22
lines changed

pkg/providers/openai/chat_stream.go

Lines changed: 8 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -141,9 +141,9 @@ func (c *Client) SupportChatStream() bool {
141141
return true
142142
}
143143

144-
func (c *Client) ChatStream(ctx context.Context, req *schemas.ChatStreamRequest) (clients.ChatStream, error) {
144+
func (c *Client) ChatStream(ctx context.Context, params *schemas.ChatParams) (clients.ChatStream, error) {
145145
// Create a new chat request
146-
httpRequest, err := c.makeStreamReq(ctx, req)
146+
httpRequest, err := c.makeStreamReq(ctx, params)
147147
if err != nil {
148148
return nil, err
149149
}
@@ -157,28 +157,14 @@ func (c *Client) ChatStream(ctx context.Context, req *schemas.ChatStreamRequest)
157157
), nil
158158
}
159159

160-
func (c *Client) createRequestFromStream(request *schemas.ChatStreamRequest) *ChatRequest {
160+
func (c *Client) makeStreamReq(ctx context.Context, params *schemas.ChatParams) (*http.Request, error) {
161161
// TODO: consider using objectpool to optimize memory allocation
162-
chatRequest := *c.chatRequestTemplate // hoping to get a copy of the template
162+
chatReq := *c.chatRequestTemplate // hoping to get a copy of the template
163+
chatReq.ApplyParams(params)
163164

164-
chatRequest.Messages = make([]ChatMessage, 0, len(request.MessageHistory)+1)
165+
chatReq.Stream = true
165166

166-
// Add items from messageHistory first and the new chat message last
167-
for _, message := range request.MessageHistory {
168-
chatRequest.Messages = append(chatRequest.Messages, ChatMessage{Role: message.Role, Content: message.Content})
169-
}
170-
171-
chatRequest.Messages = append(chatRequest.Messages, ChatMessage{Role: request.Message.Role, Content: request.Message.Content})
172-
173-
return &chatRequest
174-
}
175-
176-
func (c *Client) makeStreamReq(ctx context.Context, req *schemas.ChatStreamRequest) (*http.Request, error) {
177-
chatRequest := c.createRequestFromStream(req)
178-
179-
chatRequest.Stream = true
180-
181-
rawPayload, err := json.Marshal(chatRequest)
167+
rawPayload, err := json.Marshal(chatReq)
182168
if err != nil {
183169
return nil, fmt.Errorf("unable to marshal openAI chat stream request payload: %w", err)
184170
}
@@ -198,7 +184,7 @@ func (c *Client) makeStreamReq(ctx context.Context, req *schemas.ChatStreamReque
198184
c.logger.Debug(
199185
"Stream chat request",
200186
zap.String("chatURL", c.chatURL),
201-
zap.Any("payload", chatRequest),
187+
zap.Any("payload", chatReq),
202188
)
203189

204190
return request, nil

0 commit comments

Comments
 (0)