From 2637fcc7ccb93f68c416a33c73b6587928c9f434 Mon Sep 17 00:00:00 2001 From: Sean Sube Date: Sun, 19 May 2024 13:08:34 -0500 Subject: [PATCH] start dev guide --- README.md | 28 ---------------------------- docs/dev.md | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+), 28 deletions(-) create mode 100644 docs/dev.md diff --git a/README.md b/README.md index bf4cf0f..e2a07ec 100644 --- a/README.md +++ b/README.md @@ -26,9 +26,6 @@ captivate and engage players' imaginations. - [Contributing](#contributing) - [Support and Community](#support-and-community) - [License](#license) - - [TODOs](#todos) - - [Things That Are Bad](#things-that-are-bad) - - [Things That Are Good](#things-that-are-good) ## Features @@ -145,11 +142,6 @@ world, influencing the behavior of the language models. For a detailed guide on how to use TaleWeave AI, customize adventures, and integrate with Discord and web browsers, please refer to our [Documentation](./docs). This guide includes comprehensive instructions on: -- **Setting up your first adventure:** Learn how to create and launch your own story. -- **Customizing characters:** Instructions on how to personalize AI and human characters. -- **Advanced features:** Explore the more complex functionalities of TaleWeave AI, like AI behavior tweaking and - interactive scenario creation. - ## Contributing TaleWeave AI is a community-driven project, and we welcome contributions of all kinds. If you're interested in improving @@ -163,23 +155,3 @@ developers. Click here to join: [TaleWeave AI Discord Community](#) ## License TaleWeave AI is released under the MIT License. See the [LICENSE](./LICENSE) file for more details. - -## TODOs - -- figure out the human input syntax for actions -- make an admin panel in web UI -- store long-term memory for actors in a vector DB (RAG and all that) -- generate and simulate should probably be async - -### Things That Are Bad - -1. Why are the `generate` and `simulate` functions not async? - 1. Because I had written them before I realized they should be -2. Why is the web client in Typescript and React? - 1. Because I have a template for that and it was easy to set up - -### Things That Are Good - -1. The system is largely event-driven -2. Each server or bot has its own thread (for error handling) -3. Remote players can be implemented with any client, since they use a queue diff --git a/docs/dev.md b/docs/dev.md new file mode 100644 index 0000000..8309fc3 --- /dev/null +++ b/docs/dev.md @@ -0,0 +1,49 @@ +# Dev Guide + +## Contents + +- [Dev Guide](#dev-guide) + - [Contents](#contents) + - [Configuration](#configuration) + - [Why so many configuration sources?](#why-so-many-configuration-sources) + - [Engine Notes](#engine-notes) + - [FAQ](#faq) + - [TODOs](#todos) + +## Configuration + +Configuration is provided through the `.env` file and command-line arguments. The `--config` argument loads +additional configuration from a YAML or JSON file. + +### Why so many configuration sources? + +- The `.env` file contains secrets and service configuration that may need to change as part of the deployment + - This includes the Discord bot token and the Comfy and Ollama server URLs +- The command line arguments contain runtime configuration that may change with each run + - This includes the world save file and world prompt +- The `--config` file contains configuration that is too verbose or complex for the other two + - This includes the checkpoints and sizes to be used for image generation + +## Engine Notes + +- The system is largely event-driven +- Each server or bot has its own thread (for error handling) +- Remote players can be implemented with any client, since they use a queue + +## FAQ + +1. Why are the `generate` and `simulate` functions not async? + - Because I had written them before I realized they should be +2. Why is the web client in Typescript and React? + - Because I have a template for that and it was easy to set up +3. Why does the web client use MUI? + - Same as #2, it was easy to set up and use +4. Will the messages by localized? + - Localization is a planned feature, but planned features should not be included in the readme + +## TODOs + +- figure out the human input syntax for actions +- make an admin panel in web UI +- store long-term memory for actors in a vector DB (RAG and all that) +- generate and simulate should probably be async