From 70507faf3eee5ea8c3b5291b976d107148fe2869 Mon Sep 17 00:00:00 2001 From: Service Account Date: Fri, 27 Oct 2023 10:46:16 +0700 Subject: [PATCH] feat: Add high level architecture --- docs/docs/getting-started/app-anatomy.md | 11 ++++++++++- .../img/architecture-0.drawio.png | Bin 0 -> 48445 bytes 2 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 docs/docs/getting-started/img/architecture-0.drawio.png diff --git a/docs/docs/getting-started/app-anatomy.md b/docs/docs/getting-started/app-anatomy.md index afcdea55c..0297d253a 100644 --- a/docs/docs/getting-started/app-anatomy.md +++ b/docs/docs/getting-started/app-anatomy.md @@ -4,9 +4,18 @@ title: Anatomy of an app --- ## Jan Architecture +### High level architecture +![High level architecture](img/architecture-0.drawio.png) +Jan mission is to power the next gen App with the limitless extensibility by providing BUILDER: +- Unified API/ Helpers so that they only need to care about what matters +- Wide range of Optimized and State of the art models that can help your App with Thinking/ Hearing/ Seeing capabilities. This is powered by our [Nitro](https://github.com/janhq/nitro) +- Strong support for App marketplace and Model market place that streamline value from end customers to builders at all layers +- The most important: The user of Jan can use the Apps via UI and API for integration -![Overall architecture](img/architecture-1.drawio.png) +At Jan, we strongly believe in `portable AI` that is created once and run anywhere. +### Low level architecture +![Low level architecture](img/architecture-1.drawio.png) - Jan platform includes the following components: - Processes: diff --git a/docs/docs/getting-started/img/architecture-0.drawio.png b/docs/docs/getting-started/img/architecture-0.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..55534a7e2a74e7454cb2ede171926fee4589dc13 GIT binary patch literal 48445 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 N?kL|=Dp4>G`Co_jfmQ$j literal 0 HcmV?d00001