-
Notifications
You must be signed in to change notification settings - Fork 3
Home
Welcome to the Pantella documentation!
This documentation is intended to be written from the perspective that you are not familiar with popular LLM software tropes and that instead you're typically a Skyrim modder or mod author. If you are already familiar with LLMs and developing for them, you may find some of the information here to be redundant. If any of the information presented is too technical or not technical enough, please let me know in the #general channel on the Pantella Discord server.
This documentation is a work in progress and will be updated as time goes on. If you have any questions, feel free to ask in the #general channel on the Discord. Parts of this has been generated by LLMs, if you notice any errors, please let me know and they'll be corrected.
-
Modules - Pantella is broken up into several main components that are loaded during start up by module loaders. These components are:
- Behavior Managers - Behavior managers control how behaviors operate when NPCs trigger them. They are responsible for loading the behaviors from the behaviors directory and the behaviors from the addons directory. They are also responsible for evaluating the sentence for behaviors that should run, evaluating the sentence for behaviors that should run before the sentence is spoken, evaluating the sentence for behaviors that should run after the sentence is spoken, getting a summary of all behaviors and what they do, getting a list of all behavior memories, rendering a behavior, and running behaviors that are triggered by the player.
- Behaviors - Behaviors are the actions that are triggered by the characters in the game. They are responsible for controlling the behaviors of the characters in games by allowing the LLM to trigger behaviors that create game events, or trigger in game scripts. Behaviors can be added in addons, the ones in the main directory are the default behaviors that should always be present.
- Character Generators - Character generators generate characters for the games.
- Character Managers - Character managers 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 - Conversation managers manage the conversations in games. They are responsible for controlling the flow of the conversation.
- Game Interfaces - Game interfaces 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
- Inference Engines - Inference engines 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 - Memory managers 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 - Speech to text engines convert the player's speech to text. faster-whisper, etc.
- Thought Processes - Thought processes 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 - Tokenizers 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 - Text to speech engines convert the text to speech. xVASynth, xTTS, StyleTTS 2, etc.
- Addons - Addons are a way to extend Pantella's functionality. They can include new behaviors, new game events, integrations for addon mods, new voice samples, and more.
- Prompt Style Info - Prompt style info is a way to customize the way that Pantella generates prompts for the player.
- Characters - Characters are the entities that are controlled by the player in the game. They can be controlled by the player, by the game, or by the LLM.
- Character Database - The character database is a database that loads all the information about the characters in the game that is available for the LLM to use.
- Characters Manager - The characters manager is a class that manages the characters in the game. It is 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.
- Configuration - The configuration file is a JSON file that contains all the settings for the game. It is used to configure the game and the LLM.