From 05d4a3115664704f4abbe844ca89fb91ba5366d4 Mon Sep 17 00:00:00 2001 From: Ruidy Date: Sat, 9 May 2026 17:01:29 +0200 Subject: [PATCH] fix(EX-0000): use chat completions API for DeepSeek DeepSeek does not support the /responses endpoint. Switch to /v1/chat/completions which is compatible. --- internal/driver/parser/client.go | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/internal/driver/parser/client.go b/internal/driver/parser/client.go index 3675834..e9bd165 100644 --- a/internal/driver/parser/client.go +++ b/internal/driver/parser/client.go @@ -10,7 +10,7 @@ import ( "github.com/openai/openai-go" "github.com/openai/openai-go/option" - "github.com/openai/openai-go/responses" + "github.com/openai/openai-go/shared" "github.com/rjNemo/rentease/internal/service/booking" ) @@ -74,11 +74,15 @@ func (p *BookingAgentParser) Parse(rawContent string) (*booking.Booking, error) ctx := context.Background() - prompt := p.systemPrompt + "\n" + rawContent - - resp, err := p.llmClient.Responses.New(ctx, responses.ResponseNewParams{ - Input: responses.ResponseNewParamsInputUnion{OfString: openai.String(prompt)}, + resp, err := p.llmClient.Chat.Completions.New(ctx, openai.ChatCompletionNewParams{ Model: p.model, + Messages: []openai.ChatCompletionMessageParamUnion{ + openai.SystemMessage(p.systemPrompt), + openai.UserMessage(rawContent), + }, + ResponseFormat: openai.ChatCompletionNewParamsResponseFormatUnion{ + OfJSONObject: &shared.ResponseFormatJSONObjectParam{}, + }, }) if err != nil { return nil, fmt.Errorf("error sending request to DeepSeek: %w", err) @@ -88,8 +92,7 @@ func (p *BookingAgentParser) Parse(rawContent string) (*booking.Booking, error) Data ResponseData `json:"data"` } - // The LLM is instructed to return the JSON for ResponseData directly, so parse it - err = json.Unmarshal([]byte(resp.OutputText()), &r) + err = json.Unmarshal([]byte(resp.Choices[0].Message.Content), &r) if err != nil { return nil, fmt.Errorf("error decoding response from DeepSeek: %w", err) }