Updated Extensions pages
|
Before Width: | Height: | Size: 172 KiB After Width: | Height: | Size: 171 KiB |
BIN
docs/src/pages/docs/_assets/extensions-02.png
Normal file
|
After Width: | Height: | Size: 158 KiB |
BIN
docs/src/pages/docs/_assets/extensions-03.png
Normal file
|
After Width: | Height: | Size: 157 KiB |
BIN
docs/src/pages/docs/_assets/extensions-04.png
Normal file
|
After Width: | Height: | Size: 187 KiB |
BIN
docs/src/pages/docs/_assets/extensions-05.png
Normal file
|
After Width: | Height: | Size: 185 KiB |
BIN
docs/src/pages/docs/_assets/extensions-06.png
Normal file
|
After Width: | Height: | Size: 185 KiB |
BIN
docs/src/pages/docs/_assets/extensions-07.png
Normal file
|
After Width: | Height: | Size: 187 KiB |
BIN
docs/src/pages/docs/_assets/extensions-08.png
Normal file
|
After Width: | Height: | Size: 187 KiB |
BIN
docs/src/pages/docs/_assets/extensions-09.png
Normal file
|
After Width: | Height: | Size: 195 KiB |
BIN
docs/src/pages/docs/_assets/extensions-10.png
Normal file
|
After Width: | Height: | Size: 187 KiB |
@ -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"
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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/>
|
||||

|
||||
<br/>
|
||||
|
||||
|
||||
### Parallel Operations
|
||||
- Number of prompts to run in parallel
|
||||
- Affects model inference speed
|
||||
|
||||
By default, **Parallel Operations** is 4:
|
||||
<br/>
|
||||

|
||||
<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/>
|
||||

|
||||
<br/>
|
||||
|
||||
|
||||
## Memory Settings
|
||||
|
||||
### Flash Attention
|
||||
- Optimizes attention computation
|
||||
- Reduces memory usage
|
||||
- Recommended for most cases
|
||||
|
||||
**Flash Attention** is turned on by default:
|
||||
<br/>
|
||||

|
||||
<br/>
|
||||
|
||||
### Caching
|
||||
- Enable to store recent prompts and responses
|
||||
- Improves response time for repeated prompts
|
||||
|
||||
**Caching** is turned on by default:
|
||||
<br/>
|
||||

|
||||
<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/>
|
||||

|
||||
<br/>
|
||||
|
||||
|
||||
### MMAP
|
||||
- Enables memory-mapped model loading
|
||||
- Reduces memory usage
|
||||
- Recommended for large models
|
||||
|
||||
**MMAP** is turned on by default:
|
||||
<br/>
|
||||

|
||||
<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>
|
||||
|
||||
|
||||
@ -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/>
|
||||

|
||||
<br/>
|
||||
@ -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/>
|
||||

|
||||
<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>
|
||||
|
||||
|
||||
@ -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/>
|
||||

|
||||
<br/>
|
||||
2. Select **Install Extension** on top right corner.
|
||||
<br/>
|
||||

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