Skip to content
This repository has been archived by the owner on Oct 14, 2024. It is now read-only.

docs: Updated the docs #123

Merged
merged 4 commits into from
Apr 18, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 28 additions & 34 deletions src/pages/docs/advanced.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -26,24 +26,24 @@ import { Tabs, Steps, Callout } from 'nextra/components'

This guide will show you how to use the advanced settings in Jan.

## Access the Advanced Settings
## Access Advanced Settings

To access the Jan's advanced settings, follow the steps below:
To access Jan's advanced settings, follow the steps below:

1. Navigate to the main dashboard.
2. Click the **gear icon (⚙️)** on the bottom left of your screen.
2. Click the **Gear Icon (⚙️)** on the bottom left of your screen.
3. Under the **Settings screen**, click the **Advanced Settings**.
4. You can configure the following settings:

| Feature | Description |
| ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Keyboard Shortcuts** | Keyboard shortcuts speed up your workflow. For a quick overview of useful keyboard shortcuts, refer to the list [below](advanced#keyboard-shortcuts). |
| **Experimental Mode** | Enables experimental features that may be unstable. |
| **GPU Acceleration** | Enables the boosting of your model performance by using your GPU devices for acceleration. |
| **GPU Acceleration** | Enables boosting your model performance by using your GPU devices for acceleration. |
| **Jan Data Folder** | Location for messages, model configurations, and user data. Changeable to a different location. |
| **HTTPS Proxy & Ignore SSL Certificate** | Use a proxy server for internet connections and ignore SSL certificates for self-signed certificates. Please check out the guide on how to set up your own HTTPS proxy server [here](advanced#https-proxy). |
| **HTTPS Proxy & Ignore SSL Certificate** | Use a proxy server for internet connections and ignore SSL certificates for self-signed certificates. Please check out the guide on setting up your HTTPS proxy server [here](advanced#https-proxy). |
| **Clear Logs** | Removes all logs from the Jan application. |
| **Reset To Factory Default** | Resets the application to its original state, deleting all data including model customizations and conversation history. |
| **Reset To Factory Default** | Resets the application to its original state, deleting all data, including model customizations and conversation history. |

## Keyboard Shortcuts

Expand Down Expand Up @@ -98,31 +98,31 @@ Here are some of the keyboard shortcuts that you can use in Jan.

## Enable the Experimental Mode

To try out new fetures that are still in testing phase, follow the steps below:
To try out new features that are still in the testing phase, follow the steps below:

1. Navigate to the main dashboard.
2. Click the **gear icon (⚙️)** on the bottom left of your screen.
3. Under the **Settings screen**, click the **Advanced Settings**.
4. On the **Experimental Mode** click the slider to enable.
4. On the **Experimental Mode**, click the slider to enable.

## Enable the GPU Acceleration

To enhance your model performance, follow the steps below:

<Callout type="warning">
Ensure that you have read the [troubleshooting
Ensure you have read the [troubleshooting
guide](/docs/troubleshooting#troubleshooting-nvidia-gpu) here for further
assistance.
</Callout>

1. Navigate to the main dashboard.
2. Click the **gear icon (⚙️)** on the bottom left of your screen.
3. Under the **Settings screen**, click the **Advanced Settings**.
4. On the **GPU Acceleration** click the slider to enable.
4. On the **GPU Acceleration**, click the slider to enable.

## Access the Jan Data Folder

To access the folder where messages, model configurations and user data are stored, follow the steps below:
To access the folder where messages, model configurations, and user data are stored, follow the steps below:

1. Navigate to the main dashboard.
2. Click the **gear icon (⚙️)** on the bottom left of your screen.
Expand All @@ -131,15 +131,14 @@ To access the folder where messages, model configurations and user data are stor

## HTTPS Proxy

HTTPS Proxy encrypts data between your browser and the internet, making it hard for outsiders to intercept or read. It also helps you to maintain your privacy and security while being able to bypass regional restrictions on internet.
HTTPS Proxy encrypts data between your browser and the internet, making it hard for outsiders to intercept or read. It also helps you maintain your privacy and security while bypassing regional restrictions on the internet.

<Callout type="info" emoji="">
- When configuring Jan using an HTTPS proxy, the speed of the downloading
model may be affected due to the encryption and decryption process. It also
depends on the networking of the cloud service provider.
model may be affected by the encryption and decryption process. It also
depends on the cloud service provider's networking.

- HTTPS Proxy does
not affect the remote model usage.
- HTTPS Proxy does not affect the remote model usage.
</Callout>

### Setting Up Your Own HTTPS Proxy Server
Expand All @@ -154,7 +153,7 @@ This guide provides a simple overview of setting up an HTTPS proxy server using

### Step 1: Choosing a Server

1. Firstly, you need to choose a server to host your proxy server.
1. First, you must choose a server to host your proxy server.

<Callout type="info">
We recommend using a well-known cloud provider service like:
Expand All @@ -166,7 +165,7 @@ This guide provides a simple overview of setting up an HTTPS proxy server using
</Callout>


2. Ensure that your server has a public IP address and is accessible from the internet.
2. Ensure your server has a public IP address and is accessible from the internet.

### Step 2: Installing Squid

Expand All @@ -181,7 +180,7 @@ sudo apt-get install squid

To enable HTTPS, you will need to configure Squid with SSL support.

1. Squid requires an SSL certificate to be able to handle HTTPS traffic. You can generate a self-signed certificate or obtain one from a Certificate Authority (CA). For a self-signed certificate, you can use OpenSSL:
1. Squid requires an SSL certificate to handle HTTPS traffic. You can generate a self-signed certificate or obtain one from a Certificate Authority (CA). For a self-signed certificate, you can use OpenSSL:

```bash
openssl req -new -newkey rsa:2048 -days 365 -nodes -x509 -keyout squid-proxy.pem -out squid-proxy.pem
Expand All @@ -195,7 +194,7 @@ ssl_bump server-first all
ssl_bump bump all
```

3. To intercept HTTPS traffic, Squid uses a process called SSL Bumping. This process allows Squid to decrypt and re-encrypt HTTPS traffic. To enable SSL Bumping, ensure the `ssl_bump` directives are configured correctly in your `squid.conf` file.
3. To intercept HTTPS traffic, Squid uses SSL Bumping. This process allows Squid to decrypt and re-encrypt HTTPS traffic. To enable SSL Bumping, ensure the `ssl_bump` directives are configured correctly in your `squid.conf` file.

### Step 4 (Optional): Configure ACLs and Authentication

Expand All @@ -206,7 +205,7 @@ acl allowed_ips src "/etc/squid/allowed_ips.txt"
http_access allow allowed_ips
```

2. If you want to add an authentication layer, Squid supports several authentication schemes. Basic authentication setup might look like this:
2. If you want to add an authentication layer, Squid supports several authentication schemes. The basic authentication setup might look like this:

```bash
auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwords
Expand All @@ -228,34 +227,29 @@ sudo systemctl restart squid
<Callout type="info">
Tips for Secure Your Proxy:

- **Firewall rules**: Ensure that only intended users or IP addresses can connect to your proxy server. This can be achieved by setting up appropriate firewall rules.
- **Regular updates**: Keep your server and proxy software updated to ensure that you are protected against known vulnerabilities.
- **Firewall rules**: Ensure only intended users or IP addresses can connect to your proxy server. This can be achieved by setting up appropriate firewall rules.
- **Regular updates**: Keep your server and proxy software updated to protect you against known vulnerabilities.
- **Monitoring and logging**: Monitor your proxy server for unusual activity and enable logging to keep track of the traffic passing through your proxy.
</Callout>

</Steps>



### Step 6: Enable the HTTPS Proxy



### Setting Up Jan to Use Your HTTPS Proxy

Once you have your HTTPS proxy server set up, you can configure Jan to use it.
Once you set up your HTTPS proxy server, you can configure it for Jan.

1. Navigate to **Settings** > **Advanced Settings**.
2. On the **HTTPS Proxy** click the slider to enable.
2. On the **HTTPS Proxy**, click the slider to enable.
3. Input your domain in the blank field.

</Steps>

## Ignore SSL Certificate

To Allow self-signed or unverified certificates, follow the steps below:

1. Navigate to the main dashboard.
2. Click the **gear icon (⚙️)** on the bottom left of your screen.
3. Under the **Settings screen**, click the **Advanced Settings**.
4. On the **Ignore SSL Certificates** click the slider to enable.
4. On the **Ignore SSL Certificates**, click the slider to enable.

## Clear Logs

Expand Down
10 changes: 5 additions & 5 deletions src/pages/docs/architecture.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -22,16 +22,16 @@ import { Callout } from 'nextra/components'

## Overview

- Jan has a modular architecture and is largely built on top of its own modules.
- Jan uses a local [file-based approach](/developer/file-based) for data persistence.
- Jan has a modular architecture built mainly on top of its modules.
- Jan uses a local file-based approach for data persistence.
- Jan provides an Electron-based [Desktop UI](https://github.com/janhq/jan).
- Jan provides an embeddable inference engine, written in C++, called [Nitro](https://nitro.jan.ai/docs/).

## Extensions

Jan has an Extensions API inspired by VSCode. In fact, most of Jan's core services are built as extensions.
Jan has an Extensions API inspired by VSCode. Most of Jan's core services are built as extensions.

Jan supports the following OpenAI compatible extensions:
Jan supports the following OpenAI-compatible extensions:

| Jan Module | Description | API Docs |
| ---------- | ------------- | --------------------------------------------- |
Expand All @@ -44,6 +44,6 @@ Jan supports the following OpenAI compatible extensions:

## 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.
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.
10 changes: 2 additions & 8 deletions src/pages/docs/assistants.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -27,13 +27,7 @@ This guide explains how to customize the default Assistant settings and add a ne

To change Jan's default settings, follow these steps:

1. In any thread settings, click on the 3 dots next to the **assistant** dropdown.
1. Click the three dots next to the **assistant** dropdown in any thread settings.
2. Select **Edit global defaults**.
3. Edit the `assistant.json` file based on your preferences. e.g. set a default prompt for `instructions`.
3. Edit the `assistant.json` file based on your preferences. e.g., set a default prompt for `instructions`.
4. Refresh the application. Your changes should persist for all future threads.

## Add Assistants

<Callout type="info">
Coming Soon
</Callout>
Loading
Loading