Merge pull request #719 from janhq/docnits

docs: cleanup
This commit is contained in:
0xSage 2023-11-24 18:03:59 +08:00 committed by GitHub
commit f3e30790b1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 60 additions and 78 deletions

View File

@ -1,3 +0,0 @@
---
title: Thread
---

View File

@ -1,3 +0,0 @@
---
title: Chat
---

View File

@ -1,3 +0,0 @@
---
title: File
---

View File

@ -1,3 +0,0 @@
---
title: Message
---

View File

@ -1,3 +0,0 @@
---
title: Model
---

View File

@ -1,4 +0,0 @@
---
title: Overview
position: 1
---

View File

@ -1,3 +0,0 @@
---
title: Chat
---

View File

@ -1,3 +1,9 @@
---
title: Extending Jan
---
## Overview
- Jan exports a developer SDK which lets you customize assistants, Jan app, and more.
- Jan exports a AI-friendly UI kit which lets people customize the [Jan UI](/specs/user-interface).
- Jan provisions a local AI server which lets you built external applications on other platforms.

View File

@ -8,10 +8,19 @@ This page is still under construction, and should be read as a scratchpad
:::
- Jan is built using modules
- Plugin architecture (on Pluggable-Electron)
## Overview
Jan is comprised of system-level modules that mirror OpenAIs, exposing similar APIs and objects
- 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 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 OpenAIs, exposing similar APIs and objects:
- Modules are modular, atomic implementations of a single OpenAI-compatible endpoint
- Modules can be swapped out for alternate implementations
@ -26,24 +35,10 @@ Jan is comprised of system-level modules that mirror OpenAIs, exposing simila
| Threads | Conversations | [/thread](/api/thread) |
| Messages | Messages | [/message](/api/message) |
## Concepts
<!-- TODO: link npm modules -->
```mermaid
graph LR
A1[("A User Integrators")] -->|uses| B1[assistant]
B1 -->|persist conversational history| C1[("thread A")]
B1 -->|executes| D1[("built-in tools as module")]
B1 -.->|uses| E1[model]
E1 -.->|model.json| D1
D1 --> F1[retrieval]
F1 -->|belongs to| G1[("web browsing")]
G1 --> H1[Google]
G1 --> H2[Duckduckgo]
F1 -->|belongs to| I1[("API calling")]
F1 --> J1[("knowledge files")]
```
- User/ Integrator
- Assistant object
- Model object
- Thread object
- Built-in tool object
## Extensions
Extensions are feature level services that include both UI and logic implementation.
<!-- TODO[@linh]: add all of @linh's specs here -->

View File

@ -1,5 +1,5 @@
---
title: Data Structures
title: File-based Approach
---
:::warning
@ -41,3 +41,26 @@ janroot/ # Jan's root folder (e.g. ~/jan)
/threads # Assistants remember conversations in the future
/models # Users can upload custom models
```
## Data Dependencies
```mermaid
graph LR
A1[("A User Integrators")] -->|uses| B1[assistant]
B1 -->|persist conversational history| C1[("thread A")]
B1 -->|executes| D1[("built-in tools as module")]
B1 -.->|uses| E1[model]
E1 -.->|model.json| D1
D1 --> F1[retrieval]
F1 -->|belongs to| G1[("web browsing")]
G1 --> H1[Google]
G1 --> H2[Duckduckgo]
F1 -->|belongs to| I1[("API calling")]
F1 --> J1[("knowledge files")]
```
- User/ Integrator
- Assistant object
- Model object
- Thread object
- Built-in tool object

View File

@ -53,14 +53,14 @@ Here's a standard example `model.json` for a GGUF model.
- `source_url`: https://huggingface.co/TheBloke/zephyr-7B-beta-GGUF/.
```js
"id": "zephyr-7b" // Defaults to foldername
"id": "zephyr-7b", // Defaults to foldername
"object": "model", // Defaults to "model"
"source_url": "https://huggingface.co/TheBloke/zephyr-7B-beta-GGUF/blob/main/zephyr-7b-beta.Q4_K_M.gguf",
"name": "Zephyr 7B" // Defaults to foldername
"owned_by": "you" // Defaults to you
"name": "Zephyr 7B", // Defaults to foldername
"owned_by": "you", // Defaults to "you"
"version": "1", // Defaults to 1
"created": 1231231 // Defaults to file creation time
"description": ""
"created": 1231231, // Defaults to file creation time
"description": null, // Defaults to null
"state": enum[null, "downloading", "ready", "starting", "stopping", ...]
"format": "ggufv3", // Defaults to "ggufv3"
"settings": { // Models are initialized with settings
@ -68,7 +68,7 @@ Here's a standard example `model.json` for a GGUF model.
"ngl": "100",
"embedding": "true",
"n_parallel": "4",
}
},
"parameters": { // Models are called parameters
"temperature": "0.7",
"token_limit": "2048",
@ -76,7 +76,7 @@ Here's a standard example `model.json` for a GGUF model.
"top_p": "1",
"stream": "true"
},
"metadata": {} // Defaults to {}
"metadata": {}, // Defaults to {}
"assets": [ // Defaults to current dir
"file://.../zephyr-7b-q4_k_m.bin",
]

View File

@ -52,37 +52,17 @@ const sidebars = {
"docs/modules",
],
apiSidebar: [
"api/overview",
{
type: "category",
label: "Endpoints",
collapsible: true,
collapsed: false,
items: [
{
type: "autogenerated",
dirName: "api",
},
],
},
],
specsSidebar: [
{
type: "category",
label: "Overview",
collapsible: true,
collapsed: false,
items: [
"specs/architecture",
"specs/data-structures",
"specs/user-interface",
],
items: ["specs/architecture", "specs/file-based", "specs/user-interface"],
},
{
type: "category",
label: "Product",
label: "Product Specs",
collapsible: true,
collapsed: false,
items: [
@ -95,7 +75,7 @@ const sidebars = {
{
type: "category",
label: "Engineering",
label: "Engineering Specs",
collapsible: true,
collapsed: false,
items: [