269 lines
8.9 KiB
Plaintext
269 lines
8.9 KiB
Plaintext
---
|
|
title: Manual Import
|
|
sidebar_position: 3
|
|
description: A step-by-step guide on how to perform manual import feature.
|
|
keywords:
|
|
[
|
|
Jan AI,
|
|
Jan,
|
|
ChatGPT alternative,
|
|
local AI,
|
|
private AI,
|
|
conversational AI,
|
|
no-subscription fee,
|
|
large language model,
|
|
import-models-manually,
|
|
absolute-filepath,
|
|
]
|
|
---
|
|
|
|
<head>
|
|
<title>Manual Import</title>
|
|
<meta name="description" content="A step-by-step guide on how to perform manual import feature. Learn how to import models into Jan using both drag-and-drop method and absolute file path, along with creating model folders and configuring the model JSON file."/>
|
|
<meta name="keywords" content="Jan AI, Jan, ChatGPT alternative, local AI, private AI, conversational AI, no-subscription fee, large language model, import-models-manually, absolute-filepath"/>
|
|
<meta property="og:title" content="Manual Import"/>
|
|
<meta property="og:description" content="A step-by-step guide on how to perform manual import feature. Learn how to import models into Jan using both drag-and-drop method and absolute file path, along with creating model folders and configuring the model JSON file."/>
|
|
<meta property="og:url" content="https://jan.ai/guides/manual-import"/>
|
|
<meta name="twitter:card" content="summary"/>
|
|
<meta name="twitter:title" content="Manual Import"/>
|
|
<meta name="twitter:description" content="A step-by-step guide on how to perform manual import feature. Learn how to import models into Jan using both drag-and-drop method and absolute file path, along with creating model folders and configuring the model JSON file."/>
|
|
</head>
|
|
|
|
import Tabs from '@theme/Tabs';
|
|
import TabItem from '@theme/TabItem';
|
|
import janModel from './assets/jan-model-hub.png';
|
|
|
|
|
|
This guide will show you how to perform manual import. In this guide, we are using a GGUF model from [HuggingFace](https://huggingface.co/) and our latest model, [Trinity](https://huggingface.co/janhq/trinity-v1-GGUF), as an example.
|
|
|
|
## Newer versions - nightly versions and v0.4.8+
|
|
|
|
Starting with version 0.4.8, Jan has introduced the capability to import models using a UI drag-and-drop method. This allows you to import models directly into the Jan application UI by dragging the `.GGUF` file from your directory into the Jan application.
|
|
|
|
### 1. Get the Model
|
|
Download the model from HuggingFace in the `.GGUF` format.
|
|
|
|
### 2. Import the Model
|
|
1. Open your Jan application.
|
|
2. Click the **Import Model** button.
|
|
3. Open your downloaded model.
|
|
4. Drag the `.GGUF` file from your directory into the Jan **Import Model** window.
|
|
|
|
### 3. Done!
|
|
|
|
If your model doesn't show up in the **Model Selector** in conversations, **restart the app** or contact us via our [Discord community](https://discord.gg/Dt7MxDyNNZ).
|
|
|
|
## Newer versions - nightly versions and v0.4.7+
|
|
|
|
Starting from version 0.4.7, Jan has introduced the capability to import models using an absolute file path. It allows you to import models from any directory on your computer.
|
|
|
|
### 1. Get the Absolute Filepath of the Model
|
|
|
|
After downloading the model from HuggingFace, get the absolute filepath of the model.
|
|
|
|
### 2. Configure the Model JSON
|
|
|
|
1. Navigate to the `~/jan/models` folder.
|
|
2. Create a folder named `<modelname>`, for example, `tinyllama`.
|
|
3. Create a `model.json` file inside the folder, including the following configurations:
|
|
|
|
- Ensure the `id` property matches the folder name you created.
|
|
- Ensure the `url` property is the direct binary download link ending in `.gguf`. Now, you can use the absolute filepath of the model file.
|
|
- Ensure the `engine` property is set to `nitro`.
|
|
|
|
```json
|
|
{
|
|
"sources": [
|
|
{
|
|
"filename": "tinyllama.gguf",
|
|
// highlight-next-line
|
|
"url": "<absolute-filepath-of-the-model-file>"
|
|
}
|
|
],
|
|
"id": "tinyllama-1.1b",
|
|
"object": "model",
|
|
"name": "(Absolute Path) TinyLlama Chat 1.1B Q4",
|
|
"version": "1.0",
|
|
"description": "TinyLlama is a tiny model with only 1.1B. It's a good model for less powerful computers.",
|
|
"format": "gguf",
|
|
"settings": {
|
|
"ctx_len": 4096,
|
|
"prompt_template": "<|system|>\n{system_message}<|user|>\n{prompt}<|assistant|>",
|
|
"llama_model_path": "tinyllama-1.1b-chat-v1.0.Q4_K_M.gguf"
|
|
},
|
|
"parameters": {
|
|
"temperature": 0.7,
|
|
"top_p": 0.95,
|
|
"stream": true,
|
|
"max_tokens": 2048,
|
|
"stop": [],
|
|
"frequency_penalty": 0,
|
|
"presence_penalty": 0
|
|
},
|
|
"metadata": {
|
|
"author": "TinyLlama",
|
|
"tags": ["Tiny", "Foundation Model"],
|
|
"size": 669000000
|
|
},
|
|
"engine": "nitro"
|
|
}
|
|
```
|
|
|
|
:::warning
|
|
|
|
- If you are using Windows, you need to use double backslashes in the url property, for example: `C:\\Users\\username\\filename.gguf`.
|
|
|
|
:::
|
|
|
|
### 3. Done!
|
|
|
|
If your model doesn't show up in the **Model Selector** in conversations, **restart the app** or contact us via our [Discord community](https://discord.gg/Dt7MxDyNNZ).
|
|
|
|
## Newer versions - nightly versions and v0.4.4+
|
|
|
|
### 1. Create a Model Folder
|
|
|
|
1. Navigate to the `App Settings` > `Advanced` > `Open App Directory` > `~/jan/models` folder.
|
|
|
|
<Tabs groupId = "operating-systems" >
|
|
<TabItem value="mac" label = "MacOS" default>
|
|
```sh
|
|
cd ~/jan/models
|
|
```
|
|
</TabItem>
|
|
<TabItem value = "windows" label = "Windows" default>
|
|
```sh
|
|
C:/Users/<your_user_name>/jan/models
|
|
```
|
|
</TabItem>
|
|
<TabItem value = "linux" label = "Linux" default>
|
|
```sh
|
|
cd ~/jan/models
|
|
```
|
|
</TabItem>
|
|
</Tabs>
|
|
|
|
2. In the `models` folder, create a folder with the name of the model.
|
|
|
|
```sh
|
|
mkdir trinity-v1-7b
|
|
```
|
|
|
|
### 2. Drag & Drop the Model
|
|
|
|
Drag and drop your model binary into this folder, ensuring the `modelname.gguf` is the same name as the folder name, e.g. `models/modelname`.
|
|
|
|
### 3. Done!
|
|
|
|
If your model doesn't show up in the **Model Selector** in conversations, **restart the app** or contact us via our [Discord community](https://discord.gg/Dt7MxDyNNZ).
|
|
|
|
## Older versions - before v0.44
|
|
|
|
### 1. Create a Model Folder
|
|
|
|
1. Navigate to the `App Settings` > `Advanced` > `Open App Directory` > `~/jan/models` folder.
|
|
|
|
<Tabs groupId = "operating-systems" >
|
|
<TabItem value="mac" label = "MacOS" default>
|
|
```sh
|
|
cd ~/jan/models
|
|
```
|
|
</TabItem>
|
|
<TabItem value = "windows" label = "Windows" default>
|
|
```sh
|
|
C:/Users/<your_user_name>/jan/models
|
|
```
|
|
</TabItem>
|
|
<TabItem value = "linux" label = "Linux" default>
|
|
```sh
|
|
cd ~/jan/models
|
|
```
|
|
</TabItem>
|
|
</Tabs>
|
|
|
|
2. In the `models` folder, create a folder with the name of the model.
|
|
|
|
```sh
|
|
mkdir trinity-v1-7b
|
|
```
|
|
|
|
### 2. Create a Model JSON
|
|
|
|
Jan follows a folder-based, [standard model template](https://jan.ai/docs/engineering/models/) called a `model.json` to persist the model configurations on your local filesystem.
|
|
|
|
This means that you can easily reconfigure your models, export them, and share your preferences transparently.
|
|
|
|
<Tabs groupId = "operating-systems" >
|
|
<TabItem value="mac" label = "MacOS" default>
|
|
```sh
|
|
cd trinity-v1-7b
|
|
touch model.json
|
|
```
|
|
</TabItem>
|
|
<TabItem value = "windows" label = "Windows" default>
|
|
```sh
|
|
cd trinity-v1-7b
|
|
echo {} > model.json
|
|
```
|
|
</TabItem>
|
|
<TabItem value = "linux" label = "Linux" default>
|
|
```sh
|
|
cd trinity-v1-7b
|
|
touch model.json
|
|
```
|
|
</TabItem>
|
|
</Tabs>
|
|
|
|
To update `model.json`:
|
|
|
|
- Match `id` with folder name.
|
|
- Ensure GGUF filename matches `id`.
|
|
- Set `source.url` to direct download link ending in `.gguf`. In HuggingFace, you can find the direct links in the `Files and versions` tab.
|
|
- Verify that you are using the correct `prompt_template`. This is usually provided in the HuggingFace model's description page.
|
|
|
|
```json title="model.json"
|
|
{
|
|
"sources": [
|
|
{
|
|
"filename": "trinity-v1.Q4_K_M.gguf",
|
|
"url": "https://huggingface.co/janhq/trinity-v1-GGUF/resolve/main/trinity-v1.Q4_K_M.gguf"
|
|
}
|
|
],
|
|
"id": "trinity-v1-7b",
|
|
"object": "model",
|
|
"name": "Trinity-v1 7B Q4",
|
|
"version": "1.0",
|
|
"description": "Trinity is an experimental model merge of GreenNodeLM & LeoScorpius using the Slerp method. Recommended for daily assistance purposes.",
|
|
"format": "gguf",
|
|
"settings": {
|
|
"ctx_len": 4096,
|
|
"prompt_template": "{system_message}\n### Instruction:\n{prompt}\n### Response:",
|
|
"llama_model_path": "trinity-v1.Q4_K_M.gguf"
|
|
},
|
|
"parameters": {
|
|
"max_tokens": 4096
|
|
},
|
|
"metadata": {
|
|
"author": "Jan",
|
|
"tags": ["7B", "Merged"],
|
|
"size": 4370000000
|
|
},
|
|
"engine": "nitro"
|
|
}
|
|
```
|
|
|
|
:::note
|
|
For more details regarding the `model.json` settings and parameters fields, please see [here](/docs/guides/models/integrate-remote.mdx#modeljson).
|
|
:::
|
|
|
|
### 3. Download the Model
|
|
|
|
1. Restart Jan and navigate to the Hub.
|
|
2. Locate your model.
|
|
3. Click **Download** button to download the model binary.
|
|
|
|
:::info[Assistance and Support]
|
|
|
|
If you have questions, please join our [Discord community](https://discord.gg/Dt7MxDyNNZ) for support, updates, and discussions.
|
|
|
|
::: |