Class OpenAIServiceSettings

java.lang.Object
co.elastic.clients.elasticsearch.inference.OpenAIServiceSettings
All Implemented Interfaces:
JsonpSerializable

@JsonpDeserializable public class OpenAIServiceSettings extends Object implements JsonpSerializable
See Also:
  • Field Details

  • Method Details

    • of

    • apiKey

      @Nullable public final String apiKey()
      A valid API key of your OpenAI account. You can find your OpenAI API keys in your OpenAI account under the API keys section.

      IMPORTANT: You must specify either api_key or client_secret. If you do not provide one or you provide more than one of them, you will receive an error when you try to create your endpoint.

      API name: api_key

    • clientId

      @Nullable public final String clientId()
      For OAuth 2.0 authorization using the client credentials grant flow. The application ID that's assigned to your app.

      IMPORTANT: To configure OAuth 2.0, you must specify client_id, scopes, token_url, and client_secret together. If one of the fields is missing, you will receive an error when you try to create your endpoint.

      API name: client_id

    • clientSecret

      @Nullable public final String clientSecret()
      For OAuth 2.0 authorization using the client credentials grant flow. The application secret that you created for your app.

      IMPORTANT: You must specify either api_key or client_secret. If you do not provide one or you provide more than one of them, you will receive an error when you try to create your endpoint.

      IMPORTANT: To configure OAuth 2.0, you must specify client_id, scopes, token_url, and client_secret together. If one of the fields is missing, you will receive an error when you try to create your endpoint.

      API name: client_secret

    • dimensions

      @Nullable public final Integer dimensions()
      For a text_embedding or embedding task, the number of dimensions the resulting output embeddings should have. It is supported only in text-embedding-3 and later models. If it is not set, the OpenAI defined default for the model is used.

      API name: dimensions

    • modelId

      public final String modelId()
      Required - The name of the model to use for the inference task. Refer to the OpenAI documentation for the list of available text embedding models.

      API name: model_id

    • organizationId

      @Nullable public final String organizationId()
      The unique identifier for your organization. You can find the Organization ID in your OpenAI account under Settings > Organizations.

      API name: organization_id

    • rateLimit

      @Nullable public final RateLimitSetting rateLimit()
      This setting helps to minimize the number of rate limit errors returned from OpenAI. The openai service sets a default number of requests allowed per minute depending on the task type. For text_embedding and embedding, it is set to 3000. For completion and chat_completion, it is set to 500.

      API name: rate_limit

    • scopes

      public final List<String> scopes()
      For OAuth 2.0 authorization using the client credentials grant flow. The resource identifier of the resource you want. For example:
       "scopes": [
         "scope1",
         "scope2"
       ]
       
       

      IMPORTANT: To configure OAuth 2.0, you must specify client_id, scopes, token_url, and client_secret together. If one of the fields is missing, you will receive an error when you try to create your endpoint.

      API name: scopes

    • similarity

      @Nullable public final OpenAISimilarityType similarity()
      For a text_embedding or embedding task, the similarity measure. One of cosine, dot_product, l2_norm. Defaults to dot_product.

      API name: similarity

    • tokenUrl

      @Nullable public final String tokenUrl()
      For OAuth 2.0 authorization using the client credentials grant flow. An OAuth2 token endpoint where Elasticsearch sends a request to exchange client credentials for an access token.

      IMPORTANT: To configure OAuth 2.0, you must specify client_id, scopes, token_url, and client_secret together. If one of the fields is missing, you will receive an error when you try to create your endpoint.

      API name: token_url

    • url

      @Nullable public final String url()
      The URL endpoint to use for the requests. It can be changed for testing purposes. Default value is https://api.openai.com/v1/embeddings for a text_embedding or embedding task, https://api.openai.com/v1/chat/completions for a completion or chat_completion task.

      API name: url

    • serialize

      public void serialize(jakarta.json.stream.JsonGenerator generator, JsonpMapper mapper)
      Serialize this object to JSON.
      Specified by:
      serialize in interface JsonpSerializable
    • serializeInternal

      protected void serializeInternal(jakarta.json.stream.JsonGenerator generator, JsonpMapper mapper)
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • rebuild

      Returns:
      New OpenAIServiceSettings.Builder initialized with field values of this instance
    • setupOpenAIServiceSettingsDeserializer

      protected static void setupOpenAIServiceSettingsDeserializer(ObjectDeserializer<OpenAIServiceSettings.Builder> op)