Class OllamaLlmClient

java.lang.Object
org.codelibs.fess.llm.AbstractLlmClient
org.codelibs.fess.llm.ollama.OllamaLlmClient
All Implemented Interfaces:
LlmClient

public class OllamaLlmClient extends AbstractLlmClient
LLM client implementation for Ollama. Ollama provides a local LLM server that can run various models like Llama, Mistral, etc. on your own hardware.
See Also:
  • Field Details

  • Constructor Details

    • OllamaLlmClient

      public OllamaLlmClient()
      Default constructor.
  • Method Details

    • getName

      public String getName()
      Description copied from interface: LlmClient
      Returns the name of this LLM client.
      Returns:
      the client name (e.g., "ollama", "openai", "gemini")
    • checkAvailabilityNow

      protected boolean checkAvailabilityNow()
      Description copied from class: AbstractLlmClient
      Performs the actual availability check against the LLM provider.
      Specified by:
      checkAvailabilityNow in class AbstractLlmClient
      Returns:
      true if the provider is available
    • isModelAvailable

      protected boolean isModelAvailable(String responseBody)
      Checks if the configured model is available in Ollama.
      Parameters:
      responseBody - the response body from /api/tags endpoint
      Returns:
      true if the configured model is available
    • chat

      public LlmChatResponse chat(LlmChatRequest request)
      Description copied from interface: LlmClient
      Performs a chat completion request.
      Parameters:
      request - the chat request containing messages and parameters
      Returns:
      the chat response from the LLM
    • streamChat

      public void streamChat(LlmChatRequest request, LlmStreamCallback callback)
      Description copied from interface: LlmClient
      Performs a streaming chat completion request. The callback is invoked for each chunk of the response.
      Parameters:
      request - the chat request containing messages and parameters
      callback - the callback to receive streaming chunks
    • buildRequestBody

      protected Map<String,Object> buildRequestBody(LlmChatRequest request, boolean stream)
      Builds the request body for the Ollama API.
      Parameters:
      request - the chat request
      stream - whether to enable streaming
      Returns:
      the request body as a map
    • convertMessage

      protected Map<String,String> convertMessage(LlmMessage message)
      Converts an LlmMessage to a map for the API request.
      Parameters:
      message - the message to convert
      Returns:
      the message as a map
    • getApiUrl

      protected String getApiUrl()
      Gets the Ollama API URL.
      Returns:
      the API URL
    • getModel

      protected String getModel()
      Description copied from class: AbstractLlmClient
      Gets the model name.
      Specified by:
      getModel in class AbstractLlmClient
      Returns:
      the model name
    • getTimeout

      protected int getTimeout()
      Description copied from class: AbstractLlmClient
      Gets the request timeout in milliseconds.
      Specified by:
      getTimeout in class AbstractLlmClient
      Returns:
      the timeout in milliseconds
    • getIntentDetectionMaxTokens

      protected int getIntentDetectionMaxTokens()
      Description copied from class: AbstractLlmClient
      Gets the maximum tokens for intent detection.
      Overrides:
      getIntentDetectionMaxTokens in class AbstractLlmClient
      Returns:
      the maximum tokens for intent detection
    • getEvaluationMaxTokens

      protected int getEvaluationMaxTokens()
      Description copied from class: AbstractLlmClient
      Gets the maximum tokens for result evaluation.
      Overrides:
      getEvaluationMaxTokens in class AbstractLlmClient
      Returns:
      the maximum tokens for result evaluation