From c5c53c056e254f718626dec773c3c93aed9103a4 Mon Sep 17 00:00:00 2001 From: vegu-ai-tools <152010387+vegu-ai-tools@users.noreply.github.com> Date: Fri, 26 Jan 2024 13:29:21 +0200 Subject: [PATCH] readme updates --- README.md | 41 +++++++++++++++------------ docs/img/0.18.0/openai-api-key-1.png | Bin 0 -> 5779 bytes docs/img/0.18.0/openai-api-key-2.png | Bin 0 -> 24655 bytes docs/img/0.18.0/openai-api-key-3.png | Bin 0 -> 4834 bytes 4 files changed, 23 insertions(+), 18 deletions(-) create mode 100644 docs/img/0.18.0/openai-api-key-1.png create mode 100644 docs/img/0.18.0/openai-api-key-2.png create mode 100644 docs/img/0.18.0/openai-api-key-3.png diff --git a/README.md b/README.md index 62982ba3..3962ce1f 100644 --- a/README.md +++ b/README.md @@ -7,13 +7,16 @@ Allows you to play roleplay scenarios with large language models. |------------------------------------------|------------------------------------------| |![Screenshot 1](docs/img/0.17.0/ss-4.png)|![Screenshot 2](docs/img/0.17.0/ss-3.png)| -> :warning: **It does not run any large language models itself but relies on existing APIs. Currently supports OpenAI, text-generation-webui and LMStudio.** +> :warning: **It does not run any large language models itself but relies on existing APIs. Currently supports OpenAI, text-generation-webui and LMStudio. 0.18.0 also adds support for generic OpenAI api implementations, but generation quality on that will vary.** This means you need to either have: - an [OpenAI](https://platform.openai.com/overview) api key -- OR setup local (or remote via runpod) LLM inference via one of these options: +- setup local (or remote via runpod) LLM inference via: - [oobabooga/text-generation-webui](https://github.com/oobabooga/text-generation-webui) - [LMStudio](https://lmstudio.ai/) +- Any other OpenAI api implementation that implements the v1/completions endpoint + - tested llamacpp with the `api_like_OAI.py` wrapper + - let me know if you have tested any other implementations and they failed / worked or landed somewhere in between ## Current features @@ -35,6 +38,7 @@ This means you need to either have: - Automatically keep track and reinforce selected character and world truths / states. - narrative tools - creative tools + - manage multiple NPCs - AI backed character creation with template support (jinja2) - AI backed scenario creation - context managegement @@ -93,18 +97,7 @@ There is also a [troubleshooting guide](docs/troubleshoot.md) that might help. 1. Start the backend: `python src/talemate/server/run.py runserver --host 0.0.0.0 --port 5050`. 1. Open a new terminal, navigate to the `talemate_frontend` directory, and start the frontend server by running `npm run serve`. -## Configuration - -### OpenAI - -To set your openai api key, open `config.yaml` in any text editor and uncomment / add - -```yaml -openai: - api_key: sk-my-api-key-goes-here -``` - -You will need to restart the backend for this change to take effect. +## Other Configuration ### RunPod @@ -121,10 +114,10 @@ Once the api key is set Pods loaded from text-generation-webui templates (or the **ATTENTION**: Talemate is not a suitable for way for you to determine whether your pod is currently running or not. **Always** check the runpod dashboard to see if your pod is running or not. ## Recommended Models -(as of2023.10.25) -Any of the top models in any of the size classes here should work well: -https://www.reddit.com/r/LocalLLaMA/comments/17fhp9k/huge_llm_comparisontest_39_models_tested_7b70b/ +Any of the top models in any of the size classes here should work well (i wouldn't recommend going lower than 7B): + +https://www.reddit.com/r/LocalLLaMA/comments/18yp9u4/llm_comparisontest_api_edition_gpt4_vs_gemini_vs/ ## Connecting to an LLM @@ -146,7 +139,19 @@ If you want to add an OpenAI client, just change the client type and select the ![Add client modal](docs/img/add-client-modal-openai.png) -### Ready to go +If you are setting this up for the first time, you should now see the client, but it will have a red dot next to it, stating that it requires an API key. + +![OpenAI API Key missing](docs/img/0.18.0/openai-api-key-1.png) + +Click the `SET API KEY` button. This will open a modal where you can enter your API key. + +![OpenAI API Key missing](docs/img/0.18.0/openai-api-key-2.png) + +Click `Save` and after a moment the client should have a green dot next to it, indicating that it is ready to go. + +![OpenAI API Key set](docs/img/0.18.0/openai-api-key-3.png) + +## Ready to go You will know you are good to go when the client and all the agents have a green dot next to them. diff --git a/docs/img/0.18.0/openai-api-key-1.png b/docs/img/0.18.0/openai-api-key-1.png new file mode 100644 index 0000000000000000000000000000000000000000..3b7c9ec854839d311139d64cc76ba3a423d562ab GIT binary patch literal 5779 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 literal 0 HcmV?d00001 diff --git a/docs/img/0.18.0/openai-api-key-2.png b/docs/img/0.18.0/openai-api-key-2.png new file mode 100644 index 0000000000000000000000000000000000000000..9737e36d99dc0a6f4ba270bfa04c45a7b374d68c GIT binary patch literal 24655 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

S6wSEM|4a&iL7$faKGf5=-ep3!bqWKcBH3 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 literal 0 HcmV?d00001