From 57600e3526333974aa6e9edda0bb0206e949ee60 Mon Sep 17 00:00:00 2001 From: Simon Kelly Date: Wed, 11 Dec 2024 16:34:03 +0200 Subject: [PATCH 01/17] add plugins and reorg navigation a bit --- docs/{overview.md => about.md} | 4 ++ .../chatbot_types.md | 0 docs/concepts/index.md | 12 ++++ docs/{conceptual_guide => concepts}/llm.md | 0 .../prompt_variables.md | 0 .../source_material.md | 0 .../versioning.md | 0 docs/how-to/add_a_knowledge_base.md | 6 +- docs/how-to/index.md | 11 ++++ docs/index.md | 6 ++ mkdocs.yml | 33 +++++++++- uv.lock | 65 ++++++++++--------- 12 files changed, 102 insertions(+), 35 deletions(-) rename docs/{overview.md => about.md} (98%) rename docs/{conceptual_guide => concepts}/chatbot_types.md (100%) create mode 100644 docs/concepts/index.md rename docs/{conceptual_guide => concepts}/llm.md (100%) rename docs/{conceptual_guide => concepts}/prompt_variables.md (100%) rename docs/{conceptual_guide => concepts}/source_material.md (100%) rename docs/{conceptual_guide => concepts}/versioning.md (100%) create mode 100644 docs/how-to/index.md diff --git a/docs/overview.md b/docs/about.md similarity index 98% rename from docs/overview.md rename to docs/about.md index ff948d1..e073166 100644 --- a/docs/overview.md +++ b/docs/about.md @@ -1,3 +1,7 @@ +--- +hide: + - navigation +--- # Overview Dimagi is developing Open Chat Studio (OCS) as an easy-to-use, open source platform for rapidly prototyping and testing diff --git a/docs/conceptual_guide/chatbot_types.md b/docs/concepts/chatbot_types.md similarity index 100% rename from docs/conceptual_guide/chatbot_types.md rename to docs/concepts/chatbot_types.md diff --git a/docs/concepts/index.md b/docs/concepts/index.md new file mode 100644 index 0000000..76cfec2 --- /dev/null +++ b/docs/concepts/index.md @@ -0,0 +1,12 @@ +--- +title: Concepts +description: Conceptual Guide for Open Chat Studio +--- + +# Conceptual Guide + +This guide provides explanations of the key concepts behind the Open Chat Studio platform and AI applications more +broadly. + +The conceptual guide does not cover step-by-step instructions or specific examples — those are found in +the [How-to guides](../how-to/index.md). diff --git a/docs/conceptual_guide/llm.md b/docs/concepts/llm.md similarity index 100% rename from docs/conceptual_guide/llm.md rename to docs/concepts/llm.md diff --git a/docs/conceptual_guide/prompt_variables.md b/docs/concepts/prompt_variables.md similarity index 100% rename from docs/conceptual_guide/prompt_variables.md rename to docs/concepts/prompt_variables.md diff --git a/docs/conceptual_guide/source_material.md b/docs/concepts/source_material.md similarity index 100% rename from docs/conceptual_guide/source_material.md rename to docs/concepts/source_material.md diff --git a/docs/conceptual_guide/versioning.md b/docs/concepts/versioning.md similarity index 100% rename from docs/conceptual_guide/versioning.md rename to docs/concepts/versioning.md diff --git a/docs/how-to/add_a_knowledge_base.md b/docs/how-to/add_a_knowledge_base.md index d6e9a34..a97d2b7 100644 --- a/docs/how-to/add_a_knowledge_base.md +++ b/docs/how-to/add_a_knowledge_base.md @@ -29,8 +29,8 @@ To add knowldege to your assistant, you must upload files to serve as the source ### See also - [Source Material][source_material_concept] -[source_material_concept]: ../conceptual_guide/source_material.md -[prompt_variables_concept]: ../conceptual_guide/prompt_variables.md +[source_material_concept]: ../concepts/source_material.md +[prompt_variables_concept]: ../concepts/prompt_variables.md [assistants]: https://platform.openai.com/docs/assistants/overview [file_search]: https://platform.openai.com/docs/assistants/tools/file-search -[code_interpreter]: https://platform.openai.com/docs/assistants/tools/code-interpreter \ No newline at end of file +[code_interpreter]: https://platform.openai.com/docs/assistants/tools/code-interpreter diff --git a/docs/how-to/index.md b/docs/how-to/index.md new file mode 100644 index 0000000..6e5d89c --- /dev/null +++ b/docs/how-to/index.md @@ -0,0 +1,11 @@ +--- +title: How-to Guides +description: How to accomplish common tasks Open Chat Studio +--- + +# How-to Guides + +Here you’ll find answers to “How do I...?” types of questions. These guides are **goal-oriented** and concrete; they're +meant to help you complete a specific task. + +For conceptual explanations see the [Conceptual guide](../concepts/index.md). diff --git a/docs/index.md b/docs/index.md index 1ed48e9..24d8f15 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,3 +1,9 @@ +--- +hide: + - navigation + - toc +--- + # Open Chat Studio This is the home page for all documentation related to [Open Chat Studio](https://github.com/dimagi/open-chat-studio). diff --git a/mkdocs.yml b/mkdocs.yml index 2f83a6c..8c8ea86 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -1,9 +1,40 @@ site_name: Open Chat Studio Documentation +site_url: https://dimagi.github.io/open-chat-studio-docs/ theme: name: material + features: + - header.autohide + - navigation.expand + - navigation.footer + - navigation.indexes + - navigation.instant + - navigation.prune + - navigation.sections + - navigation.tabs + - navigation.tabs.sticky + - navigation.tracking + - navigation.top + - search.highlight + - search.share + - search.suggest + - toc.follow copyright: Copyright © 2024 Dimagi markdown_extensions: - admonition - pymdownx.details - - pymdownx.superfences \ No newline at end of file + - pymdownx.superfences + +nav: + - Home: index.md + - How-to Guides: + - how-to/index.md + - how-to/add_a_knowledge_base.md + - Concepts: + - concepts/index.md + - concepts/llm.md + - concepts/chatbot_types.md + - concepts/prompt_variables.md + - concepts/source_material.md + - concepts/versioning.md + - About: about.md diff --git a/uv.lock b/uv.lock index fe64c39..4db5fc2 100644 --- a/uv.lock +++ b/uv.lock @@ -1,7 +1,7 @@ version = 1 requires-python = ">=3.13" -[[distribution]] +[[package]] name = "babel" version = "2.16.0" source = { registry = "https://pypi.org/simple" } @@ -10,7 +10,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ed/20/bc79bc575ba2e2a7f70e8a1155618bb1301eaa5132a8271373a6903f73f8/babel-2.16.0-py3-none-any.whl", hash = "sha256:368b5b98b37c06b7daf6696391c3240c938b37767d4584413e8438c5c435fa8b", size = 9587599 }, ] -[[distribution]] +[[package]] name = "certifi" version = "2024.8.30" source = { registry = "https://pypi.org/simple" } @@ -19,7 +19,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/12/90/3c9ff0512038035f59d279fddeb79f5f1eccd8859f06d6163c58798b9487/certifi-2024.8.30-py3-none-any.whl", hash = "sha256:922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8", size = 167321 }, ] -[[distribution]] +[[package]] name = "charset-normalizer" version = "3.4.0" source = { registry = "https://pypi.org/simple" } @@ -43,7 +43,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/bf/9b/08c0432272d77b04803958a4598a51e2a4b51c06640af8b8f0f908c18bf2/charset_normalizer-3.4.0-py3-none-any.whl", hash = "sha256:fe9f97feb71aa9896b81973a7bbada8c49501dc73e58a10fcef6663af95e5079", size = 49446 }, ] -[[distribution]] +[[package]] name = "click" version = "8.1.7" source = { registry = "https://pypi.org/simple" } @@ -55,7 +55,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28", size = 97941 }, ] -[[distribution]] +[[package]] name = "colorama" version = "0.4.6" source = { registry = "https://pypi.org/simple" } @@ -64,7 +64,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335 }, ] -[[distribution]] +[[package]] name = "ghp-import" version = "2.1.0" source = { registry = "https://pypi.org/simple" } @@ -76,7 +76,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/f7/ec/67fbef5d497f86283db54c22eec6f6140243aae73265799baaaa19cd17fb/ghp_import-2.1.0-py3-none-any.whl", hash = "sha256:8337dd7b50877f163d4c0289bc1f1c7f127550241988d568c1db512c4324a619", size = 11034 }, ] -[[distribution]] +[[package]] name = "idna" version = "3.10" source = { registry = "https://pypi.org/simple" } @@ -85,7 +85,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442 }, ] -[[distribution]] +[[package]] name = "jinja2" version = "3.1.4" source = { registry = "https://pypi.org/simple" } @@ -97,7 +97,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/31/80/3a54838c3fb461f6fec263ebf3a3a41771bd05190238de3486aae8540c36/jinja2-3.1.4-py3-none-any.whl", hash = "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d", size = 133271 }, ] -[[distribution]] +[[package]] name = "markdown" version = "3.7" source = { registry = "https://pypi.org/simple" } @@ -106,7 +106,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/3f/08/83871f3c50fc983b88547c196d11cf8c3340e37c32d2e9d6152abe2c61f7/Markdown-3.7-py3-none-any.whl", hash = "sha256:7eb6df5690b81a1d7942992c97fad2938e956e79df20cbc6186e9c3a77b1c803", size = 106349 }, ] -[[distribution]] +[[package]] name = "markupsafe" version = "3.0.2" source = { registry = "https://pypi.org/simple" } @@ -134,7 +134,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/4f/65/6079a46068dfceaeabb5dcad6d674f5f5c61a6fa5673746f42a9f4c233b3/MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f", size = 15739 }, ] -[[distribution]] +[[package]] name = "mergedeep" version = "1.3.4" source = { registry = "https://pypi.org/simple" } @@ -143,7 +143,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/2c/19/04f9b178c2d8a15b076c8b5140708fa6ffc5601fb6f1e975537072df5b2a/mergedeep-1.3.4-py3-none-any.whl", hash = "sha256:70775750742b25c0d8f36c55aed03d24c3384d17c951b3175d898bd778ef0307", size = 6354 }, ] -[[distribution]] +[[package]] name = "mkdocs" version = "1.6.1" source = { registry = "https://pypi.org/simple" } @@ -167,7 +167,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/22/5b/dbc6a8cddc9cfa9c4971d59fb12bb8d42e161b7e7f8cc89e49137c5b279c/mkdocs-1.6.1-py3-none-any.whl", hash = "sha256:db91759624d1647f3f34aa0c3f327dd2601beae39a366d6e064c03468d35c20e", size = 3864451 }, ] -[[distribution]] +[[package]] name = "mkdocs-get-deps" version = "0.2.0" source = { registry = "https://pypi.org/simple" } @@ -181,7 +181,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/9f/d4/029f984e8d3f3b6b726bd33cafc473b75e9e44c0f7e80a5b29abc466bdea/mkdocs_get_deps-0.2.0-py3-none-any.whl", hash = "sha256:2bf11d0b133e77a0dd036abeeb06dec8775e46efa526dc70667d8863eefc6134", size = 9521 }, ] -[[distribution]] +[[package]] name = "mkdocs-material" version = "9.5.46" source = { registry = "https://pypi.org/simple" } @@ -203,7 +203,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/9f/64/af210ec1bc40fb2f195b7feede4c895c54c94acc48b108a2ad28b79d226f/mkdocs_material-9.5.46-py3-none-any.whl", hash = "sha256:98f0a2039c62e551a68aad0791a8d41324ff90c03a6e6cea381a384b84908b83", size = 8625807 }, ] -[[distribution]] +[[package]] name = "mkdocs-material-extensions" version = "1.3.1" source = { registry = "https://pypi.org/simple" } @@ -212,15 +212,18 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/5b/54/662a4743aa81d9582ee9339d4ffa3c8fd40a4965e033d77b9da9774d3960/mkdocs_material_extensions-1.3.1-py3-none-any.whl", hash = "sha256:adff8b62700b25cb77b53358dad940f3ef973dd6db797907c49e3c2ef3ab4e31", size = 8728 }, ] -[[distribution]] +[[package]] name = "ocs-docs" version = "0.1.0" -source = { editable = "." } +source = { virtual = "." } dependencies = [ { name = "mkdocs-material" }, ] -[[distribution]] +[package.metadata] +requires-dist = [{ name = "mkdocs-material" }] + +[[package]] name = "packaging" version = "24.2" source = { registry = "https://pypi.org/simple" } @@ -229,7 +232,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/88/ef/eb23f262cca3c0c4eb7ab1933c3b1f03d021f2c48f54763065b6f0e321be/packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759", size = 65451 }, ] -[[distribution]] +[[package]] name = "paginate" version = "0.5.7" source = { registry = "https://pypi.org/simple" } @@ -238,7 +241,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/90/96/04b8e52da071d28f5e21a805b19cb9390aa17a47462ac87f5e2696b9566d/paginate-0.5.7-py2.py3-none-any.whl", hash = "sha256:b885e2af73abcf01d9559fd5216b57ef722f8c42affbb63942377668e35c7591", size = 13746 }, ] -[[distribution]] +[[package]] name = "pathspec" version = "0.12.1" source = { registry = "https://pypi.org/simple" } @@ -247,7 +250,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08", size = 31191 }, ] -[[distribution]] +[[package]] name = "platformdirs" version = "4.3.6" source = { registry = "https://pypi.org/simple" } @@ -256,7 +259,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/3c/a6/bc1012356d8ece4d66dd75c4b9fc6c1f6650ddd5991e421177d9f8f671be/platformdirs-4.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb", size = 18439 }, ] -[[distribution]] +[[package]] name = "pygments" version = "2.18.0" source = { registry = "https://pypi.org/simple" } @@ -265,7 +268,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/f7/3f/01c8b82017c199075f8f788d0d906b9ffbbc5a47dc9918a945e13d5a2bda/pygments-2.18.0-py3-none-any.whl", hash = "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a", size = 1205513 }, ] -[[distribution]] +[[package]] name = "pymdown-extensions" version = "10.12" source = { registry = "https://pypi.org/simple" } @@ -278,7 +281,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/53/32/95a164ddf533bd676cbbe878e36e89b4ade3efde8dd61d0148c90cbbe57e/pymdown_extensions-10.12-py3-none-any.whl", hash = "sha256:49f81412242d3527b8b4967b990df395c89563043bc51a3d2d7d500e52123b77", size = 263448 }, ] -[[distribution]] +[[package]] name = "python-dateutil" version = "2.9.0.post0" source = { registry = "https://pypi.org/simple" } @@ -290,7 +293,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892 }, ] -[[distribution]] +[[package]] name = "pyyaml" version = "6.0.2" source = { registry = "https://pypi.org/simple" } @@ -307,7 +310,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/fa/de/02b54f42487e3d3c6efb3f89428677074ca7bf43aae402517bc7cca949f3/PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563", size = 156446 }, ] -[[distribution]] +[[package]] name = "pyyaml-env-tag" version = "0.1" source = { registry = "https://pypi.org/simple" } @@ -319,7 +322,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/5a/66/bbb1dd374f5c870f59c5bb1db0e18cbe7fa739415a24cbd95b2d1f5ae0c4/pyyaml_env_tag-0.1-py3-none-any.whl", hash = "sha256:af31106dec8a4d68c60207c1886031cbf839b68aa7abccdb19868200532c2069", size = 3911 }, ] -[[distribution]] +[[package]] name = "regex" version = "2024.11.6" source = { registry = "https://pypi.org/simple" } @@ -342,7 +345,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/45/94/bc295babb3062a731f52621cdc992d123111282e291abaf23faa413443ea/regex-2024.11.6-cp313-cp313-win_amd64.whl", hash = "sha256:2b3361af3198667e99927da8b84c1b010752fa4b1115ee30beaa332cabc3ef1a", size = 273545 }, ] -[[distribution]] +[[package]] name = "requests" version = "2.32.3" source = { registry = "https://pypi.org/simple" } @@ -357,7 +360,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6", size = 64928 }, ] -[[distribution]] +[[package]] name = "six" version = "1.16.0" source = { registry = "https://pypi.org/simple" } @@ -366,7 +369,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254", size = 11053 }, ] -[[distribution]] +[[package]] name = "urllib3" version = "2.2.3" source = { registry = "https://pypi.org/simple" } @@ -375,7 +378,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ce/d9/5f4c13cecde62396b0d3fe530a50ccea91e7dfc1ccf0e09c228841bb5ba8/urllib3-2.2.3-py3-none-any.whl", hash = "sha256:ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac", size = 126338 }, ] -[[distribution]] +[[package]] name = "watchdog" version = "6.0.0" source = { registry = "https://pypi.org/simple" } From 4f087e8c1c22db243c0d5b45e9c4df0ec3e56a16 Mon Sep 17 00:00:00 2001 From: Simon Kelly Date: Wed, 11 Dec 2024 16:39:40 +0200 Subject: [PATCH 02/17] fix bad link --- docs/concepts/prompt_variables.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/concepts/prompt_variables.md b/docs/concepts/prompt_variables.md index d178304..bdf06bf 100644 --- a/docs/concepts/prompt_variables.md +++ b/docs/concepts/prompt_variables.md @@ -6,7 +6,7 @@ Prompt variables are a great way to make your prompt dynamic or tailored to the The following variables are currently supported: -- `{source_material}` - The [source material](../how-to/adding_source_material.md) linked to your bot. +- `{source_material}` - The [source material](../how-to/add_a_knowledge_base.md) linked to your bot. - `{participant_data}` - Information specific to this participant. This data is accessible only within the context of this participant and bot, ensuring that only this bot can access it. - `{current_datetime}` - This refers to the date and time at which the response is generated. @@ -17,4 +17,4 @@ The following variables are currently supported: !!! info "A note on prompt caching" Some LLM providers like OpenAI, use a technique called "prompt caching" to reduce latency and costs (See [here][0]). This happens automatically. However, caching is only effective for static data i.e. data that does not change. To take full advantage of this caching mechanism, you should place prompt variables near the end of your prompt whenever possible -[0]: https://platform.openai.com/docs/guides/prompt-caching \ No newline at end of file +[0]: https://platform.openai.com/docs/guides/prompt-caching From 738a4cd669215688516bf992261a63cf161d9ffd Mon Sep 17 00:00:00 2001 From: Simon Kelly Date: Wed, 11 Dec 2024 16:50:51 +0200 Subject: [PATCH 03/17] move model support to LLM page --- docs/about.md | 11 ----------- docs/concepts/llm.md | 27 +++++++++++++++++++++------ 2 files changed, 21 insertions(+), 17 deletions(-) diff --git a/docs/about.md b/docs/about.md index e073166..ae2e82d 100644 --- a/docs/about.md +++ b/docs/about.md @@ -18,14 +18,3 @@ large" in its name refers to the extensive volume of data it has been trained on enabling it to handle complex language tasks. (The definition above was authored by the famous LLM that powers ChatGPT: GPT-4 developed by OpenAI). - -# Which Large Language Models are supported by Open Chat Studio? - -Open Chat Studio is developed to support a range of LLMs. The platform is designed to be flexible and can work with any -LLM that has an API. The platform is currently supports all the models provided by the following APIs: - -* [OpenAI](https://platform.openai.com/docs/models) -* [Azure OpenAi](https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models?tabs=python-secure%2Cglobal-standard%2Cstandard-chat-completions) -* [Anthropic](https://docs.anthropic.com/en/docs/about-claude/models_) -* [Groq](https://console.groq.com/docs/models) -* [Perplexity](https://docs.perplexity.ai/guides/model-cards) diff --git a/docs/concepts/llm.md b/docs/concepts/llm.md index 2bd856a..ffe71a2 100644 --- a/docs/concepts/llm.md +++ b/docs/concepts/llm.md @@ -1,16 +1,31 @@ +--- +title: Large Language Models +--- + # LLMs (Large Language Models) An *LLM* is a type of artificial intelligence model trained on vast amounts of text data. It can generate human-like text, answer questions, and perform various language-based tasks. Examples include OpenAI's GPT models. When building chatbots, an LLM powers the chatbot's ability to understand and respond to user inputs, effectively acting as the brain behind your chatbot. ---- +## Which Large Language Models are supported by Open Chat Studio? -## Temperature +Open Chat Studio is developed to support a range of LLMs. The platform is designed to be flexible and can work with any +LLM that has an API. The platform is currently supports all the models provided by the following APIs: + +* [OpenAI](https://platform.openai.com/docs/models) +* [Azure OpenAi](https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models?tabs=python-secure%2Cglobal-standard%2Cstandard-chat-completions) +* [Anthropic](https://docs.anthropic.com/en/docs/about-claude/models_) +* [Groq](https://console.groq.com/docs/models) +* [Perplexity](https://docs.perplexity.ai/guides/model-cards) + +## Model Configuration Parameters + +### Temperature Temperature controls the creativity or randomness of the chatbot's responses. - A low temperature (e.g., 0.1) makes the chatbot more deterministic, providing straightforward and predictable answers. - A high temperature (e.g., 0.9) makes responses more creative, varied, or even surprising. -####Example: +#### Example: - Low temperature: *What's a dog?* → A dog is a domesticated animal. - High temperature: *What's a dog?* → A dog is a loyal companion, a furry friend who fills your life with wagging tails and boundless joy. @@ -18,14 +33,14 @@ The default temperature of 0.7 is a balanced choice designed to provide response --- -## Prompt +### Prompt A prompt is the input or instructions given to the LLM to guide its response. It sets the context for the chatbot. Prompts can be as simple as a user question or as detailed as a conversation framework or role-play setup. #### Example: You are a helpful assistant. Answer questions clearly and concisely. -## Tokens +### Tokens Tokens are the building blocks of text that the LLM processes. A token might be a word, a part of a word, or even just punctuation. #### Example: @@ -36,7 +51,7 @@ Tokens are important because they determine the cost and the processing complexi --- -## Max Token Limit +### Max Token Limit The max token limit is the maximum number of tokens the LLM can handle in a single interaction, including both the input (prompt) and output (response). #### Example: From c7b6accdaed4b9f007d2c9797606c23ec7cd7c58 Mon Sep 17 00:00:00 2001 From: Simon Kelly Date: Wed, 11 Dec 2024 16:51:56 +0200 Subject: [PATCH 04/17] move links off headings --- docs/concepts/chatbot_types.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/docs/concepts/chatbot_types.md b/docs/concepts/chatbot_types.md index ce23125..2aa450e 100644 --- a/docs/concepts/chatbot_types.md +++ b/docs/concepts/chatbot_types.md @@ -16,12 +16,15 @@ Bots configured in this way have all the basic features (memory, source material ## Assistant Assistant bots make use of OpenAI’s [Assistants][4]. The main advantage of using Assistants is that your bot get’s access to the OpenAI tools: -### [Code Interpreter][5] +### Code Interpreter This allows the bot to write and execute code to accomplish tasks. -### [File Search][6] +For more information see the [OpenAI docs][5]. + +### File Search This allows the bot to search and reference information provided in uploaded files. Unless your bot needs either of these capabilities, you should use a Base Language Model type bot. +For more information see the [OpenAI docs][6]. ## Pipeline This is a beta feature that has not yet been fully released. Pipelines allow you to create more complex bots by defining a ‘graph’ of nodes. Each message to the bot is processed by the graph to produce a final output. @@ -34,4 +37,4 @@ This can be useful if you want to build a complex bot that performs different ta [3]: https://ai.google.dev/ [4]: https://platform.openai.com/docs/assistants/overview [5]: https://platform.openai.com/docs/assistants/tools/code-interpreter -[6]: https://platform.openai.com/docs/assistants/tools/file-search \ No newline at end of file +[6]: https://platform.openai.com/docs/assistants/tools/file-search From 5a1261f0b23f8f1bbc70216dec95321962e82eec Mon Sep 17 00:00:00 2001 From: Simon Kelly Date: Wed, 11 Dec 2024 17:11:50 +0200 Subject: [PATCH 05/17] fix typos and case --- docs/concepts/source_material.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/docs/concepts/source_material.md b/docs/concepts/source_material.md index 71e81ab..219b281 100644 --- a/docs/concepts/source_material.md +++ b/docs/concepts/source_material.md @@ -13,6 +13,5 @@ Source Material is a feature that allows you to provide specific content, inform - Organization and Structure: Well-organized Source Materials make it easier for the chatbot to retrieve and use the information. It's useful to structure your content in a clear, concise manner, with appropriate labels for different sections. #### See also -- [prompt variables](./prompt_variables.md) -- [Add a knowldege base](../how-to/add_a_knowledge_base.md) - +- [Prompt variables](./prompt_variables.md) +- [Add a_knowledge base](../how-to/add_a_knowledge_base.md) From b8e957f8757f0d885709a7236362391084daeed1 Mon Sep 17 00:00:00 2001 From: Simon Kelly Date: Wed, 11 Dec 2024 17:12:43 +0200 Subject: [PATCH 06/17] fix typos --- docs/concepts/versioning.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/concepts/versioning.md b/docs/concepts/versioning.md index b58b9ad..0c37f04 100644 --- a/docs/concepts/versioning.md +++ b/docs/concepts/versioning.md @@ -5,9 +5,9 @@ Versioning is now enabled by default for all projects on Open Chat Studio. This ## Terms OCS uses the following terms: -* **Unreleased Version*. This is the version of the chatbot that exists when you click the edit button on the experiment. It can also be considered a `draft` or that it has "unsaved changes". +* *Unreleased Version*. This is the version of the chatbot that exists when you click the edit button on the experiment. It can also be considered a `draft` or that it has "unsaved changes". -* **Published Version*. This is the version that users will interact with through the web, WhatsApp or any other configured channel--including the public link. +* *Published Version*. This is the version that users will interact with through the web, WhatsApp or any other configured channel--including the public link. !!! info "A note version functionality" Once a version is made, it cannot be edited or modified. This ensures that the users' experience remains stable even if the authors may be changing the unrealeased version. @@ -20,7 +20,7 @@ OCS uses the following terms: #### Changing the Published Version The published version can be selected from any released version of the experiment. To modify which version is the published version: -- select "View Details" of the version -- press the "Set as Published Version" button at the button of the modal +- Select "View Details" of the version +- Press the "Set as Published Version" button at the button of the dialog box. -Alternatively, when a new version is being created, it can be set as the published version by marking the checkbox "Set as Published Version." Only one version can be the published verion at a time. +Alternatively, when a new version is being created, it can be set as the published version by marking the checkbox "Set as Published Version." Only one version can be the published version at a time. From 47af5f8774f04971360a426aa951f02a58d85214 Mon Sep 17 00:00:00 2001 From: Simon Kelly Date: Wed, 11 Dec 2024 17:13:28 +0200 Subject: [PATCH 07/17] consistent quotes --- docs/concepts/versioning.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/concepts/versioning.md b/docs/concepts/versioning.md index 0c37f04..1b8b660 100644 --- a/docs/concepts/versioning.md +++ b/docs/concepts/versioning.md @@ -5,7 +5,7 @@ Versioning is now enabled by default for all projects on Open Chat Studio. This ## Terms OCS uses the following terms: -* *Unreleased Version*. This is the version of the chatbot that exists when you click the edit button on the experiment. It can also be considered a `draft` or that it has "unsaved changes". +* *Unreleased Version*. This is the version of the chatbot that exists when you click the edit button on the experiment. It can also be considered a "draft" or that it has "unsaved changes". * *Published Version*. This is the version that users will interact with through the web, WhatsApp or any other configured channel--including the public link. @@ -23,4 +23,6 @@ The published version can be selected from any released version of the experimen - Select "View Details" of the version - Press the "Set as Published Version" button at the button of the dialog box. -Alternatively, when a new version is being created, it can be set as the published version by marking the checkbox "Set as Published Version." Only one version can be the published version at a time. +Alternatively, when a new version is being created, it can be set as the published version by marking the checkbox "Set as Published Version". + +Only one version can be the published version at a time. From ea5ff4c24b495cd434e861bc30016218b64ad38c Mon Sep 17 00:00:00 2001 From: Simon Kelly Date: Wed, 11 Dec 2024 17:13:39 +0200 Subject: [PATCH 08/17] another typo --- docs/concepts/versioning.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/concepts/versioning.md b/docs/concepts/versioning.md index 1b8b660..185cb55 100644 --- a/docs/concepts/versioning.md +++ b/docs/concepts/versioning.md @@ -10,8 +10,7 @@ OCS uses the following terms: * *Published Version*. This is the version that users will interact with through the web, WhatsApp or any other configured channel--including the public link. !!! info "A note version functionality" - Once a version is made, it cannot be edited or modified. This ensures that the users' experience remains stable even if the authors may be changing the unrealeased version. - + Once a version is made, it cannot be edited or modified. This ensures that the users' experience remains stable even if the authors may be changing the unreleased version. !!! warning "Chatting to the unreleased version" From c53e7f61b97fc9436cf84e8c457c39207734f94b Mon Sep 17 00:00:00 2001 From: Simon Kelly Date: Wed, 11 Dec 2024 17:17:14 +0200 Subject: [PATCH 09/17] misc grammar --- docs/concepts/chatbot_types.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/concepts/chatbot_types.md b/docs/concepts/chatbot_types.md index 2aa450e..50638c4 100644 --- a/docs/concepts/chatbot_types.md +++ b/docs/concepts/chatbot_types.md @@ -8,13 +8,13 @@ There are three different types of chatbots that you can build in Open Chat Stud ## Base language model -This kind of bot is the most commonly used and simple to configure. It is backed the standard language model APIs such as OpenAI’s [chat completions API][1], Anthropic’s [messages API][2] or Google’s [Gemeni API][3]. +This kind of bot is the most commonly used and simple to configure. It is backed the standard language model APIs such as the OpenAI [chat completions API][1], Anthropic [messages API][2] or Google [Gemini API][3]. Bots configured in this way have all the basic features (memory, source material etc.) and can also use some of the advanced features like Scheduling and Reminders. ## Assistant -Assistant bots make use of OpenAI’s [Assistants][4]. The main advantage of using Assistants is that your bot get’s access to the OpenAI tools: +Assistant bots make use of OpenAI [Assistants][4]. The main advantage of using Assistants is that your bot gets access to the OpenAI tools: ### Code Interpreter This allows the bot to write and execute code to accomplish tasks. From d4b97b5863c447f988ef47b019e02dde17e84336 Mon Sep 17 00:00:00 2001 From: Simon Kelly Date: Wed, 11 Dec 2024 17:25:13 +0200 Subject: [PATCH 10/17] spelling --- docs/how-to/add_a_knowledge_base.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/how-to/add_a_knowledge_base.md b/docs/how-to/add_a_knowledge_base.md index a97d2b7..3a60df6 100644 --- a/docs/how-to/add_a_knowledge_base.md +++ b/docs/how-to/add_a_knowledge_base.md @@ -20,7 +20,7 @@ You are a friendly bot. Be sure to reference the source material before answerin ``` ## Assistant -To add knowldege to your assistant, you must upload files to serve as the source material. When creating or editing your assistant, select the *file_search* or *code_interpreter* checkboxes to allow the assistant to read files. +To add knowledge to your assistant, you must upload files to serve as the source material. When creating or editing your assistant, select the *file_search* or *code_interpreter* checkboxes to allow the assistant to read files. - [File search][file_search]: This allows the bot to search and reference information provided in uploaded files. - [Code Interpreter][code_interpreter]: This allows the bot to write and execute code to accomplish tasks. From d1edd507d75a6aabc736c371e3acd304025daccd Mon Sep 17 00:00:00 2001 From: Simon Kelly Date: Wed, 11 Dec 2024 17:25:18 +0200 Subject: [PATCH 11/17] better title --- docs/concepts/llm.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/concepts/llm.md b/docs/concepts/llm.md index ffe71a2..c5be45a 100644 --- a/docs/concepts/llm.md +++ b/docs/concepts/llm.md @@ -1,8 +1,8 @@ --- -title: Large Language Models +title: Large Language Model --- -# LLMs (Large Language Models) +# Large Language Models (LLMs) An *LLM* is a type of artificial intelligence model trained on vast amounts of text data. It can generate human-like text, answer questions, and perform various language-based tasks. Examples include OpenAI's GPT models. When building chatbots, an LLM powers the chatbot's ability to understand and respond to user inputs, effectively acting as the brain behind your chatbot. From d9f142018df85665a4928b4ac861019d480c7aab Mon Sep 17 00:00:00 2001 From: Simon Kelly Date: Wed, 11 Dec 2024 17:32:45 +0200 Subject: [PATCH 12/17] move 'what is an llm' to llm page + update about --- docs/about.md | 17 +++-------------- docs/concepts/llm.md | 13 +++++++++++-- 2 files changed, 14 insertions(+), 16 deletions(-) diff --git a/docs/about.md b/docs/about.md index ae2e82d..c145a68 100644 --- a/docs/about.md +++ b/docs/about.md @@ -2,19 +2,8 @@ hide: - navigation --- -# Overview +# About Open Chat Studio -Dimagi is developing Open Chat Studio (OCS) as an easy-to-use, open source platform for rapidly prototyping and testing -chatbots created using Large Language Models (LLMs). Open Chat Studio makes it easy to develop and test LLM-based -chatbots, and to instill a variety of guardrails to improve the safety and accuracy of these bots. Open Chat Studio can -work with any LLM with an API such as the GPT-4 API. +[Dimagi](https://dimagi.com/) is developing Open Chat Studio (OCS) as an easy-to-use, open source platform for rapidly prototyping and testing chatbots created using Large Language Models (LLMs). Open Chat Studio makes it easy to develop and test LLM-based chatbots, and to instill a variety of guardrails to improve the safety and accuracy of these bots. -# What is a Large Language Model? - -A Large Language Model is a type of artificial intelligence software that is trained on a vast amount of text data. Its -primary function is to understand, interpret, and generate human language. This training allows it to produce text-based -responses, answer questions, translate between languages, and perform various other language-related tasks. The term " -large" in its name refers to the extensive volume of data it has been trained on and the complexity of its design, -enabling it to handle complex language tasks. - -(The definition above was authored by the famous LLM that powers ChatGPT: GPT-4 developed by OpenAI). +Open Chat Studio can work with any LLM with an API such as the [OpenAI Chat Completions API](https://platform.openai.com/docs/guides/text-generation). diff --git a/docs/concepts/llm.md b/docs/concepts/llm.md index c5be45a..f4b8028 100644 --- a/docs/concepts/llm.md +++ b/docs/concepts/llm.md @@ -3,8 +3,17 @@ title: Large Language Model --- # Large Language Models (LLMs) -An *LLM* is a type of artificial intelligence model trained on vast amounts of text data. It can generate human-like text, answer questions, and perform various language-based tasks. Examples include OpenAI's GPT models. -When building chatbots, an LLM powers the chatbot's ability to understand and respond to user inputs, effectively acting as the brain behind your chatbot. + +!!! note "Definition" + A Large Language Model (or LLM) is a type of artificial intelligence software that is trained on a vast amount of text data. Its + primary function is to understand, interpret, and generate human language. This training allows it to produce text-based + responses, answer questions, translate between languages, and perform various other language-related tasks. + + The term "large" in its name refers to the extensive volume of data it has been trained on and the complexity of its design, enabling it to handle complex language tasks. + +The definition above was authored by the famous LLM that powers ChatGPT: GPT-4 developed by OpenAI. + +When building chatbots, an LLM powers the chatbot's ability to understand and respond to user inputs, effectively acting as the brain behind the chatbot. ## Which Large Language Models are supported by Open Chat Studio? From 10f174ce08006f0a6271edb16db20f67f23017a5 Mon Sep 17 00:00:00 2001 From: Simon Kelly Date: Thu, 12 Dec 2024 11:02:35 +0200 Subject: [PATCH 13/17] update after merge --- docs/how-to/remote_api.md | 2 +- mkdocs.yml | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/how-to/remote_api.md b/docs/how-to/remote_api.md index 73dc62e..177ef7c 100644 --- a/docs/how-to/remote_api.md +++ b/docs/how-to/remote_api.md @@ -2,7 +2,7 @@ Open Chat Studio allows you to connect to external services via HTTP API calls. This feature is useful for extending the functionality of your bot by integrating it with other services. This feature is analogous to OpenAI's [GPT Actions](https://platform.openai.com/docs/actions/introduction) feature. -To do this you will need to create a Custom Action by navigating to the [Authentication Providers](../team-configuration/authentication-providers.md) section in Team Settings. See the [Custom Actions](../conceptual_guide/custom_actions.md) guide for more information on how to create a Custom Action. +To do this you will need to create an action by navigating to the "Custom Actions" section in Team Settings. See the [Custom Actions](../concepts/custom_actions.md) guide for more information on creating a Custom Action. ## Using the custom action in your bot diff --git a/mkdocs.yml b/mkdocs.yml index 8c8ea86..859f883 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -30,6 +30,7 @@ nav: - How-to Guides: - how-to/index.md - how-to/add_a_knowledge_base.md + - how-to/remote_api.md - Concepts: - concepts/index.md - concepts/llm.md @@ -37,4 +38,5 @@ nav: - concepts/prompt_variables.md - concepts/source_material.md - concepts/versioning.md + - concepts/custom_actions.md - About: about.md From eb25d053acf66081743b98c564263bfbc8c807f1 Mon Sep 17 00:00:00 2001 From: Simon Kelly Date: Thu, 12 Dec 2024 11:03:19 +0200 Subject: [PATCH 14/17] fix link --- docs/team-configuration/authentication-providers.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/team-configuration/authentication-providers.md b/docs/team-configuration/authentication-providers.md index 478cd75..2fef247 100644 --- a/docs/team-configuration/authentication-providers.md +++ b/docs/team-configuration/authentication-providers.md @@ -3,7 +3,7 @@ Authentication Providers are used to authenticate with external services via HTTP API calls. Authentication Providers provide a centralized location to manage the credentials and tokens required to authenticate with external services. -These credentials are used by features like [Custom Actions](/conceptual_guide/custom_actions/). +These credentials are used by features like [Custom Actions](../concepts/custom_actions.md). ## Authentication Provider Types From b0822005a51997bf77b0d5da0654e2a1cd3777f0 Mon Sep 17 00:00:00 2001 From: Simon Kelly Date: Thu, 12 Dec 2024 11:07:49 +0200 Subject: [PATCH 15/17] move auth providers to concepts and group concepts --- .../authentication-providers.md | 0 docs/concepts/custom_actions.md | 2 +- mkdocs.yml | 15 +++++++++------ 3 files changed, 10 insertions(+), 7 deletions(-) rename docs/{team-configuration => concepts}/authentication-providers.md (100%) diff --git a/docs/team-configuration/authentication-providers.md b/docs/concepts/authentication-providers.md similarity index 100% rename from docs/team-configuration/authentication-providers.md rename to docs/concepts/authentication-providers.md diff --git a/docs/concepts/custom_actions.md b/docs/concepts/custom_actions.md index 0ee3bc2..5dda512 100644 --- a/docs/concepts/custom_actions.md +++ b/docs/concepts/custom_actions.md @@ -13,7 +13,7 @@ Before you create a Custom Action will need to create an Authentication Provider you are using does not require authentication). You can do this by navigating to the [Authentication Providers][auth_providers] section in Team Settings and creating a new Authentication Provider. -[auth_providers]: ../team-configuration/authentication-providers.md +[auth_providers]: ../concepts/authentication-providers.md ### Base URL diff --git a/mkdocs.yml b/mkdocs.yml index 859f883..06d7f20 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -33,10 +33,13 @@ nav: - how-to/remote_api.md - Concepts: - concepts/index.md - - concepts/llm.md - - concepts/chatbot_types.md - - concepts/prompt_variables.md - - concepts/source_material.md - - concepts/versioning.md - - concepts/custom_actions.md + - Experiments: + - concepts/llm.md + - concepts/chatbot_types.md + - concepts/prompt_variables.md + - concepts/source_material.md + - concepts/versioning.md + - concepts/custom_actions.md + - Team: + - concepts/authentication-providers.md - About: about.md From d0dcedcf2c5aed21e84e51b6c247cc8741e3e60c Mon Sep 17 00:00:00 2001 From: Simon Kelly Date: Thu, 12 Dec 2024 11:12:12 +0200 Subject: [PATCH 16/17] create experiment index page --- .../{chatbot_types.md => experiment/index.md} | 19 +++++++++++++------ mkdocs.yml | 2 +- 2 files changed, 14 insertions(+), 7 deletions(-) rename docs/concepts/{chatbot_types.md => experiment/index.md} (84%) diff --git a/docs/concepts/chatbot_types.md b/docs/concepts/experiment/index.md similarity index 84% rename from docs/concepts/chatbot_types.md rename to docs/concepts/experiment/index.md index 50638c4..575ceb6 100644 --- a/docs/concepts/chatbot_types.md +++ b/docs/concepts/experiment/index.md @@ -1,4 +1,11 @@ -# Chatbot Types +# Experiments + +An 'Experiment' is the current name used in Open Chat Studio to refer to a 'chatbot'. The name may change in the +future. + +An Experiment links all the configuration and data for a chatbot including user sessions, data, actions etc. + +## Experiment Types There are three different types of chatbots that you can build in Open Chat Studio: @@ -6,27 +13,27 @@ There are three different types of chatbots that you can build in Open Chat Stud - Assistant - Pipeline -## Base language model +### Base language model This kind of bot is the most commonly used and simple to configure. It is backed the standard language model APIs such as the OpenAI [chat completions API][1], Anthropic [messages API][2] or Google [Gemini API][3]. Bots configured in this way have all the basic features (memory, source material etc.) and can also use some of the advanced features like Scheduling and Reminders. -## Assistant +### Assistant Assistant bots make use of OpenAI [Assistants][4]. The main advantage of using Assistants is that your bot gets access to the OpenAI tools: -### Code Interpreter +#### Code Interpreter This allows the bot to write and execute code to accomplish tasks. For more information see the [OpenAI docs][5]. -### File Search +#### File Search This allows the bot to search and reference information provided in uploaded files. Unless your bot needs either of these capabilities, you should use a Base Language Model type bot. For more information see the [OpenAI docs][6]. -## Pipeline +### Pipeline This is a beta feature that has not yet been fully released. Pipelines allow you to create more complex bots by defining a ‘graph’ of nodes. Each message to the bot is processed by the graph to produce a final output. This can be useful if you want to build a complex bot that performs different tasks depending on the user’s request. Generally, trying to make a single bot prompt do multiple functions doesn’t work well so it is better to create multiple prompts for each task and then combine them using a Pipeline. This is similar to the Multi-bot setup but allows more flexibility and complexity. diff --git a/mkdocs.yml b/mkdocs.yml index 06d7f20..4d6be6b 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -34,8 +34,8 @@ nav: - Concepts: - concepts/index.md - Experiments: + - concepts/experiment/index.md - concepts/llm.md - - concepts/chatbot_types.md - concepts/prompt_variables.md - concepts/source_material.md - concepts/versioning.md From f77d89a4faaf7794eaada96aa2315e92c72651f5 Mon Sep 17 00:00:00 2001 From: Simon Kelly Date: Thu, 12 Dec 2024 11:18:38 +0200 Subject: [PATCH 17/17] add team landing page --- docs/concepts/team/index.md | 24 ++++++++++++++++++++++++ mkdocs.yml | 1 + 2 files changed, 25 insertions(+) create mode 100644 docs/concepts/team/index.md diff --git a/docs/concepts/team/index.md b/docs/concepts/team/index.md new file mode 100644 index 0000000..258521c --- /dev/null +++ b/docs/concepts/team/index.md @@ -0,0 +1,24 @@ +--- +hide: + - toc +--- +# Teams + +Open Chat Studio is a [multitenant](https://en.wikipedia.org/wiki/Multitenancy) platform that can support multiple organizations using the same instance at the same time. Each 'tenant' is called a 'team'. Teams are created by an organization and can have multiple members. Each team has its own settings and experiments. + +A user can be a member of multiple teams and have a different set of permissions in each team. + +A team serves as the root container for all data in Open Chat Studio. + +## Team configuration + +There is a set of global configuration that can be set at the team level. This includes: + +- LLM Service Providers +- Speech Service Providers +- Messaging Providers +- [Authentication Providers](./authentication-providers.md) +- [Custom Actions](./custom_actions.md) +- Tracing providers + + diff --git a/mkdocs.yml b/mkdocs.yml index 4d6be6b..35ae762 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -41,5 +41,6 @@ nav: - concepts/versioning.md - concepts/custom_actions.md - Team: + - concepts/team/index.md - concepts/authentication-providers.md - About: about.md