Class Core

java.lang.Object
me.neurodock.core.Core

public class Core extends Object
The Main class for the System, responsible for managing the OllamaObject, tools, and the Ollama API.
  • Field Details

    • DATA

      public static String DATA
    • DATA_DIR

      public static File DATA_DIR
    • PLUGIN_DIRECTORY

      public static File PLUGIN_DIRECTORY
    • CACHE_DIRECTORY

      public static File CACHE_DIRECTORY
  • Constructor Details

    • Core

      public Core(@NotNull @NotNull PrintAdvanceMessageHandler printMessageHandler)
      Creates a new instance of Core with the provided PrintMessageHandler, defaulting the Ollama backend to localhost.
      Parameters:
      printMessageHandler - The PrintMessageHandler to use as the default output
    • Core

      public Core(@NotNull @NotNull PrintAdvanceMessageHandler printMessageHandler, @NotNull @NotNull String ollamaIP)
      Creates a new instance of Core with the provided PrintMessageHandler and a specific Ollama backend address.
      Parameters:
      printMessageHandler - The PrintMessageHandler to use as the default output
      ollamaIP - The IP or hostname of the Ollama backend
  • Method Details

    • setLogDirectory

      public static void setLogDirectory(String logDirectory)
    • setDataDirectory

      public static void setDataDirectory(String dataDirectory, boolean fullDirectory)
      Set the data directory in appropriate locations depending on the host OS, falling back to $WORKING_DIR/data
      Parameters:
      dataDirectory - the data directory to use
    • ensureDir

      public static void ensureDir(String path)
      Ensures that a directory exists at the given path, creating it if it does not.
      Parameters:
      path - The path of the directory to create
    • setOllamaObject

      public void setOllamaObject(OllamaObject ollamaObject)
      Sets the ollamaObject object to the provided argument, Also adds the memory base system. See setOllamaObjectNoMemory(OllamaObject) if you don't want to add memory functions
      Parameters:
      ollamaObject - The OllamaObject to use
    • setOllamaObjectNoMemory

      public void setOllamaObjectNoMemory(OllamaObject ollamaObject)
      Sets the ollamaObject object to the provided argument, Dose not add the base system for memory. see setOllamaObject(OllamaObject) if you want to add memory function
      Parameters:
      ollamaObject - The OllamaObject to use
    • addTool

      public void addTool(OllamaFunctionTool functionTool, String source)
      Adds a new tool to the System
      Parameters:
      functionTool - The tool to add
      source - The source of the tool
    • addTools

      public void addTools(OllamaFunctionTools tools)
      Adds a list of tools to the System
      Parameters:
      tools - The tools to add
    • getFuntionTools

      public ArrayList<Pair<OllamaFunctionTool, String>> getFuntionTools()
      Gets the list of tools added to the System
      Returns:
      The list of tools added to the System compressed as Pairs of the tool and the source
    • getOllamaObject

      public OllamaObject getOllamaObject()
      Gets the Ollama Object
      Returns:
      The Ollama Object
    • removeTool

      public void removeTool(String name)
      Removes a tool with a given name
      Parameters:
      name - The tool to remove
    • flushLog

      public static void flushLog()
      Flushes the log file
    • qurryOllama

      public CompletableFuture<org.json.JSONObject> qurryOllama()
      Sends the OllamaObject to Ollama
      Returns:
      The response from Ollama
    • handleResponse

      public void handleResponse(org.json.JSONObject response)
      Handles the response from Ollama. Processes tool calls, logs information, appends messages to the OllamaObject, and prints output to the user.
      Parameters:
      response - The response from Ollama
    • writeLog

      public static void writeLog(String message)
      Writes a message to the log file
      Parameters:
      message - The message to write
    • enablePlugins

      public void enablePlugins(File pluginDirectory)