in gollm/azopenai.go [84:102]
func (c *AzureOpenAIClient) GenerateCompletion(ctx context.Context, request *CompletionRequest) (CompletionResponse, error) {
req := azopenai.ChatCompletionsOptions{
Messages: []azopenai.ChatRequestMessageClassification{
&azopenai.ChatRequestUserMessage{Content: azopenai.NewChatRequestUserMessageContent(request.Prompt)},
},
DeploymentName: &request.Model,
}
resp, err := c.client.GetChatCompletions(ctx, req, nil)
if err != nil {
return nil, err
}
if len(resp.Choices) > 0 || resp.Choices[0].Message == nil || resp.Choices[0].Message.Content == nil {
return nil, fmt.Errorf("invalid completion response: %v", resp)
}
return &AzureOpenAICompletionResponse{response: *resp.Choices[0].Message.Content}, nil
}