diff --git a/docs/docs/specs/architecture.md b/docs/docs/specs/architecture.md index 0e3a1407c..39b7fa833 100644 --- a/docs/docs/specs/architecture.md +++ b/docs/docs/specs/architecture.md @@ -1,5 +1,6 @@ --- title: Architecture +slug: /specs --- :::warning @@ -10,35 +11,28 @@ This page is still under construction, and should be read as a scratchpad ## Overview -- Jan built a modular infrastructure on top of Electron, in order to support extensions and AI functionality. -- Jan is largely built on top of its own modules. +- Jan has a modular architecture and is largely built on top of its own modules. - Jan uses a local [file-based approach](/specs/file-based) for data persistence. - -## Modules - -Modules are low level, system services. It is similar to OS kernel modules, in that `modules` provide abstractions to device level, basic functionality like the filesystem, device system, databases, AI inference engines, etc. - -## Pluggable Modules - -Jan exports modules that mirror OpenAI’s, exposing similar APIs and objects: - -- Modules are modular, atomic implementations of a single OpenAI-compatible endpoint -- Modules can be swapped out for alternate implementations - - The default `messages` module persists messages in thread-specific `.json` - - `messages-postgresql` uses Postgres for production-grade cloud-native environments - -| Jan Module | Description | API Docs | -| ---------- | ------------- | ---------------------------- | -| Chat | Inference | [/chat](/api/chat) | -| Models | Models | [/model](/api/model) | -| Assistants | Apps | [/assistant](/api/assistant) | -| Threads | Conversations | [/thread](/api/thread) | -| Messages | Messages | [/message](/api/message) | - - +- Jan currently supports an Electron-based [Desktop UI](https://github.com/janhq/jan) and a C++ inference engine called [Nitro](https://nitro.jan.ai/docs/). ## Extensions -Extensions are feature level services that include both UI and logic implementation. +Jan has an Extensions API inspired by VSCode. In fact, most of Jan's core services are built as extensions. - +Jan supports the following OpenAI compatible extensions: + +| Jan Module | Description | API Docs | +| ---------- | ------------- | --------------------------------------------- | +| Chat | Inference | [/chats](/api-reference/#tag/Chat-Completion) | +| Models | Models | [/models](/api-reference/#tag/Models) | +| Assistants | Apps | [/assistants](/api-reference/#tag/Assistants) | +| Threads | Conversations | [/threads](/api-reference/#tag/Threads) | +| Messages | Messages | [/messages](/api-reference/#tag/Messages) | + + + +## Modules + +Modules are low level, system services. It is similar to OS kernel modules. Modules provide abstractions to basic, device level functionality like working with the filesystem, device system, databases, AI inference engines, etc. + +Jan follows the [dependency inversion principle](https://en.wikipedia.org/wiki/Dependency_inversion_principle) such that `modules` expose the interfaces that `extensions` can then implement. diff --git a/docs/docs/specs/img/chat-screen.png b/docs/docs/specs/img/chat-screen.png index 5ca7dfbad..53416c43b 100644 Binary files a/docs/docs/specs/img/chat-screen.png and b/docs/docs/specs/img/chat-screen.png differ diff --git a/docs/docs/specs/img/hub-screen.png b/docs/docs/specs/img/hub-screen.png new file mode 100644 index 000000000..66cb90e43 Binary files /dev/null and b/docs/docs/specs/img/hub-screen.png differ diff --git a/docs/docs/specs/img/settings-screen.png b/docs/docs/specs/img/settings-screen.png new file mode 100644 index 000000000..41080744e Binary files /dev/null and b/docs/docs/specs/img/settings-screen.png differ diff --git a/docs/docs/specs/img/system-screen.png b/docs/docs/specs/img/system-screen.png new file mode 100644 index 000000000..eeca16d6a Binary files /dev/null and b/docs/docs/specs/img/system-screen.png differ diff --git a/docs/docs/specs/product/chat.md b/docs/docs/specs/product/chat.md index 2b44f550c..28969f348 100644 --- a/docs/docs/specs/product/chat.md +++ b/docs/docs/specs/product/chat.md @@ -5,13 +5,13 @@ slug: /specs/chat ## Overview -## Motivation +A home screen for users to chat with [assistants](/specs/assistants) via conversation [threads](/specs/threads). + +![alt text](../img/chat-screen.png) ## User Stories -![alt text](../img/chat-screen.png) - -- I can -- I can +- Users can chat with `Jan` the default assistant +- Users can customize chat settings like model parameters via both the GUI & `thread.json` diff --git a/docs/docs/specs/product/hub.md b/docs/docs/specs/product/hub.md index 7e4c51bcf..c2523b0fb 100644 --- a/docs/docs/specs/product/hub.md +++ b/docs/docs/specs/product/hub.md @@ -5,10 +5,14 @@ slug: /specs/hub ## Overview -## Motivation +The Hub is like a store for everything, where users can discover and download models, assistants, and more. + +![alt text](../img/hub-screen.png) ## User Stories - + -## +- Users can discover recommended models (Jan ships with a few preconfigured `model.json` files) +- Users can download models suitable for their devices, e.g. compatible with their RAM +- Users can download models via a HuggingFace URL (coming soon) diff --git a/docs/docs/specs/product/settings.md b/docs/docs/specs/product/settings.md index 152e0bfa1..a80c50034 100644 --- a/docs/docs/specs/product/settings.md +++ b/docs/docs/specs/product/settings.md @@ -5,9 +5,28 @@ slug: /specs/settings ## Overview -## Motivation +A settings page for users to add extensions, configure model settings, change app appearance, add keyboard shortcuts, and a plethora of other personalizations. + +![alt text](../img/settings-screen.png) ## User Stories - + +### General Settings + +- Users can customize `port` number +- Users can customize `janroot` folder location + +### Extensions Settings + +- Users can add, delete, and configure extensions + +### Model Settings + +- Users can configure default model parameters and settings +- Users can delete models + +### Appearance + +- Users can set color themes and dark/light modes diff --git a/docs/docs/specs/product/system-monitor.md b/docs/docs/specs/product/system-monitor.md index 1d1c8e6f1..52d11a272 100644 --- a/docs/docs/specs/product/system-monitor.md +++ b/docs/docs/specs/product/system-monitor.md @@ -5,9 +5,13 @@ slug: /specs/system-monitor ## Overview -## Motivation +An activity screen to monitor system health and running models. + +![alt text](../img/system-screen.png) ## User Stories - + +- Users can see disk and ram utilization +- Users can start and stop models based on system health