When I use the builder method of ChatModel to build the model, I get a 400 error because I don't know the model parameters.
Is this how it's supposed to be designed?
I see openai docs: https://docs.spring.io/spring-ai/reference/api/chat/openai-chat.html#_custom_api_key_configuration
@GetMapping("/call/openai")
public String call() {
OpenAiChatModel chatModel = OpenAiChatModel.builder()
.openAiApi(OpenAiApi.builder()
.apiKey("sk-xxxxx")
.baseUrl("https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions")
.build()
).defaultOptions(OpenAiChatOptions.builder()
.temperature(0.7)
.maxTokens(1000)
.build()
).build();
return chatModel.call("hi");
}
log:
org.springframework.ai.retry.NonTransientAiException: 400 - {"error":{"message":"you must provide a model parameter. ","type":"invalid_request_error","param":null,"code":null},"request_id":"c39eba3c-2766-473c-a4c2-46c73d3470ee"}
at org.springframework.ai.retry.RetryUtils$1.handleError(RetryUtils.java:73) ~[spring-ai-retry-1.1.0.jar:1.1.0]
at org.springframework.ai.retry.RetryUtils$1.handleError(RetryUtils.java:57) ~[spring-ai-retry-1.1.0.jar:1.1.0]
at org.springframework.web.client.StatusHandler.lambda$fromErrorHandler$1(StatusHandler.java:71) ~[spring-web-6.2.6.jar:6.2.6]
Comment From: yuluo-yx
maybe the options parameter should have a default value?
https://github.com/spring-projects/spring-ai/blob/89a3b32e5ee53238c86cb422db04edeadc9af882/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/OpenAiChatOptions.java#L68