Skip to content
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
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@

## [Unreleased]

### 变更

- P1.4:本机模型与本机知识库作为默认路径。设置向导默认先选 Ollama(本机 OpenAI 兼容地址不必填云密钥);模型页默认打开「本地」标签;知识库空状态先引导本机文件夹,向量默认本机 ONNX。云厂商与 ima 仍是可选项。说明见 `docs/user-guide.md`、`docs/configuration.md`。

### 文档

- 冻结 FreeOS 产品契约(P0.1):[docs/product-contract.md](docs/product-contract.md) / [docs/product-contract.zh-CN.md](docs/product-contract.zh-CN.md)。核心愿景采用「创立初心」定稿(中文原文;英文 README 为忠实对应;使用方式段为工作室比喻:本机安顿起步,组织像另一间可独立布置的房间)。产品口号:**FreeOS:自由的 AI 工作室,想象空间由你来打开** / *Your FreeOS, free for you.* 托管 Node / 内嵌组织页仅为过渡桥,终态是把 openXYOS 迁入宿主并导出可商业化源码。取代先前「组织身份为唯一权威」与「永久 / 默认捆绑 Node 运行时」表述。冲突文档改为 Historical vs Current,不删工程历史。
Expand Down
12 changes: 11 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,17 @@ uv run freeos run

`freeos` is the product CLI. `octop` remains a package-compatible alias.

Open the dashboard (default listen port is printed by `run`, commonly `http://127.0.0.1:18900`). Complete the first-run wizard.
Open the dashboard (default listen port is printed by `run`, commonly `http://127.0.0.1:18900`). Complete the first-run wizard — **Ollama / a local OpenAI-compatible URL is the first choice**; cloud keys stay optional.

### Local models and knowledge bases

FreeOS prefers runtimes and files on this computer. Cloud vendors are optional.

| What | Where |
|---|---|
| Chat models | First-run wizard (Ollama selected first) or **Models → Local**: start Ollama, register GGUF, or add a local OpenAI-compatible URL (LM Studio, llama.cpp, vLLM). |
| Knowledge | Sidebar **Knowledge Bases**: mount a local folder first. Local ONNX embeddings are the default vector path. ima / WeKnora remain optional connectors. |
| Detail | [User guide](docs/user-guide.md#四配置模型llm-供应商) · [Configuration](docs/configuration.md#local-models-and-knowledge-bases) · [Product contract](docs/product-contract.md#local-models-and-knowledge-bases) |

Data directory precedence:

Expand Down
2 changes: 2 additions & 0 deletions README.zh-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,8 @@ uv sync
uv run freeos run
```

第一次打开控制台时,向导默认先选 **Ollama / 本机 OpenAI 兼容地址**,不必先填云厂商密钥。侧栏 **模型 → 本地** 可启动 Ollama、注册 GGUF;**知识库** 先挂接本机文件夹,向量默认本机 ONNX。说明见 [用户指南](docs/user-guide.md)、[配置](docs/configuration.md#local-models-and-knowledge-bases)。

不要将 API Key、令牌或真实客户资料提交到公开仓库。

完整功能、架构和发布说明请见 [English README](README.md)、[中文宿主说明](README_CN.md) 与 [Wiki](https://github.com/XYAIStudio/FreeOS/wiki)。openXYOS 能力哪些已在宿主原生、哪些仍在托管 Node / iframe,见 [能力迁移图(P0.2)](docs/org-capability-migration-map.zh-CN.md)。
4 changes: 2 additions & 2 deletions README_CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -276,7 +276,7 @@ octop run --host 0.0.0.0 --port 8088
octop service start
```

打开 **http://127.0.0.1:8088**。Docker 首次初始化会自动生成随机管理员密码(写入 `/data/.octop/credential.txt`),除非设置了 `OCTOP_DEFAULT_PASSWORD`。交互式 `octop init` / 设置向导会让你自行设置密码(至少 8 位,且同时包含字母和数字)。
打开 **http://127.0.0.1:8088**。Docker 首次初始化会自动生成随机管理员密码(写入 `/data/.octop/credential.txt`),除非设置了 `OCTOP_DEFAULT_PASSWORD`。交互式 `octop init` / 设置向导会让你自行设置密码(至少 8 位,且同时包含字母和数字)。向导模型步默认先选本机 Ollama;知识库默认走本机文件夹 + ONNX 向量,云厂商与 ima 是可选项。详见 [docs/user-guide.md](docs/user-guide.md)。

### Docker(推荐用于生产部署)

Expand Down Expand Up @@ -384,7 +384,7 @@ octop user list

### 支持的 LLM 供应商

OpenAI 兼容 API、DashScope(千问)、Ollama 等预设 — 在控制台或通过 `octop provider` 按 Agent 配置。
**本机优先:** Ollama、本机 OpenAI 兼容端点(LM Studio / llama.cpp / vLLM)、本机 ONNX Embedding。云厂商(OpenAI 兼容 API、DashScope 等)是可选项 — 在向导或控制台「模型 → 本地」先配本机,再按需加云。

### 支持的通道

Expand Down
32 changes: 19 additions & 13 deletions dashboard/src/locales/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -557,19 +557,21 @@
},
"knowledgeBases": {
"title": "Knowledge Bases",
"subtitle": "Mount a local folder or cloud knowledge base first. Cleaning, labeling, and distillation come later.",
"subtitle": "Start with a folder on this computer. Cloud mounts stay optional. Cleaning, labeling, and distillation come later.",
"featureTitle": "Enable Knowledge Bases",
"settingsTitle": "Knowledge base settings",
"settingsFoundation": "Foundation settings",
"settingsFoundationLead": "These settings are for later cleaning, labeling, and distillation. You can mount sources first without changing them.",
"settingsFoundationLead": "Vector models default to local ONNX. These settings are for later cleaning, labeling, and distillation. You can mount a local folder first without changing them.",
"settingsTabVector": "Vector model",
"settingsTabImage": "Images",
"settingsTabOcr": "Scanned-document OCR",
"settingsLead": "Advanced switch. It is on by default on the desktop. Turning it off hides knowledge bases from colleagues.",
"settingsOpen": "Knowledge base feature",
"homeTitle": "Mount your sources first",
"homeDesc": "Pick a folder on this computer, or connect ima with the official Agent Interface and choose which knowledge bases and documents to attach. The original folder stays read-only. Parse results go to a new folder you choose. Colleagues can look them up in chat.",
"homeAdvancedHint": "Vector, image, and scanned-document OCR settings are for later cleaning, labeling, and distillation.",
"homeTitle": "Keep knowledge on this computer",
"homeDesc": "Mount a folder on this computer first so chat and colleagues retrieve local files. Connecting ima is optional. The original folder stays read-only; parse results go to a new folder you choose.",
"homeRecommended": "Start here · local folder",
"homeOptionalCloud": "Optional cloud",
"homeAdvancedHint": "Local ONNX embeddings, images, and scanned-document OCR are for later cleaning, labeling, and distillation.",
"defaultLocalName": "Local files",
"defaultCloudName": "Cloud knowledge",
"pickFolder": "Choose folder",
Expand All @@ -578,7 +580,7 @@
"imageSettingsDesc": "Turn this on to recognize text in pictures, so you can clean and label them later.",
"ocrFoundationHint": "Turn this on so scanned PDFs can be read as text for later distillation.",
"disabledTitle": "Knowledge bases are turned off",
"disabledDesc": "You can turn the feature back on in foundation settings. After that, mount a local folder or a cloud knowledge base to start.",
"disabledDesc": "You can turn the feature back on in foundation settings. After that, mount a local folder first; cloud knowledge bases stay optional.",
"manageModels": "Manage models",
"unavailableTitle": "Knowledge bases are not ready",
"unavailableDescription": "Open Foundation settings in the top-right to turn knowledge bases on.",
Expand All @@ -591,7 +593,7 @@
"description": "Description",
"empty": "No knowledge bases yet",
"emptyGuideTitle": "No knowledge bases yet",
"emptyGuideDesc": "Turn documents into a searchable library for chat citations, and optionally share them with users on this instance.",
"emptyGuideDesc": "Turn local documents into a searchable library for chat citations. Sharing with users on this instance is optional.",
"emptyGuideStepWhat": "What is a knowledge base?",
"emptyGuideStepWhatDetail": "A knowledge base splits and embeds uploaded documents so experts can retrieve relevant passages in chat, instead of stuffing the full text into context.",
"emptyGuideStepHow": "How to use it",
Expand All @@ -605,7 +607,7 @@
"enableGuideStepToggle": "Enable knowledge bases",
"enableGuideStepToggleDetail": "Turn on Enable knowledge bases. When off, knowledge bases are unavailable for everyone.",
"enableGuideStepModel": "Configure an embedding model",
"enableGuideStepModelDetail": "Choose local ONNX (download the model first) or an online embedding provider, then save.",
"enableGuideStepModelDetail": "Choose local ONNX (download the model first). An online embedding provider is optional, then save.",
"noDescription": "No description",
"selectBase": "Select a knowledge base, or mount a source first",
"mountTitle": "Local folder mount",
Expand Down Expand Up @@ -3141,7 +3143,7 @@
"presetLocal": "Local",
"noPresetProvidersInTab": "No providers in this tab",
"customProviders": "Custom Providers",
"noCustomProvidersHint": "No custom providers yet. Click \"Add provider\" above to create one.",
"noCustomProvidersHint": "No custom providers yet. Add a local OpenAI-compatible endpoint (Ollama, LM Studio, llama.cpp) or a cloud gateway.",
"builtinProviders": "Built-in Providers",
"addProvider": "Add Provider",
"addProviderTitle": "Add Custom Provider",
Expand Down Expand Up @@ -3196,7 +3198,7 @@
"localDownloadPending": "Preparing to download...",
"localDownloading": "Downloading {{repo}}... This may take a few minutes.",
"localHardwareTitle": "This PC",
"localHardwareHint": "Detected RAM, CPU, optional NVIDIA GPU, Ollama, and already-downloaded GGUF / Ollama models. Chat can switch to a registered local model to reduce cloud use.",
"localHardwareHint": "Start here: detected RAM, CPU, optional GPU, Ollama, and already-downloaded GGUF / Ollama models. Register a local model for chat. Cloud providers stay optional.",
"localCpu": "CPU cores",
"localRam": "RAM",
"localGpu": "GPU",
Expand Down Expand Up @@ -3365,6 +3367,7 @@
"nameLabel": "Name",
"namePlaceholder": "e.g., my-openai",
"baseUrlExtra": "OpenAI-compatible endpoint base URL. Leave blank to use the official default.",
"baseUrlExtraLocal": "Prefer a local OpenAI-compatible URL, such as Ollama (http://127.0.0.1:11434/v1), LM Studio (:1234/v1), or llama.cpp (:8080/v1). Cloud URLs stay optional.",
"defaultModelLabel": "Default Model",
"defaultModelPlaceholder": "e.g., gpt-4o-mini",
"noteLabel": "Note (optional)",
Expand Down Expand Up @@ -4720,15 +4723,18 @@
"intro": "Create the first administrator account."
},
"model": {
"intro": "Configure one model provider so the assistant can reply. You can skip this step and configure it later.",
"intro": "Start with a local runtime such as Ollama, or a local OpenAI-compatible URL. Cloud providers are optional. You can skip and finish later on Models.",
"skip": "Skip",
"skipToWorkspace": "Skip and enter workspace",
"presetTab": "Preset provider",
"customTab": "Custom provider",
"showMorePresets": "Show more providers ({{count}})",
"hideMorePresets": "Show less",
"choosePreset": "Choose a preset provider",
"choosePresetHint": "Click a card to pre-fill settings — you only need to enter your API key. Multi-site brands open a site picker first.",
"choosePresetHint": "Ollama is selected first so chat can stay on this computer. Cloud cards still work if you need them — you only enter an API key for those.",
"localRecommended": "This computer",
"localOptionalTest": "If Ollama or another local runtime is already up, test the connection. You can also continue and pull models later on Models → Local.",
"continueLocal": "Continue with local setup",
"siteCount": "{{count}} sites",
"customSetup": "Custom setup",
"testButton": "Test connection",
Expand Down Expand Up @@ -5668,7 +5674,7 @@
},
"models": {
"title": "Model Management",
"subtitle": "Configure conversation, generation, voice, and search engines"
"subtitle": "Prefer models on this computer. Cloud, generation, voice, and search stay optional."
},
"voice": {
"title": "Voice Services",
Expand Down
32 changes: 19 additions & 13 deletions dashboard/src/locales/zh.json
Original file line number Diff line number Diff line change
Expand Up @@ -557,19 +557,21 @@
},
"knowledgeBases": {
"title": "知识库",
"subtitle": "先挂接本地文件夹或云知识库,再按需做清洗、标注和蒸馏。",
"subtitle": "先挂接这台电脑上的文件夹。云知识库是可选项。清洗、标注和蒸馏可以稍后做。",
"featureTitle": "启用知识库",
"settingsTitle": "知识库设置",
"settingsFoundation": "基础设置",
"settingsFoundationLead": "这些是后续清洗、标注、蒸馏用的基础设置。先挂接资料即可开始,不必先改这里。",
"settingsFoundationLead": "向量模型默认用本机 ONNX。这些是后续清洗、标注、蒸馏用的基础设置。先挂接本机文件夹即可开始,不必先改这里。",
"settingsTabVector": "向量模型",
"settingsTabImage": "图片",
"settingsTabOcr": "扫描件 OCR",
"settingsLead": "高级开关。桌面默认已打开。关掉后,同事都无法再使用知识库。",
"settingsOpen": "知识库功能",
"homeTitle": "先把资料挂进来",
"homeDesc": "选电脑上的文件夹,或通过官方 IMA Agent Interface 连接 ima,再自选要接入的知识库和文档。原来的文件夹只读,不会被改动;解析结果会存到你另选的新文件夹。同事可以在对话里查阅。",
"homeAdvancedHint": "向量模型、图片和扫描件 OCR 留给后续清洗、标注、蒸馏。",
"homeTitle": "知识先留在这台电脑上",
"homeDesc": "先挂接本机文件夹,对话和同事检索的就是本地资料。连接 ima 是可选项。原来的文件夹只读,不会被改动;解析结果会存到你另选的新文件夹。",
"homeRecommended": "从这里开始 · 本机文件夹",
"homeOptionalCloud": "可选云端",
"homeAdvancedHint": "本机 ONNX 向量、图片和扫描件 OCR 留给后续清洗、标注、蒸馏。",
"defaultLocalName": "本地资料",
"defaultCloudName": "云知识库",
"pickFolder": "选择文件夹",
Expand All @@ -578,7 +580,7 @@
"imageSettingsDesc": "打开后,可以把图片里的字认出来,方便以后清洗和标注。",
"ocrFoundationHint": "打开后,扫描件 PDF 也能认成文字,方便以后蒸馏。",
"disabledTitle": "知识库功能已关闭",
"disabledDesc": "可以在基础设置里重新打开。打开后,先挂接本地文件夹或云知识库即可使用。",
"disabledDesc": "可以在基础设置里重新打开。打开后,先挂接本机文件夹即可使用;云知识库仍是可选项。",
"manageModels": "管理模型",
"unavailableTitle": "知识库尚未就绪",
"unavailableDescription": "请先在右上角基础设置中打开知识库。",
Expand All @@ -591,7 +593,7 @@
"description": "描述",
"empty": "暂无知识库",
"emptyGuideTitle": "还没有知识库",
"emptyGuideDesc": "把文档做成可检索的资料库,对话时引用,也可按需共享给同实例用户。",
"emptyGuideDesc": "把本机文档做成可检索的资料库,对话时引用。共享给同实例用户是可选项。",
"emptyGuideStepWhat": "什么是知识库?",
"emptyGuideStepWhatDetail": "知识库会把上传的文档切分并向量化。对话时专家可以检索引用相关段落,而不必把全文塞进上下文。",
"emptyGuideStepHow": "知识库怎么用",
Expand All @@ -605,7 +607,7 @@
"enableGuideStepToggle": "启用知识库",
"enableGuideStepToggleDetail": "打开「启用知识库」开关。关闭后全实例都无法使用知识库。",
"enableGuideStepModel": "配置向量模型",
"enableGuideStepModelDetail": "选择本地 ONNX(需先下载模型)或在线 Embedding 提供商,保存后即可使用。",
"enableGuideStepModelDetail": "优先选择本机 ONNX(需先下载模型)。在线 Embedding 提供商是可选项,保存后即可使用。",
"noDescription": "暂无描述",
"selectBase": "选一个知识库查看文档,或先挂接资料",
"mountTitle": "本地文件夹挂接",
Expand Down Expand Up @@ -3139,7 +3141,7 @@
"presetLocal": "本地",
"noPresetProvidersInTab": "暂无提供商",
"customProviders": "自定义提供商",
"noCustomProvidersHint": "暂无自定义提供商,点击右上角「自定义供应商」添加",
"noCustomProvidersHint": "还没有自定义提供商。可添加本机 OpenAI 兼容端点(Ollama、LM Studio、llama.cpp),或云网关。",
"builtinProviders": "内置提供商",
"addProvider": "添加提供商",
"addProviderTitle": "添加自定义提供商",
Expand Down Expand Up @@ -3194,7 +3196,7 @@
"localDownloadPending": "准备下载...",
"localDownloading": "正在下载 {{repo}}... 可能需要几分钟。",
"localHardwareTitle": "本机",
"localHardwareHint": "已检测内存、CPU、NVIDIA 显卡(如有)、Ollama 以及本机已有的 GGUF / Ollama 模型。注册后可在对话中切换到本地模型,减少云端算力。",
"localHardwareHint": "从这里开始:已检测内存、CPU、显卡(如有)、Ollama 以及本机已有的 GGUF / Ollama 模型。注册后即可在对话中使用本机模型。云厂商仍是可选项。",
"localCpu": "CPU 核心",
"localRam": "内存",
"localGpu": "显卡",
Expand Down Expand Up @@ -3363,6 +3365,7 @@
"nameLabel": "名称",
"namePlaceholder": "例如:my-openai",
"baseUrlExtra": "OpenAI 兼容 endpoint 的 base URL,留空则使用官方默认。",
"baseUrlExtraLocal": "优先填写本机 OpenAI 兼容地址,例如 Ollama(http://127.0.0.1:11434/v1)、LM Studio(:1234/v1)或 llama.cpp(:8080/v1)。云端地址仍可用。",
"defaultModelLabel": "默认模型",
"defaultModelPlaceholder": "例如:gpt-4o-mini",
"noteLabel": "备注(可选)",
Expand Down Expand Up @@ -4859,15 +4862,18 @@
"intro": "创建第一个管理员账户。"
},
"model": {
"intro": "配置一个模型提供商,助手就可以回应你了。你也可以跳过本步,稍后在「模型」页配置。",
"intro": "先选本机运行时(如 Ollama)或本机 OpenAI 兼容地址。云厂商是可选项。也可以跳过,稍后在「模型」页完成。",
"skip": "跳过",
"skipToWorkspace": "跳过,进入工作台",
"presetTab": "预置提供商",
"customTab": "自定义提供商",
"showMorePresets": "显示更多提供商({{count}} 个)",
"hideMorePresets": "收起",
"choosePreset": "选择预置提供商",
"choosePresetHint": "点击卡片快速填入配置,只需填写 API Key。同品牌多站点会先弹出站点选择。",
"choosePresetHint": "默认先选 Ollama,让对话留在这台电脑上。需要云厂商时再点对应卡片并填写 API Key。",
"localRecommended": "这台电脑",
"localOptionalTest": "若 Ollama 或其他本机运行时已启动,可以先测连通性。也可以直接继续,稍后在「模型 → 本地」拉取模型。",
"continueLocal": "按本机配置继续",
"siteCount": "{{count}} 个站点",
"customSetup": "自定义配置",
"testButton": "测试连通性",
Expand Down Expand Up @@ -5807,7 +5813,7 @@
},
"models": {
"title": "模型配置",
"subtitle": "配置对话模型、生成模型、语音模型与搜索引擎"
"subtitle": "优先使用这台电脑上的模型。云端、生成、语音和搜索仍是可选项。"
},
"voice": {
"title": "语音服务",
Expand Down
Loading
Loading