Updated Extensions pages

This commit is contained in:
Ashley 2025-01-07 20:06:44 +07:00
parent a90287b9c3
commit c3076f9441
16 changed files with 257 additions and 71 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 172 KiB

After

Width:  |  Height:  |  Size: 171 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 187 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 185 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 185 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 187 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 187 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 195 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 187 KiB

View File

@ -35,8 +35,8 @@
},
"extensions": "Overview",
"extensions-settings": "Extensions Settings",
"installing-extension": "Install Extension",
"configure-extensions": "Configure Extensions",
"installing-extension": "Install Extensions",
"troubleshooting-separator": {
"title": "TROUBLESHOOTING",
"type": "separator"

View File

@ -16,26 +16,30 @@ description: Learn about Jan's default extensions and explore how to configure t
]
---
# Configure an Extension Settings
# Configure Extensions
Extensions in Jan are configured through a JSON file that defines their behavior and metadata. While most users won't need to modify this file directly, advanced users can customize extension settings for specific needs.
To configure an extension settings:
## Access extensions.json
1. Navigate to the `~/jan/data/extensions`.
2. Open the `extensions.json` file
3. Edit the file with options including:
1. Navigate to [Jan Data Folder](/docs/data-folder):
2. Open the `extensions.json` file in any text editor
| Option | Description |
| ---------------- | ----------------------------------- |
| `_active` | Enable/disable the extension. |
| `listeners` | Default listener setting. |
| `origin` | Extension file path. |
| `installOptions` | Version and metadata configuration. |
| `name` | Extension name. |
| `productName` | Extension display name. |
| `version` | Extension version. |
| `main` | Main file path. |
| `description` | Extension description. |
| `url` | Extension URL. |
## Configuration Options
| Option | Description | Example |
|--------|-------------|---------|
| `_active` | Enable/disable the extension | `true` or `false` |
| `listeners` | Event listeners configuration | `{}` for default |
| `origin` | Installation path of the extension | `"C:\\Users\\...\\jan\\resources\\app.asar.unpacked\\..."` |
| `installOptions` | Installation configuration | `{"version": false, "fullMetadata": true}` |
| `name` | Internal extension identifier | `"@janhq/conversational-extension"` |
| `productName` | Display name shown in UI | `"Conversational"` |
| `version` | Extension version number | `"1.0.0"` |
| `main` | Entry point file path | `"dist/index.js"` |
| `description` | Extension description | `"This extension enables conversations..."` |
| `url` | Extension repository URL | `"extension://@janhq/conversational-extension/dist/index.js"` |
## Full Example Configuration
```json title="~/jan/data/extensions/extensions.json"
{
@ -265,4 +269,33 @@ To configure an extension settings:
"url": "extension://@janhq/inference-cortex-extension/dist/index.js"
}
}
```
```
## Common Use Cases
1. **Disable an Extension**
```json
{
"@janhq/example-extension": {
"_active": false
// other settings...
}
}
```
2. **Update Entry Point**
```json
{
"@janhq/example-extension": {
"main": "new/path/index.js"
// other settings...
}
}
```
## Important Notes
- Always backup the `extensions.json` file before making changes
- Invalid JSON syntax can prevent Jan from starting properly
- Most users should manage extensions through Jan's Settings UI
- Changes require restarting Jan to take effect

View File

@ -17,4 +17,104 @@ keywords:
]
---
import { Callout } from 'nextra/components'
import { Settings } from 'lucide-react'
# Cortex
Configure how [Cortex.cpp](/docs/extensions#cortexcpp) runs AI models. Access these settings through **Settings** (<Settings width={16} height={16} style={{display:"inline"}}/>) > **Core Extensions** > **Cortex**:
## Performance Settings
### Continuous Batching
- Enables processing multiple requests simultaneously
- Improves throughput for concurrent operations, which usually improves performance
**Continuous Batching** is turned on by default:
<br/>
![Continuous Batching](../_assets/extensions-04.png)
<br/>
### Parallel Operations
- Number of prompts to run in parallel
- Affects model inference speed
By default, **Parallel Operations** is 4:
<br/>
![Parallel Operations](../_assets/extensions-05.png)
<br/>
### CPU Threads
- Number of CPU cores to use when running without GPU
- Adjust based on your system's capabilities
<Callout type="info">
Higher thread counts may improve performance but increase CPU usage.
</Callout>
Leave blank at **CPU Threads** to use system defaults:
<br/>
![Parallel Operations](../_assets/extensions-06.png)
<br/>
## Memory Settings
### Flash Attention
- Optimizes attention computation
- Reduces memory usage
- Recommended for most cases
**Flash Attention** is turned on by default:
<br/>
![Parallel Operations](../_assets/extensions-07.png)
<br/>
### Caching
- Enable to store recent prompts and responses
- Improves response time for repeated prompts
**Caching** is turned on by default:
<br/>
![Caching](../_assets/extensions-08.png)
<br/>
### KV Cache Type
- KV cache implementation type; controls memory usage and precision trade-off.
- Options:
- f16 (most stable)
- q8_0 (balanced)
- q4_0 (lowest memory)
<Callout type="warning">
Changing KV cache type from default (f16) may affect model stability.
</Callout>
By default, **KV Cache Type** is f16:
<br/>
![KV Cache Type](../_assets/extensions-09.png)
<br/>
### MMAP
- Enables memory-mapped model loading
- Reduces memory usage
- Recommended for large models
**MMAP** is turned on by default:
<br/>
![MMAP](../_assets/extensions-10.png)
<br/>
> **Best Practices:**
> - Start with default settings
> - Adjust based on your hardware capabilities
> - Monitor system performance
> - Test changes with your specific use case
<Callout type="info">
Performance impact varies by hardware, model size, and usage patterns.
</Callout>

View File

@ -22,34 +22,22 @@ import { Settings, EllipsisVertical, Plus, FolderOpen, Pencil } from 'lucide-rea
# Model Management
Configure how Jan handles model downloads and management. Access these settings through **Settings** (<Settings width={16} height={16} style={{display:"inline"}}/>) > **Extensions** > **Model Management**:
This extension configures how Jan handles model downloads and management:
- Model discovery and browsing
- Version control & configuration handling
- Download management
## Hugging Face Access Token
Access tokens authenticate your identity to Hugging Face Hub for model downloads.
Enter your token in the format: `hf_************************`
<Callout type="info">
Get your Hugging Face token from [Hugging Face Settings](https://huggingface.co/settings/tokens)
</Callout>
## Log Management
### Enable App Logs
Toggle to save logs locally on your computer for:
- Debugging model issues
- Crash reports
- Download troubleshooting
### Log Cleaning Interval
Set automatic log deletion interval in milliseconds:
- Default: 120000 (2 minutes)
- Controls disk space usage
- Prevents log accumulation
Access tokens authenticate your identity to Hugging Face Hub for model downloads.
1. Get your token from [Hugging Face Tokens](https://huggingface.co/docs/hub/en/security-tokens)
2. Navigate to **Settings** (<Settings width={16} height={16} style={{display:"inline"}}/>) > **Core Extensions** > **Model Management**
2. Enter your token in Jan: `hf_************************`
<Callout type="warning">
Keep your access tokens secure and never share them. Enable logs temporarily when needed for troubleshooting.
</Callout>
Keep your access tokens secure and never share them.
</Callout>
<br/>
![Model Management](../_assets/extensions-02.png)
<br/>

View File

@ -20,15 +20,35 @@ import { Callout } from 'nextra/components'
import { Settings, EllipsisVertical } from 'lucide-react'
## System Monitor
The System Monitor extension now offers enhanced customization for app logging. Users can toggle the application logging feature on or off and set a custom interval for clearing the app logs. To configure the app log feature, follow these steps:
1. Navigate to the main dashboard.
2. Click the **Gear Icon (⚙️)** on the bottom left of your screen.
3. Under the **Core Extensions** section, select the **System Monitoring** extension.
4. Use the **slider** to turn the app logging feature on or off.
5. Specify the log cleaning interval in milliseconds.
# System Monitoring
Provides system health and OS level data:
- Hardware utilization tracking
- Performance monitoring
- Error logging
You can configure your logs in Jan in **Settings** (<Settings width={16} height={16} style={{display:"inline"}}/>) > **Core Extensions** > **System Monitoring**:
## Enable App Logs
Jan can save logs locally on your computer for:
- Debugging model issues
- Crash reports
- Download troubleshooting
To enable, toggle on **Enable App Logs**:
<br/>
![Model Management](../_assets/extensions-03.png)
<br/>
## Log Cleaning Interval
Set automatic log deletion interval in milliseconds:
- Default: 120000 (2 minutes); however, there's no minimum or maximum intervals
- Controls disk space usage
- Prevents log accumulation
<Callout type='info'>
- You can clear the app logs manually by clicking the **Clear logs** button in the advanced settings.
- There are no minimum or maximum intervals for setting the time. However, invalid inputs will default to `120000ms (2 minutes)`.
You can clear Jan logs manually with [Clear logs](/docs/settings#log-management) in **Privacy**.
</Callout>

View File

@ -1,5 +1,5 @@
---
title: Install Extension
title: Install Extensions
description: A step-by-step guide on installing an extension.
keywords:
[
@ -20,25 +20,70 @@ keywords:
import { Callout } from 'nextra/components'
## Install Extension
# Install Extensions
Jan automatically installs 11 default extensions when you set up the application. You can also add a custom third-party extension at your own risk.
Jan comes with several [pre-installed extensions](/docs/extensions#core-extensions) that provide core functionalities. You can manually add custom third-party extensions at your own risk.
## Creating Extensions
Here are the steps to install a custom extension:
<Callout type="info">
Jan only accepts the `.tgz` file format for installing a custom extension.
Jan currently only accepts `.tgz` file format for extensions.
</Callout>
1. Click the **Gear Icon (⚙️)** on the bottom left of your screen.
> **Heads Up:**
> - Please use the following structure and setup as a **reference** only.
> - You're free to develop extensions using any approach or structure that works for your needs. As long as your extension can be packaged as a `.tgz` file, it can be installed in Jan. Feel free to experiment and innovate!
> - If you already have your own `.tgz` extension file, please move forward to [install extension](/docs/installing-extension#install-extensions) step.
#### Extension Structure
Your extension should follow this basic structure:
```
my-extension/
├── package.json # Extension metadata and dependencies
├── dist/ # Compiled JavaScript files
│ └── index.js # Main extension entry point
├── src/ # Source code
│ └── index.ts # TypeScript source
└── README.md # Extension documentation
```
#### Required package.json Fields
```json
{
"name": "@your-org/extension-name",
"version": "1.0.0",
"main": "dist/index.js",
"types": "dist/index.d.ts",
"jan": {
"type": "extension",
"displayName": "Your Extension Name",
"description": "Description of what your extension does"
},
"scripts": {
"build": "tsc",
"package": "npm pack"
},
"dependencies": {
// List your dependencies
},
"devDependencies": {
"typescript": "^5.0.0"
}
}
```
#### Example Extension Template
You can find a template for creating Jan extensions in our [example repository](https://github.com/janhq/extension-template).
## Install Extensions
To install a custom extension in Jan:
1. Navigate to [Jan Data Folder](/docs/data-folder):
2. Copy `.tgz` extension file into the extensions directory
3. Extract the `.tgz` file into its own folder under the extensions directory
4. Restart Jan
After restart, the `~/jan/data/extensions/extensions.json` file will be updated automatically to include your new extension.
2. Click the **Extensions** button.
<br/>
![Extensions](./_assets/extensions-page2.png)
<br/>
2. Select **Install Extension** on top right corner.
<br/>
![Install Extension](./_assets/install-ext.png)
<br/>
3. Select a `.tgz` extension file.
4. Restart the Jan application.
5. Then, the `~/jan/data/extensions/extensions.json` file will be updated automatically.