This commit introduces a significant restructuring of the documentation deployment and content strategy to support a gradual migration from Nextra to Astro. - **New Astro Workflow (`jan-astro-docs.yml`)**: Implemented a new, separate GitHub Actions workflow to build and deploy the Astro site from the `/website` directory to a new subdomain (`v2.jan.ai`). This isolates the new site from the existing one, allowing for independent development and testing. - **Removed Combined Workflow**: Deleted the previous, more complex combined workflow (`jan-combined-docs.yml`) and its associated test scripts to simplify the deployment process and eliminate routing conflicts. - **Astro Config Update**: Simplified the Astro configuration (`astro.config.mjs`) by removing the conditional `base` path. The Astro site is now configured to deploy to the root of its own subdomain. - **Mirrored Content**: Recreated the entire `/products` section from the Astro site within the Nextra site at `/docs/src/pages/products`. This provides content parity and a consistent user experience on both platforms during the transition period. - **File Structure**: Established a clear, organized structure for platforms, models, and tools within the Nextra `products` directory. - **Nextra Sidebar Fix**: Implemented the correct `_meta.json` structure for the new products section. Created nested meta files to build a collapsible sidebar, fixing the UI bug that caused duplicated navigation items. - **"Coming Soon" Pages**: Added clear, concise "Coming Soon" and "In Development" banners and content for upcoming products like Jan V1, Mobile, Server, and native Tools, ensuring consistent messaging across both sites. - **.gitignore**: Updated the root `.gitignore` to properly exclude build artifacts, caches, and environment files for both the Nextra (`/docs`) and Astro (`/website`) projects. - **Repository Cleanup**: Removed temporary and unused files related to the previous combined deployment attempt. This new architecture provides a stable, predictable, and low-risk path for migrating our documentation to Astro while ensuring the current production site remains unaffected.
217 lines
7.8 KiB
Plaintext
217 lines
7.8 KiB
Plaintext
---
|
||
title: Jan Data Folder
|
||
description: A guide to Jan's data structure.
|
||
sidebar_position: 2
|
||
keywords:
|
||
[
|
||
Jan,
|
||
Customizable Intelligence, LLM,
|
||
local AI,
|
||
privacy focus,
|
||
free and open source,
|
||
private and offline,
|
||
conversational AI,
|
||
no-subscription fee,
|
||
large language models,
|
||
quickstart,
|
||
getting started,
|
||
using AI model,
|
||
]
|
||
---
|
||
|
||
import { Aside } from '@astrojs/starlight/components';
|
||
|
||
Jan stores your data locally in JSON format. Your data is yours alone.
|
||
|
||
## Open Jan Data Folder
|
||
|
||
Via Jan:
|
||
1. **Settings** > **General**
|
||
2. Click on the **Change Location** button.
|
||
|
||

|
||
|
||
|
||
Via Terminal:
|
||
|
||
```bash
|
||
# Windows
|
||
cd %APPDATA%/Jan/data
|
||
|
||
# Mac
|
||
cd ~/Library/Application\ Support/Jan/data
|
||
|
||
# Linux
|
||
cd $XDG_CONFIG_HOME/Jan/data # Custom install
|
||
cd ~/.config/Jan/data # Default install
|
||
```
|
||
|
||
## Directory Structure
|
||
|
||
<Aside type="note">
|
||
Root directory: `~/jan`
|
||
</Aside>
|
||
|
||
```
|
||
/assistants/
|
||
/jan/
|
||
assistant.json
|
||
/engines/
|
||
/llama.cpp/
|
||
/extensions/
|
||
extensions.json
|
||
/@janhq/
|
||
/assistant-extension/
|
||
/conversational-extension/
|
||
/download-extension/
|
||
/engine-management-extension/
|
||
/hardware-management-extension/
|
||
/inference-cortex-extension/
|
||
/model-extension/
|
||
/files/
|
||
/logs/
|
||
app.log
|
||
/models/
|
||
/huggingface.co/
|
||
/Model_Provider_A/
|
||
/Model_A
|
||
model_A.gguf
|
||
model_A.yaml
|
||
/threads/
|
||
/thread_A/
|
||
messages.jsonl
|
||
thread.json
|
||
|
||
```
|
||
|
||
### `assistants/`
|
||
Where AI personalities live. The default one (`/assistants/jan/`):
|
||
|
||
```json
|
||
{
|
||
"avatar": "👋",
|
||
"id": "jan",
|
||
"object": "assistant",
|
||
"created_at": 1750945742.536,
|
||
"name": "Jan",
|
||
"description": "Jan is a helpful AI assistant that can use tools and help complete tasks for its users.",
|
||
"model": "*",
|
||
"instructions": "You have access to a set of tools to help you answer the user’s question. You can use only one tool per message, and you’ll receive the result of that tool in the user’s next response. To complete a task, use tools step by step—each step should be guided by the outcome of the previous one.\nTool Usage Rules:\n1. Always provide the correct values as arguments when using tools. Do not pass variable names—use actual values instead.\n2. You may perform multiple tool steps to complete a task.\n3. Avoid repeating a tool call with exactly the same parameters to prevent infinite loops.",
|
||
"tools": [
|
||
{
|
||
"type": "retrieval",
|
||
"enabled": false,
|
||
"useTimeWeightedRetriever": false,
|
||
"settings": {
|
||
"top_k": 2,
|
||
"chunk_size": 1024,
|
||
"chunk_overlap": 64,
|
||
"retrieval_template": "Use the following pieces of context to answer the question at the end.\n----------------\nCONTEXT: {CONTEXT}\n----------------\nQUESTION: {QUESTION}\n----------------\nHelpful Answer:"
|
||
}
|
||
}
|
||
],
|
||
"file_ids": []
|
||
}
|
||
```
|
||
|
||
Parameters:
|
||
|
||
| Parameter | Description | Type | Default |
|
||
|------------------------|--------------------------------------------------------------|---------|---------|
|
||
| id | Assistant identifier | string | jan |
|
||
| avatar | Assistant image | string | None |
|
||
| object | OpenAI API compatibility marker | string | None |
|
||
| created_at | Creation timestamp | string | None |
|
||
| name | Display name | string | Jan |
|
||
| description | Role description | string | Default |
|
||
| model | Allowed models (* = all) | string | * |
|
||
| instructions | Default thread instructions | string | None |
|
||
| file_ids | OpenAI compatibility field | string | None |
|
||
| tools | Available tools (retrieval only currently) | array | retrieval|
|
||
| type | Tool type | string | retrieval|
|
||
| enabled | Tool status | boolean | true |
|
||
| useTimeWeightedRetriever| Time-weighted retrieval toggle | boolean | false |
|
||
| settings | Tool configuration | object | None |
|
||
| top_k | Max retrieval results | number | 2 |
|
||
| chunk_size | Text chunk size | number | 1024 |
|
||
| chunk_overlap | Chunk overlap amount | number | 64 |
|
||
| retrieval_template | Response format template | string | None |
|
||
|
||
### `extensions/`
|
||
Add-on central. Organization extensions live in `@janhq/`, solo ones in root.
|
||
|
||
### `logs/`
|
||
Debugging headquarters (`/logs/app.txt`):
|
||
- **[APP]**: Core logs
|
||
- **[SERVER]**: API drama
|
||
- **[SPECS]**: Hardware confessions
|
||
|
||
### `models/`
|
||
The silicon brain collection. Each model has its own `model.json`.
|
||
|
||
<Aside type="note">
|
||
Full parameters: [here](/docs/model-parameters)
|
||
</Aside>
|
||
|
||
### `threads/`
|
||
Chat archive. Each thread (`/threads/jan_unixstamp/`) contains:
|
||
|
||
- `messages.jsonl`:
|
||
```json
|
||
{
|
||
"completed_at": 0,
|
||
"content": [
|
||
{
|
||
"text": {
|
||
"annotations": [],
|
||
"value": "Hello! I can help you with various tasks. I can search for information on the internet, including news, videos, images, shopping, and more. I can also scrape webpages to extract specific information. Let me know what you need!"
|
||
},
|
||
"type": "text"
|
||
}
|
||
],
|
||
"created_at": 1751012639307,
|
||
"id": "01JYR7S0JB5ZBGMJV52KWMW5VW",
|
||
"metadata": {
|
||
"assistant": {
|
||
"avatar": "👋",
|
||
"id": "jan",
|
||
"instructions": "You have access to a set of tools to help you answer the user's question. You can use only one tool per message, and you'll receive the result of that tool in the user's next response. To complete a task, use tools step by step—each step should be guided by the outcome of the previous one.\nTool Usage Rules:\n1. Always provide the correct values as arguments when using tools. Do not pass variable names—use actual values instead.\n2. You may perform multiple tool steps to complete a task.\n3. Avoid repeating a tool call with exactly the same parameters to prevent infinite loops.",
|
||
"name": "Jan",
|
||
"parameters": ""
|
||
},
|
||
"tokenSpeed": {
|
||
"lastTimestamp": 1751012637097,
|
||
"message": "01JYR7S0GW5M9PSHMRE7T8VQJM",
|
||
"tokenCount": 49,
|
||
"tokenSpeed": 22.653721682847895
|
||
}
|
||
},
|
||
"object": "thread.message",
|
||
"role": "assistant",
|
||
"status": "ready",
|
||
"thread_id": "8f2c9922-db49-4d1e-8620-279c05baf2d0",
|
||
"type": "text"
|
||
}
|
||
```
|
||
|
||
- `thread.json`:
|
||
|
||
| Parameter | Description |
|
||
|------------|------------------------------------------------|
|
||
| assistants | Assistant configuration clone |
|
||
| created | Creation timestamp |
|
||
| id | Thread identifier |
|
||
| metadata | Additional thread data |
|
||
| model | Active model settings |
|
||
| object | OpenAI compatibility marker |
|
||
| title | Thread name |
|
||
| updated | Updated timestamp |
|
||
|
||
|
||
|
||
|
||
## Delete Jan Data
|
||
|
||
Uninstall guides: [Mac](./installation/mac#step-2-clean-up-data-optional),
|
||
[Windows](./installation/windows#step-2-handle-jan-data), or [Linux](./installation/linux#uninstall-jan).
|