Class OpenAiClient.Builder<T extends OpenAiClient, B extends OpenAiClient.Builder<T,B>>

java.lang.Object
dev.langchain4j.model.openai.internal.OpenAiClient.Builder<T,B>
Direct Known Subclasses:
DefaultOpenAiClient.Builder
Enclosing class:
OpenAiClient

public abstract static class OpenAiClient.Builder<T extends OpenAiClient, B extends OpenAiClient.Builder<T,B>> extends Object
  • Field Details

    • httpClientBuilder

      public HttpClientBuilder httpClientBuilder
    • baseUrl

      public String baseUrl
    • organizationId

      public String organizationId
    • projectId

      public String projectId
    • apiKey

      public String apiKey
    • connectTimeout

      public Duration connectTimeout
    • readTimeout

      public Duration readTimeout
    • userAgent

      public String userAgent
    • logRequests

      public boolean logRequests
    • logResponses

      public boolean logResponses
    • logger

      public org.slf4j.Logger logger
    • customHeadersSupplier

      public Supplier<Map<String,String>> customHeadersSupplier
    • customQueryParams

      public Map<String,String> customQueryParams
  • Constructor Details

    • Builder

      public Builder()
  • Method Details

    • build

      public abstract T build()
    • httpClientBuilder

      public B httpClientBuilder(HttpClientBuilder httpClientBuilder)
    • baseUrl

      public B baseUrl(String baseUrl)
      Parameters:
      baseUrl - Base URL of OpenAI API. For example: "https://api.openai.com/v1/"
      Returns:
      builder
    • organizationId

      public B organizationId(String organizationId)
      Parameters:
      organizationId - The OpenAI Organization ID. More info here.
      Returns:
      builder
    • projectId

      public B projectId(String projectId)
      Parameters:
      projectId - The OpenAI Project ID. More info here.
      Returns:
      builder
    • apiKey

      public B apiKey(String apiKey)
      Parameters:
      apiKey - OpenAI API key. Will be injected in HTTP headers like this: "Authorization: Bearer ${apiKey}"
      Returns:
      builder
    • connectTimeout

      public B connectTimeout(Duration connectTimeout)
    • readTimeout

      public B readTimeout(Duration readTimeout)
    • userAgent

      public B userAgent(String userAgent)
    • logRequests

      public B logRequests(Boolean logRequests)
    • logger

      public B logger(org.slf4j.Logger logger)
    • logResponses

      public B logResponses(Boolean logResponses)
    • customHeaders

      public B customHeaders(Map<String,String> customHeaders)
      Custom headers to be added to each HTTP request.
      Parameters:
      customHeaders - a map of headers
      Returns:
      builder
    • customHeaders

      public B customHeaders(Supplier<Map<String,String>> customHeadersSupplier)
      A supplier for custom headers to be added to each HTTP request. The supplier is called before each request, allowing dynamic header values. For example, this is useful for OAuth2 tokens that expire and need refreshing.
      Parameters:
      customHeadersSupplier - a supplier that provides a map of headers
      Returns:
      builder
    • customQueryParams

      public B customQueryParams(Map<String,String> customQueryParams)
      Custom query parameters to be added to each HTTP request URL.
      Parameters:
      customQueryParams - a map of query parameters
      Returns:
      builder