Class OpenAIChatBuilderImpl

java.lang.Object
net.stoerr.ai.aigenpipeline.framework.chat.OpenAIChatBuilderImpl
All Implemented Interfaces:
AIChatBuilder

public class OpenAIChatBuilderImpl extends Object implements AIChatBuilder
Implementation of AIChatBuilder for creating and executing OpenAI chat completion requests. That does work for interfaces similar to OpenAI chat completion - e.g. Anthropic Claude , local models with LM Studio , probably more.
See Also:
  • "https://platform.openai.com/docs/api-reference/chat"
  • "https://docs.anthropic.com/claude/reference/messages_post"
  • Field Details

  • Constructor Details

    • OpenAIChatBuilderImpl

      public OpenAIChatBuilderImpl()
  • Method Details

    • url

      public AIChatBuilder url(String url)
      Description copied from interface: AIChatBuilder
      Sets the URL for the chat completion request.
      Specified by:
      url in interface AIChatBuilder
      Parameters:
      url - The URL.
      Returns:
      The builder instance for chaining.
    • key

      public AIChatBuilder key(String key)
      Description copied from interface: AIChatBuilder
      Sets the API key for the chat completion request.
      Specified by:
      key in interface AIChatBuilder
      Parameters:
      key - The API key.
      Returns:
      The builder instance for chaining.
    • maxTokens

      public AIChatBuilder maxTokens(int maxTokens)
      Description copied from interface: AIChatBuilder
      Sets the maximum number of tokens the completion can use.
      Specified by:
      maxTokens in interface AIChatBuilder
      Parameters:
      maxTokens - The maximum number of tokens.
      Returns:
      The builder instance for chaining.
    • model

      public AIChatBuilder model(String model)
      Description copied from interface: AIChatBuilder
      Sets the AI model to be used for the chat completion.
      Specified by:
      model in interface AIChatBuilder
      Parameters:
      model - The model name.
      Returns:
      The builder instance for chaining.
    • systemMsg

      public AIChatBuilder systemMsg(String text)
      Description copied from interface: AIChatBuilder
      Adds a system message to the chat.
      Specified by:
      systemMsg in interface AIChatBuilder
      Parameters:
      text - The text of the message.
      Returns:
      The builder instance for chaining.
    • userMsg

      public AIChatBuilder userMsg(String text)
      Description copied from interface: AIChatBuilder
      Adds a user message to the chat.
      Specified by:
      userMsg in interface AIChatBuilder
      Parameters:
      text - The text of the message.
      Returns:
      The builder instance for chaining.
    • assistantMsg

      public AIChatBuilder assistantMsg(String text)
      Description copied from interface: AIChatBuilder
      Adds an assistant message to the chat.
      Specified by:
      assistantMsg in interface AIChatBuilder
      Parameters:
      text - The text of the message.
      Returns:
      The builder instance for chaining.
    • determineApiKey

      protected String determineApiKey()
      This returns apiKey if given, otherwise resorts to environment variables depending on the url
    • isClaude

      protected boolean isClaude()
    • isOpenAI

      protected boolean isOpenAI()
    • execute

      public String execute()
      Description copied from interface: AIChatBuilder
      Executes the chat completion request and returns the response.
      Specified by:
      execute in interface AIChatBuilder
      Returns:
      The chat completion response.
    • toJson

      public String toJson()
      Description copied from interface: AIChatBuilder
      Converts the chat completion request to a JSON string.
      Specified by:
      toJson in interface AIChatBuilder
      Returns:
      The JSON string.
    • extractResponse

      protected String extractResponse(String json)