-
Notifications
You must be signed in to change notification settings - Fork 2k
Closed
Description
版本号:1.0.0-SNAPSHOT
maven:
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-openai</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-ollama</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-model-chat-memory-repository-jdbc</artifactId>
</dependency>
错误描述:java.sql.SQLException: No value specified for parameter 2
我的代码:
@RequestMapping(value = "/chat")
public String test(String chatId,String message) {
ChatRequest chatRequest = ChatRequest.builder()
.stream(false)
.message(message)
.chatId(chatId)
.chatModelId("1859570229117022214")
.temperature(0.8)
.userId("123")
.build();
ChatModelDTO chatModelDTO = chatModelService.getById(chatRequest.getChatModelId());
OpenAiChatModel openAiChatModel = OpenAiChatModel.builder()
.openAiApi(OpenAiApi.builder()
.apiKey(chatModelDTO.getApiKey())
.baseUrl(chatModelDTO.getApiHost())
.build())
.defaultOptions(OpenAiChatOptions.builder()
.model(chatModelDTO.getModelName())
.temperature(chatRequest.getTemperature())
.maxTokens(chatRequest.getMaxTokens())
.build())
.build();
DataSource dataSource = DataSourceBuilder.create()
.url(dataSourceProperties.getUrl())
.username(dataSourceProperties.getUsername())
.password(dataSourceProperties.getPassword())
.build();
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
ChatMemoryRepository chatMemoryRepository = JdbcChatMemoryRepository.builder()
.jdbcTemplate(jdbcTemplate)
.dialect(new MysqlChatMemoryRepositoryDialect())
.build();
ChatMemory chatMemory = MessageWindowChatMemory.builder()
.chatMemoryRepository(chatMemoryRepository)
.maxMessages(chatRequest.getMaxMessage())
.build();
ChatClient client = ChatClient.builder(openAiChatModel)
.defaultAdvisors(MessageChatMemoryAdvisor.builder(chatMemory)
.conversationId(chatRequest.getChatId())
.order(chatRequest.getMaxMessage())
.build())
.defaultSystem("please speak chinses。")
.build();
return client.prompt().user(chatRequest.getMessage())
.call().content();
}
查看源代码发现:只传了一个参数,但是sql用到了2个参数
