Jan AI 本地助手¶
为什么要学¶
Jan 是一款开源的本地 ChatGPT 替代品,专注于离线使用和隐私保护:
- 完全离线:所有数据和推理都在本地,不需要互联网
- 开源透明:代码完全开放,可审计安全性
- 插件生态:通过扩展支持 RAG、工具调用等高级功能
- 多模型支持:兼容 GGUF、TensorRT-LLM 等多种格式
- 跨平台:Windows/macOS/Linux 均可使用
- API 兼容:提供 OpenAI 兼容 API,易于集成
如果你关心数据隐私、需要离线AI助手、或想要一个可定制的本地 ChatGPT 体验,Jan 是最佳选择之一。
核心概念¶
白话解释¶
把 Jan 想象成一个"私有的 ChatGPT": - 本地推理引擎:就像在你电脑里安装了一个迷你版 OpenAI - 对话管理:类似 ChatGPT 的对话历史功能,但数据存本地 - 扩展系统:像浏览器插件一样,给 AI 添加新能力 - 模型中心:内置的"应用商店",一键下载各种模型
核心概念对照表¶
| 概念 | 说明 | 类比 |
|---|---|---|
| Thread | 对话线程,一个独立对话 | ChatGPT中的一个对话 |
| Assistant | AI助手配置(模型+提示+参数) | GPTs自定义助手 |
| Model Hub | 内置模型下载中心 | 应用商店 |
| Extension | 插件/扩展功能 | Chrome扩展 |
| Engine | 推理后端(llama.cpp/TensorRT) | 不同的引擎品牌 |
| Jan Data Folder | 本地数据存储目录 | 应用的文档文件夹 |
| Nitro | Jan的推理服务器组件 | 本地API服务 |
安装配置¶
下载安装¶
# 方法1: 官网下载
# 访问 https://jan.ai 下载对应平台安装包
# 方法2: Linux命令行
# Debian/Ubuntu
wget https://github.com/janhq/jan/releases/latest/download/jan-linux-amd64.deb
sudo dpkg -i jan-linux-amd64.deb
# AppImage
wget https://github.com/janhq/jan/releases/latest/download/jan-linux-x86_64.AppImage
chmod +x jan-linux-x86_64.AppImage
./jan-linux-x86_64.AppImage
系统要求¶
| 组件 | 最低 | 推荐 |
|---|---|---|
| RAM | 8GB | 16GB+ |
| 存储 | 5GB + 模型空间 | SSD 100GB+ |
| GPU | 可选 | NVIDIA 8GB+ / Apple M系列 |
| OS | Win10/macOS 12/Ubuntu 20 | 最新LTS版本 |
首次配置¶
- 启动 Jan
- 进入 Settings → Advanced
- 设置数据目录路径(存放模型和对话历史)
- 确认 GPU 加速状态:
- NVIDIA:需要安装 CUDA toolkit
- Apple Silicon:默认启用 Metal
- 选择默认推理引擎
快速上手¶
下载模型¶
- 点击左侧 Hub
- 浏览推荐模型或搜索
- 推荐初始模型:
- Llama 3.2 3B(小而快)
- Mistral 7B(通用平衡)
- Qwen2.5 7B(中文优秀)
- 点击 Download,等待完成
开始对话¶
- 点击左侧 Thread(对话)
- 创建新对话
- 选择模型
- 设置系统提示词(可选):
- 开始聊天
配置助手(Assistant)¶
创建专属 AI 助手:
- 进入 Assistants 面板
- 创建新 Assistant
- 配置:
- 名称:如"代码助手"
- 模型:选择要使用的模型
- 系统提示:定义角色和行为
- 参数:temperature、max_tokens 等
启动 API 服务¶
Jan 内置 OpenAI 兼容 API:
- 进入 Settings → Local API Server
- 启动服务器(默认
localhost:1337) - 测试:
curl http://localhost:1337/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "llama-3.2-3b-instruct",
"messages": [{"role": "user", "content": "Hello"}],
"temperature": 0.7
}'
进阶用法¶
1. 扩展(Extensions)系统¶
Jan 通过扩展添加功能:
# 查看已安装扩展
Settings → Extensions
# 核心扩展
- inference-nitro-extension # llama.cpp推理
- inference-tensorrt-extension # TensorRT加速
- conversational-extension # 对话管理
- model-extension # 模型管理
2. 自定义模型导入¶
// 在Jan数据目录下创建模型配置
// ~/jan/models/my-custom-model/model.json
{
"id": "my-custom-model",
"object": "model",
"name": "My Custom Model",
"version": "1.0",
"description": "自定义模型",
"format": "gguf",
"settings": {
"ctx_len": 4096,
"ngl": 33,
"embedding": false,
"n_parallel": 1
},
"parameters": {
"temperature": 0.7,
"top_p": 0.95,
"max_tokens": 2048
},
"engine": "nitro"
}
将 GGUF 文件放入同一目录即可。
3. 远程模型代理¶
Jan 也可以连接远程 API:
// 配置OpenAI远程模型
{
"id": "gpt-4-remote",
"object": "model",
"name": "GPT-4 (Remote)",
"engine": "openai",
"settings": {
"api_key": "sk-...",
"base_url": "https://api.openai.com/v1"
}
}
4. RAG 知识库¶
通过扩展实现文档问答:
- 安装 RAG 扩展
- 上传文档(PDF、TXT、MD)
- 在对话中引用文档知识
- 模型会根据文档内容回答
5. 多引擎支持¶
# 引擎选项
nitro: # 默认, llama.cpp后端
优点: 兼容性好, 支持CPU
适合: 通用场景
tensorrt-llm: # NVIDIA TensorRT加速
优点: 推理速度快2-3倍
适合: NVIDIA GPU用户
external: # 外部API
优点: 无需本地资源
适合: 连接远程服务
6. 数据目录结构¶
~/jan/
├── models/ # 模型文件
│ ├── llama-3.2-3b/
│ │ ├── model.json
│ │ └── model.gguf
│ └── mistral-7b/
├── threads/ # 对话历史
│ └── thread-001/
│ └── messages.json
├── assistants/ # 助手配置
│ └── code-helper/
│ └── assistant.json
└── extensions/ # 扩展
7. Python 集成示例¶
from openai import OpenAI
# 连接Jan本地服务
client = OpenAI(
base_url="http://localhost:1337/v1",
api_key="jan"
)
# 流式对话
def chat_stream(prompt, system="你是一个有帮助的助手"):
stream = client.chat.completions.create(
model="llama-3.2-3b-instruct",
messages=[
{"role": "system", "content": system},
{"role": "user", "content": prompt}
],
stream=True,
temperature=0.7
)
full_response = ""
for chunk in stream:
content = chunk.choices[0].delta.content
if content:
full_response += content
print(content, end="", flush=True)
return full_response
response = chat_stream("用Python实现二分查找")
常见问题¶
Q1: 模型下载速度很慢?¶
- Jan 从 HuggingFace 下载,可能需要代理
- 手动下载 GGUF 文件后放入
~/jan/models/目录 - 确保有足够的磁盘空间
Q2: GPU 未被识别?¶
# NVIDIA用户确认CUDA安装
nvidia-smi
# 在Jan设置中确认GPU加速已启用
# Settings → Advanced → GPU Acceleration → ON
# 重启Jan后重新加载模型
Q3: 模型加载后立即崩溃?¶
- 内存不足:选择更小的模型或更高量化压缩
- 减小上下文长度:修改 model.json 中的
ctx_len - 减少 GPU layers:降低
ngl值
Q4: 如何备份/迁移数据?¶
Q5: 与 Ollama 对比如何选择?¶
| 特性 | Jan | Ollama |
|---|---|---|
| GUI | 完整图形界面 | 命令行为主 |
| 易用性 | 适合新手 | 需要终端经验 |
| 扩展性 | 插件系统 | Modelfile定制 |
| API兼容 | OpenAI兼容 | OpenAI兼容 |
| 性能 | 良好 | 良好 |
| 社区 | 增长中 | 较大 |
参考资源¶
- Jan 官网 - 下载和文档
- Jan GitHub - 源代码
- Jan Discord - 社区支持
- Jan 文档 - 详细使用指南
- 模型兼容列表 - 支持的模型
- 扩展开发指南 - 自定义扩展