diff --git a/README.md b/README.md index 73acb70..64cd446 100644 --- a/README.md +++ b/README.md @@ -1,60 +1,55 @@ # LLM Connect -A Minetest mod that connects the game to a Large Language Model (LLM) using an OpenAI-compatible API endpoint. +A Luanti (formerly Minetest) mod that connects the game to a Large Language Model (LLM) using an OpenAI-compatible API endpoint. ## Purpose -This mod allows players to interact with an LLM directly within the Minetest chat. -It sends the player's chat message along with relevant in-game context—such as server info, installed mods, and available materials—to a remote API endpoint. +This mod allows players to interact with an LLM directly within the Luanti chat. +It sends the player's chat message along with relevant in-game context—such as server info, installed mods, and available materials—to a remote API endpoint. This enables the LLM to provide highly specific and helpful answers, e.g., on crafting items or locating resources in-game. - - ## Features -- **In-game AI Chat:** Send prompts to the LLM using a simple chat command. -- **Context-Aware:** Automatically includes crucial server and material data in the prompts. -- **Configurable:** API key, endpoint URL, and model can be set via chat commands or the in-game menu. -- **Conversation History:** Maintains short-term conversation history for more relevant responses. -- **Robust Token Handling:** Supports sending `max_tokens` as an integer to avoid floating-point issues; optionally configurable via `settingtypes.txt` or chat commands. +- **In-game AI Chat:** Send prompts to the LLM using a simple chat command. - **Context-Aware & Granular:** Automatically includes crucial server and material data in the prompts. **The inclusion of context elements (server info, mod list, materials, position) is now fully configurable via settings.** - **Configurable:** API key, endpoint URL, model, and all **context components** can be set via chat commands or the in-game menu. - **Conversation History:** Maintains short-term conversation history for more relevant responses. - **Robust Token Handling:** Supports sending `max_tokens` as an integer to avoid floating-point issues; optionally configurable via `settingtypes.txt` or chat commands. ## Implementation -- Built with Minetest's HTTP API for sending requests to an external, OpenAI-compatible endpoint. -- Structured to be understandable and extendable for new contributors. -- Version: **0.7.7** +- Built with Luanti's HTTP API for sending requests to an external, OpenAI-compatible endpoint. - Structured to be understandable and extendable for new contributors. +- Version: **0.7.8** ## Requirements -- A running Minetest server. -- An API key from a supported service. -- Access to external AI services (online and/or offline). - -## Supported API Endpoints +- A running Luanti server. +- An API key from a supported service. ## Supported API Endpoints Successfully tested with: -- Open WebUI -- LM Studio -- Mistral AI -- OpenAI API +- Open WebUI +- LM Studio +- Mistral AI +- OpenAI API - Ollama and LocalAI (integer `max_tokens` ensures compatibility) ## Commands -- `/llm_setkey [url] [model]` – Sets the API key, endpoint URL, and model. -- `/llm_setmodel ` – Sets the LLM model to be used. +- `/llm_setkey [url] [model]` – Sets the API key, URL, and model for the LLM. - `/llm_setmodel ` – Sets the LLM model to be used. - `/llm_set_endpoint ` – Sets the API endpoint URL. - `/llm_set_context [player]` – Sets the maximum context length for a player or all players. -- `/llm_reset` – Resets the conversation history for the current player. -- `/llm ` – Sends a message to the LLM. -- `/llm_integer` – Forces `max_tokens` to be sent as an integer (default). +- `/llm_reset` – Resets the conversation history and the cached metadata for the current player. +- `/llm ` – Sends a message to the LLM. - `/llm_integer` – Forces `max_tokens` to be sent as an integer (default). - `/llm_float` – Sends `max_tokens` as a float (optional, experimental). +**Context Control (Configurable via In-Game Settings):** +The following context elements can be individually toggled `ON`/`OFF` in the Luanti main menu: +* Send Server Info (`llm_context_send_server_info`) +* Send Mod List (`llm_context_send_mod_list`) +* Send Commands List (`llm_context_send_commands`) +* Send Player Position (`llm_context_send_player_pos`) +* Send Available Materials (`llm_context_send_materials`) + ## Potential for Expansion -- Add support for more API endpoints. -- Integrate with additional in-game events or data sources (player inventory, world data). +- Add support for more API endpoints. - Integrate with additional in-game events or data sources (player inventory, world data). - Improve error handling and performance. - Create a graphical user interface (formspec) for configuration instead of relying solely on chat commands. @@ -62,6 +57,6 @@ Successfully tested with: This project is in an early stage and welcomes contributions: -- Even small fixes help, especially with API integration, UI improvements, and performance tuning. -- Contributions from experienced developers are highly welcome. -- The goal is to build a robust, maintainable mod for the Minetest community. +- Even small fixes help, especially with API integration, UI improvements, and performance tuning. - Contributions from experienced developers are highly welcome. ``` + +