Skip to content

Modules

Pathos edited this page Jan 28, 2025 · 5 revisions

Pantella is broken up into several main components that are loaded during start up by module loaders. These components are:

  • Behavior Managers ./src/behavior_managers/: These control how behaviors operate when NPCs trigger them.
  • Behaviors ./src/behaviors/: These are the behaviors that are triggered by the characters in Pantella. They are responsible for controlling the behaviors of the characters in games. They can also be added in addons, the ones in the main directory are the default behaviors that should always be present.
  • Character Generators ./src/character_generators/: These generate characters for the games.
  • Character Managers ./src/character_managers/: These manage the characters in games. They are responsible for controlling the voice lines spoken by characters, is where their memory manager is located and how it's utilized and is where all the information about the character is loaded into when a character is loaded into a conversation.
  • Conversation Managers ./src/conversation_managers/: These manage the conversations in games. They are responsible for controlling the flow of the conversation.
  • Game Interfaces ./src/game_interfaces/: These are the interfaces that connect games to Pantella. They are responsible for communicating the generated conversation into the game and grabbing the player input from the game/from the transcriber.
  • Inference Engines ./src/inference_engines/: These are the engines that generate the responses to the player input. They are responsible for generating the responses to the player input. OpenAI API, Llama.cpp, transformers, etc.
  • Memory Managers ./src/memory_managers/: These manage the memory of the characters in games. They are responsible for storing the information about the character and how it's utilized.
  • Speech To Text ./src/stt_types/: These are the engines that convert the player's speech to text. faster-whisper, etc.
  • Thought Processes ./src/thought_processes/: These are the schemas that architect the thought processes of the characters in Pantella when using a CoT compatible model. They are responsible for controlling the thought processes of the characters in games.
  • Tokenizers ./src/tokenizers/: These are the tokenization processes that are used to tokenize the text input from the player. Token counts are used to estimate/calculate the length of a prompt before it's sent to the LLM. This is used to allocate budgets to which memories are available in context, which recent messages are available in context, etc.
  • Text To Speech ./src/tts_types/: These are the engines that convert the text to speech. xVASynth, xTTS, StyleTTS 2, etc.

Each of these components are imported at startup, but only one is in use at any point. You can set which ones are being loaded in the interface config for the game you're playing, or you can override it in your config.json file. The config.json file is located in the Pantella repository directory.

Clone this wiki locally