Skip to content

Commit

Permalink
Merge pull request janhq#1184 from janhq/docs/add-guides
Browse files Browse the repository at this point in the history
docs: add Chatting Guide
  • Loading branch information
freelerobot authored Jan 5, 2024
2 parents d59f83c + 565e690 commit f29739c
Show file tree
Hide file tree
Showing 18 changed files with 122 additions and 129 deletions.
28 changes: 12 additions & 16 deletions docs/docs/guides/00-overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,36 +15,32 @@ keywords:
]
---

Jan is a ChatGPT-alternative that runs on your own computer, with a [local API server](/api-reference/).
Jan is a ChatGPT alternative that runs on your own computer, with a [local API server](/guides/using-server).

Jan uses [open-source AI models](/docs/models), stores data in [open file formats](/specs/data-structures), is highly customizable via [extensions](/docs/extensions).
We believe in the need for an open source AI ecosystem. We're focused on building infra, tooling and [custom models](https://huggingface.co/janhq) to allow open source AIs to compete on a level playing field with proprietary offerings.

Jan believes in the need for an open source AI ecosystem. We aim to build infra and tooling to allow open source AIs to compete on a level playing field with proprietary offerings.
## Features

- Compatible with [open-source models](/guides/using-models) (GGUF, TensorRT, and remote APIs)
- Compatible with most OSes: [Windows](/install/windows/), [Mac](/install/mac), [Linux](/install/linux), with/without GPU acceleration
- Stores data in [open file formats](/developer/file-based)
- Customizable via [extensions](/developer/build-extension)
- And more in the [roadmap](https://github.com/orgs/janhq/projects/5/views/16). Join us on [Discord](https://discord.gg/5rQ2zTv3be) and tell us what you want to see!

## Why Jan?

#### 💻 Own your AI

Jan runs 100% on your own machine, [predictably](https://www.reddit.com/r/LocalLLaMA/comments/17mghqr/comment/k7ksti6/?utm_source=share&utm_medium=web2x&context=3), privately and even offline. No one else can see your conversations, not even us.
Jan runs 100% on your own machine, predictably, privately and offline. No one else can see your conversations, not even us.

#### 🏗️ Extensions

Jan ships with a powerful [extension framework](/docs/extensions), which allows developers to extend and customize Jan's functionality. In fact, most core modules of Jan are [built as extensions](/specs/architecture) and use the same extensions API.
Jan ships with a local-first, AI-native, and cross platform [extensions framework](/developer/build-extension). Developers can extend and customize everything from functionality to UI to branding. In fact, Jan's current main features are actually built as extensions on top of this framework.

#### 🗂️ Open File Formats

Jan stores data in a [local folder of non-proprietary files](/specs/data-structures). You're never locked-in and can do what you want with your data with extensions, or even a different app.
Jan stores data in your [local filesystem](/developer/file-based). Your data never leaves your computer. You are free to delete, export, migrate your data, even to a different platform.

#### 🌍 Open Source

Both Jan and [Nitro](https://nitro.jan.ai), our lightweight inference engine, are licensed via the open source [AGPLv3 license](https://github.com/janhq/jan/blob/main/LICENSE).

<!-- ## Design Principles -->

<!-- OpenAI meets VSCode meets Obsidian.
Minimalism: https://docusaurus.io/docs#design-principles. Not having abstractions is better than having the wrong abstractions. Assistants as code. Only including features that are absolutely necessary in the Jan API.
File-based: User should be able to look at a Jan directory and intuit how it works. Transparency. Editing things via a text editor, vs. needing a database tool for SQLite.
Participatory: https://www.getlago.com/blog/the-5-reasons-why-we-chose-open-source -->
55 changes: 55 additions & 0 deletions docs/docs/guides/02-installation/05-hardware.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
---
title: Hardware Requirements
description: Jan is a ChatGPT-alternative that runs on your own computer, with a local API server.
keywords:
[
Jan AI,
Jan,
ChatGPT alternative,
local AI,
private AI,
conversational AI,
no-subscription fee,
large language model,
]
---

Jan is designed to be lightweight and able to run Large Language Models (LLMs) out-of-the-box.

The current download size is less than 150 MB and has a disk space of ~300 MB.

To ensure optimal performance, please see the following system requirements:

## Disk Space

- Minimum requirement
- At least 5 GB of free disk space is required to accommodate the download, storage, and management of open-source LLM models.
- Recommended
- For an optimal experience and to run most available open-source LLM models on Jan, it is recommended to have 10 GB of free disk space.

## RAM and GPU VRAM

The amount of RAM on your system plays a crucial role in determining the size and complexity of LLM models you can effectively run. Jan can be utilized on traditional computers where RAM is a key resource. For enhanced performance, Jan also supports GPU acceleration, utilizing the VRAM of your graphics card.

## Best Models for your V/RAM

The RAM and GPU VRAM requirements are dependent on the size and complexity of the LLM models you intend to run. The following are some general guidelines to help you determine the amount of RAM or VRAM you need to run LLM models on Jan

- `8 GB of RAM`: Suitable for running smaller models like 3B models or quantized 7B models
- `16 GB of RAM (recommended)`: This is considered the "minimum usable models" threshold, particularly for 7B models (e.g Mistral 7B, etc)
- `Beyond 16GB of RAM`: Required for handling larger and more sophisticated model, such as 70B models.

## Architecture

Jan is designed to run on muptiple architectures, versatility and widespread usability. The supported architectures include:

### CPU Support

- `x86`: Jan is well-suited for systems with x86 architecture, which is commonly found in traditional desktops and laptops. It ensures smooth performance on a variety of devices using x86 processors.
- `ARM`: Jan is optimized to run efficiently on ARM-based systems, extending compatibility to a broad range of devices using ARM processors.

### GPU Support

- `NVIDIA`
- `AMD`
- `ARM64 Mac`
91 changes: 2 additions & 89 deletions docs/docs/guides/02-installation/README.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,8 @@ import TabItem from "@theme/TabItem";
In this quickstart we'll show you how to:

- Download the Jan Desktop client - Mac, Windows, Linux, (and toaster) compatible
- Download and customize models
- Import custom models
- Use the local server at port `1337`
- Download the Nightly (unstable) version
- Build the application from source

## Setup

Expand All @@ -50,89 +49,3 @@ In this quickstart we'll show you how to:
- To build Jan Desktop from scratch (and have the right to tinker!)

See the [Build from Source](/install/from-source) guide.

### Working with Models

Jan provides a list of recommended models to get you started.
You can find them in the in-app Hub.

1. `cmd + k` and type "hub" to open the Hub.
2. Download your preferred models.
3. `cmd + k` and type "chat" to open the conversation UI and start chatting.
4. Your model may take a few seconds to start up.
5. You can customize the model settings, at each conversation thread level, on the right panel.
6. To change model defaults globally, edit the `model.json` file. See the [Models](/guides/models) guide.

### Importing Models

Jan is compatible with all GGUF models.

For more information on how to import custom models, not found in the Hub, see the [Models](/guides/models) guide.

## Working with the Local Server

> This feature is currently under development. So expect bugs!
Jan runs a local server on port `1337` by default.

The endpoints are OpenAI compatible.

See the [API server guide](/guides/server) for more information.

## Next Steps

---

TODO: Merge this in:

Getting up and running open-source AI models on your own computer with Jan is quick and easy. Jan is lightweight and can run on a variety of hardware and platform versions. Specific requirements tailored to your platform are outlined below.

## Cross platform

A free, open-source alternative to OpenAI that runs on the Linux, macOS, and Windows operating systems. Please refer to the specific guides below for your platform

- [Linux](/install/linux)
- [MacOS (Mac Intel Chip and Mac Apple Silicon Chip)](/install/mac)
- [Windows](/install/windows)

## Requirements for Jan

### Hardware

Jan is a lightweight platform designed for seamless download, storage, and execution of open-source Large Language Models (LLMs). With a small download size of less than 200 MB and a disk footprint of under 300 MB, Jan is optimized for efficiency and should run smoothly on modern hardware.

To ensure optimal performance while using Jan and handling LLM models, it is recommended to meet the following system requirements:

#### Disk space

- Minimum requirement
- At least 5 GB of free disk space is required to accommodate the download, storage, and management of open-source LLM models.
- Recommended
- For an optimal experience and to run most available open-source LLM models on Jan, it is recommended to have 10 GB of free disk space.

#### Random Access Memory (RAM) and Graphics Processing Unit Video Random Access Memory (GPU VRAM)

The amount of RAM on your system plays a crucial role in determining the size and complexity of LLM models you can effectively run. Jan can be utilized on traditional computers where RAM is a key resource. For enhanced performance, Jan also supports GPU acceleration, utilizing the VRAM of your graphics card.

#### Relationship between RAM and VRAM Sizes in Relation to LLM Models

The RAM and GPU VRAM requirements are dependent on the size and complexity of the LLM models you intend to run. The following are some general guidelines to help you determine the amount of RAM or VRAM you need to run LLM models on Jan

- 8 GB of RAM: Suitable for running smaller models like 3B models or quantized 7B models
- 16 GB of RAM(recommended): This is considered the "minimum usable models" threshold, particularly for 7B models (e.g Mistral 7B, etc)
- Beyond 16GB of RAM: Required for handling larger and more sophisticated model, such as 70B models.

### Architecture

Jan is designed to run on muptiple architectures, versatility and widespread usability. The supported architectures include:

#### CPU

- x86: Jan is well-suited for systems with x86 architecture, which is commonly found in traditional desktops and laptops. It ensures smooth performance on a variety of devices using x86 processors.
- ARM: Jan is optimized to run efficiently on ARM-based systems, extending compatibility to a broad range of devices using ARM processors.

#### GPU

- NVIDIA: Jan optimizes the computational capabilities of NVIDIA GPUs, achieving efficiency through the utilization of llama.cpp. This strategic integration enhances the performance of Jan, particularly in resource-intensive Language Model (LLM) tasks. Users can expect accelerated processing and improved responsiveness when leveraging the processing capabilities inherent in NVIDIA GPUs.
- AMD: Users with AMD GPUs can seamlessly integrate Jan's GPU acceleration, offering a comprehensive solution for diverse hardware configurations and preferences.
- ARM64 Mac: Jan seamlessly supports ARM64 architecture on Mac systems, leveraging Metal for efficient GPU operations. This ensures a smooth and efficient experience for users with Apple Silicon Chips, utilizing the power of Metal for optimal performance on ARM64 Mac devices.
12 changes: 0 additions & 12 deletions docs/docs/guides/03-chatting/01-start-thread.md

This file was deleted.

3 changes: 0 additions & 3 deletions docs/docs/guides/03-chatting/02-upload-docs.md

This file was deleted.

3 changes: 0 additions & 3 deletions docs/docs/guides/03-chatting/03-upload-images.md

This file was deleted.

53 changes: 53 additions & 0 deletions docs/docs/guides/03-chatting/04-manage-history.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,56 @@
---
title: Manage Chat History
slug: /guides/chatting/manage-history/
description: Jan is a ChatGPT-alternative that runs on your own computer, with a local API server.
keywords:
[
Jan AI,
Jan,
ChatGPT alternative,
local AI,
private AI,
conversational AI,
no-subscription fee,
large language model,
manage-chat-history,
]
---

Jan offers a convenient and private way to interact with a conversational AI locally on your computer. This guide will walk you through how to manage your chat history with Jan, ensuring your interactions remain private and organized.

## Viewing Chat History

1. Navigate to the main dashboard.
2. Locate the list of threads on the left side of the screen. This list shows all your conversations.
3. Select a thread to view the conversation in the main chat window.
4. Scroll up and down to view the entire chat history in the selected thread.

<br></br>
![viewing-chat-history](./assets/viewing-chat-history.gif)

## Managing Threads via Folders

This feature allows you to directly manage your thread history and configurations.

1. Navigate to the Thread that you want to manage via the list of threads on the left side of the dashboard.
2. Click on the three dots (⋮) on the `Thread` section on the right side of the dashboard. There are two options:

- `Reveal in Finder` will open the folder containing the thread history and configurations.
- `View as JSON` will open the thread.json file in your default browser.

<br></br>
![managing-threads-via-folders](./assets/managing-threads-via-folders.gif)

## Clean Thread

To streamline your conservation view, click on the three dots (⋮) on the thread you want to clean, then select `Clean Thread`. It will remove all messages from the thread. It is useful if you want to keep the thread settings, but want to remove the messages from the chat window.

<br></br>
![clean-thread](./assets/clean-thread.gif)

## Delete Thread

To delete a thread, click on the three dots (⋮) on the thread you want to delete, then select `Delete Thread`. It will remove the thread from the list of threads.

<br></br>
![delete-thread](./assets/delete-thread.gif)
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 0 additions & 3 deletions docs/docs/guides/04-using-models/04-customize-models.md

This file was deleted.

3 changes: 0 additions & 3 deletions docs/docs/guides/04-using-models/05-package-models.md

This file was deleted.

0 comments on commit f29739c

Please sign in to comment.