Skip to content

Report network error HTTP/1.1 header parser received no bytes when base url is configured as IP and port #4750

@cnzbq

Description

@cnzbq

Bug description
When spring.ai.openai.base-url is configured with the IP and port of the HTTP protocol, calling LLM will report HTTP/1.1 header parser received no bytes.

Image

Environment
SpringBoot: 3.5.7
spring-ai-bom: 1.0.3 or 1.1.0-M3
Java: Oracle OpenJDK 21.0.8 or Oracle OpenJDK 17.0.4

Steps to reproduce
Create a SpringBoot project, introduce Spring Ai dependencies, configure spring.ai.openai.base-url as an available IP address, and call the model.

Expected behavior
Normal response, not error

Minimal Complete Reproducible example

    <properties>
        <java.version>21</java.version>
        <spring-ai.version>1.0.3</spring-ai.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.ai</groupId>
            <artifactId>spring-ai-starter-model-openai</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.ai</groupId>
                <artifactId>spring-ai-bom</artifactId>
                <version>${spring-ai.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

spring.ai.openai.base-url=http://192.xxx.xx.xx:3000/api/
spring.ai.openai.api-key=xxxxxxxxxx

@SpringBootTest
public class ChatTest {

    @Autowired
    private OpenAiApi openAiApi;

    @Test
    void test() {
        OpenAiApi.ChatCompletionMessage chatCompletionMessage =
                new OpenAiApi.ChatCompletionMessage("Tell me a joke", OpenAiApi.ChatCompletionMessage.Role.USER);
        ResponseEntity<OpenAiApi.ChatCompletion> chatCompletionResponseEntity = this.openAiApi.chatCompletionEntity(
                new OpenAiApi.ChatCompletionRequest(List.of(chatCompletionMessage), null, (Double) null, false));

        System.out.println(chatCompletionResponseEntity.getBody());
    }
}

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions