Skip to content

java.sql.SQLException: No value specified for parameter 2 #3157

@Boone1997

Description

@Boone1997

版本号: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个参数

Image Image Image

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions