docs: add to product specs
This commit is contained in:
parent
0258a836a3
commit
9c30b1ce4f
@ -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) |
|
||||
|
||||
<!-- TODO: link npm modules -->
|
||||
- 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.
|
||||
|
||||
<!-- TODO[@linh]: add all of @linh's specs here -->
|
||||
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) |
|
||||
|
||||
<!-- TODO: link npm modules -->
|
||||
|
||||
## 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.
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 152 KiB After Width: | Height: | Size: 172 KiB |
BIN
docs/docs/specs/img/hub-screen.png
Normal file
BIN
docs/docs/specs/img/hub-screen.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 629 KiB |
BIN
docs/docs/specs/img/settings-screen.png
Normal file
BIN
docs/docs/specs/img/settings-screen.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 105 KiB |
BIN
docs/docs/specs/img/system-screen.png
Normal file
BIN
docs/docs/specs/img/system-screen.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 96 KiB |
@ -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).
|
||||
|
||||

|
||||
|
||||
## User Stories
|
||||
|
||||
<!-- Can also be used as a QA Checklist -->
|
||||
|
||||

|
||||
|
||||
- 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`
|
||||
|
||||
@ -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.
|
||||
|
||||

|
||||
|
||||
## User Stories
|
||||
|
||||
<!-- wireframe here -->
|
||||
<!-- Can also be used as a QA Checklist -->
|
||||
|
||||
## <!-- Can also be used as a QA Checklist -->
|
||||
- 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)
|
||||
|
||||
@ -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.
|
||||
|
||||

|
||||
|
||||
## User Stories
|
||||
|
||||
<!-- wireframe here -->
|
||||
<!-- Can also be used as a QA Checklist -->
|
||||
|
||||
### 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
|
||||
|
||||
@ -5,9 +5,13 @@ slug: /specs/system-monitor
|
||||
|
||||
## Overview
|
||||
|
||||
## Motivation
|
||||
An activity screen to monitor system health and running models.
|
||||
|
||||

|
||||
|
||||
## User Stories
|
||||
|
||||
<!-- wireframe here -->
|
||||
<!-- Can also be used as a QA Checklist -->
|
||||
|
||||
- Users can see disk and ram utilization
|
||||
- Users can start and stop models based on system health
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user