diff --git a/README.md b/README.md
index d8d88fae..ce9970c3 100644
--- a/README.md
+++ b/README.md
@@ -22,7 +22,9 @@
-**The enterprise world model built by [DeepLethe](https://deeplethe.com).** It's the world's first substrate for knowledge engineering that learns passively and governs itself — it puts time and ontology in the base layer, revises that ontology as new material arrives, remembers how its own understanding changed, settles conflicts by axiom, and replays the world as it was understood at any past moment. Run it on your corporate network, on a cloud server, or on the laptop in front of you — as a company's knowledge foundation, as the decision core your agents can trust, or as a chronicle of your own.
+**The enterprise world model built by [DeepLethe](https://deeplethe.com).** It is the first open substrate for knowledge engineering that learns passively and governs itself. Where a knowledge graph or a vector store works to hold present knowledge, Utopia puts time awareness and ontology in the base layer: the knowledge system evolves as material arrives, and conflict detection, reasoning and decision making all run against that ontology. It deploys offline, so a company can stand up a knowledge foundation, a decision core its agents can trust, and a compliance audit trail on hardware it controls.
+
+> Please note: we would rather this project were not framed as an open-source take on Palantir. It is **a different route to enterprise intelligence, built bottom up from knowledge governance to trustworthy decisions and simulation**.
---
@@ -32,7 +34,7 @@
-https://github.com/user-attachments/assets/PLACEHOLDER
+https://github.com/user-attachments/assets/aa226443-75de-437e-bd80-88e592ed8457
@@ -40,23 +42,29 @@ https://github.com/user-attachments/assets/PLACEHOLDER
## Philosophy
-We gave it a somewhat romantic name — **Utopia**. Ptolemy's geocentric model was long held to be a reasonable account of cosmic order, then revised and displaced step by step by Copernicus, Kepler, Galileo and Newton. Notice that what we keep is not merely "ah, heliocentrism is the right one"; it is the whole arc along which understanding moved, a history in full. This is one of the things that set Utopia apart from a conventional knowledge graph: facts are organised into a replayable chain of revisions — engineered as a **bitemporal knowledge graph**. Review an action later and the full course and grounds of the decision come back with it. To make it hold up in practice, we have iterated at length against public corpora spanning enterprise records, education, finance, law and research. Temporality is only one facet — for how knowledge is taken in, how the future is reasoned about, and how logic bounds action, see [utopia.bi/philosophy](https://utopia.bi/philosophy).
+We gave it a somewhat romantic name, **Utopia**. Ptolemy's geocentric model was taken for truth for a very long time, then falsified step by step by Copernicus, Kepler, Galileo and Newton. Looking back, what we keep is not only that heliocentrism turned out to be right; it is how that history unfolded.
+
+Where existing vector stores and knowledge graphs work to get present knowledge right, one of Utopia's founding aims is to record the whole course of changing understanding. Engineered, that becomes a **bitemporal knowledge graph**. When a decision is reviewed later, the system can produce the full course it took and the grounds it rested on. To make this hold up in practice we have iterated at length against public corpora spanning enterprise records, education, finance, law and research. Temporality is only one facet; for how knowledge is taken in, how the future is reasoned about, and how logic bounds action, see [utopia.bi/philosophy](https://utopia.bi/philosophy).
## Features
-The whole system is a Rust binary and a Postgres service. By bringing in pgvector and a queue-table design, we cut the weight of the stack and its service dependencies — deployment is over in a blink.
+The system is a Rust binary and a Postgres service. pgvector and a queue-table design keep the stack and its service dependencies light.
| | |
|---|---|
-| **Knowledge ingest** | PDF, DOCX, PPTX, XLSX/XLS/ODS, CSV/TSV, Markdown, HTML and plain text, with encoding detection for Chinese sources. Web pages and RSS sync on a cron; documents can also be pushed from anywhere with a per-source ingest token. Failed parses reprocess in place without re-uploading; a whole source or a whole knowledge base can be re-extracted in bulk. |
-| **Search and chat** | Hybrid retrieval over Tantivy full-text and pgvector, fused with RRF; Chinese full-text uses jieba tokenisation. Answers stream with inline citations that jump straight to the source passage. Any OpenAI-compatible endpoint works — DeepSeek, Qwen, GLM, Ollama, vLLM — so the whole system can run on an isolated network. |
-| **Ontology and cold start** | Every knowledge base ships with a built-in ontology (person, organization, project, product, event, concept, location, and the relations among them), so ingest can begin without designing a model first. Types and predicates encountered outside the ontology are recorded and counted; frequent ones can be proposed by the model and merged in on confirmation. The ontology grows with the corpus, instead of asking you to define the world completely on day one. |
-| **Bitemporal graph** | LLM extraction against the editable ontology produces entities and facts. Every fact carries a validity interval and its evidence rows. Correcting a fact does not overwrite the old version: it closes the old one and links the new one to it. Graph and neighbourhood queries can be read back at any point in history. The entity panel shows two timelines at once: when something held in the world, and when the system formed — then changed — that judgement. |
+| **A complete application** | A system console, a graph browser and an ontology workbench that runs in the browser. Install it and it works; there is no library to assemble first. |
+| **Knowledge ingest** | PDF, DOCX, PPTX, XLSX/XLS/ODS, CSV/TSV, Markdown, HTML and plain text, with legacy text encodings detected on the way in. Web pages, RSS, GitHub and Jira sync on a cron; anything else pushes in with a per-source token. Failed parses reprocess in place, and a whole source or base can be re-extracted in bulk. |
+| **Search and chat** | Hybrid retrieval over Tantivy full-text and pgvector, fused with RRF; Chinese full-text uses jieba tokenisation. Answers stream with inline citations that jump straight to the source passage. Any OpenAI-compatible endpoint works (DeepSeek, Qwen, GLM, Ollama, vLLM), so the whole system can run on an isolated network. |
+| **Agent harness and agentic RAG** | The application is itself a harness: the whole system can be driven through conversation. The built-in agent carries tools for document search, entity lookup, fact and change history, and querying a mounted database, and calls them over several turns before it answers. |
+| **Ontology and cold start** | A base ships with no vocabulary of its own. Cold start comes from packs: schema.org, W3C Org, PROV-O, FOAF and IOF Core, gzipped into the binary and chosen at creation ([ask for your industry](https://github.com/deeplethe/utopia/issues/new?labels=enhancement&title=Ontology%20pack%20request)). Vocabulary met outside them is recorded with a source quote and a count, and frequent items merge in on confirmation, so the ontology grows with the corpus. |
+| **Bitemporal graph** | Extraction against the editable ontology produces entities and facts, each carrying a validity interval and its evidence rows. Correcting a fact closes the old version and links the new one to it rather than overwriting. Queries read back at any point in history, and the entity panel shows both timelines at once: when something held in the world, and when the system changed its mind. |
| **Entity resolution and review** | Three-stage entity resolution; every merge is logged and can be undone. Low-confidence extractions, merge candidates and cardinality conflicts go to a review queue rather than interrupting anyone. Confirming, rejecting or closing a fact by hand leaves a record. |
-| **Reasoning and derivation** | Rules are expressed in temporal Datalog and driven by forward chaining. Derived facts carry validity time and provenance just as extracted ones do, and their full derivation path can be expanded — every conclusion can be asked "why", all the way back to the original text. Ontology axioms (type inheritance, relation hierarchy, transitivity, symmetry, inverses, disjointness, cardinality) compile into rules and take part in reasoning; constraint violations go to the conflict queue. |
-| **Ontology-driven querying** | Register a Postgres connection once at the system level, mount it on a knowledge base, and chat can query documents and the database together. The method behind it ([Ontology2SQL](https://github.com/deeplethe/ontology2sql)) scores 70.20 on SQLite and 65.80 on PostgreSQL on BIRD Mini-Dev — state of the art on both, ahead of second place by 12.2 and 9.0 ([leaderboard submission](https://github.com/bird-bench/bird-bench.github.io/pull/218)). |
-| **Multi-user and permissions** | Permissions are scoped per knowledge base, each with its own members and roles. Open bases are readable by everyone in the deployment; restricted ones only by invited users. A public space readable by all (General Knowledge Base) is created on deployment. |
-| **Decision ledger** | Confirming and rejecting facts, merging and reverting entities, rebuilding the graph — all leave a record with the operator, the time, and a snapshot of the object as it then stood. The record remains queryable after the object is invalidated or rebuilt. |
+| **Reasoning and derivation** | Rules are expressed in temporal Datalog and driven by forward chaining. Derived facts carry validity and provenance like extracted ones, and their derivation path expands all the way back to the original sentence. Ontology axioms (type inheritance, relation hierarchy, transitivity, symmetry, inverses, disjointness, cardinality) compile into rules and take part in reasoning. |
+| **Conflict detection** | Three checks, three different verdicts. Temporal conflicts resolve to closing the old fact, keeping both, or rejecting the new one. Axiom violations in the data (self-loop, asymmetry, transitive cycle, cardinality) resolve to retracting the fact, relaxing the axiom, or accepting both. Defects in the ontology itself come first, because violations computed on a self-contradictory ontology are noise. |
+| **Ontology-driven querying** | Register a Postgres connection once, mount it on a base, and chat queries documents and the database together. An exploration pass reads the mounted schema against the concepts already in the base and proposes mappings; the agent proposes, a person confirms. The method behind it ([Ontology2SQL](https://github.com/deeplethe/ontology2sql)) is state of the art on BIRD Mini-Dev for both SQLite and PostgreSQL ([submission](https://github.com/bird-bench/bird-bench.github.io/pull/218)). |
+| **Multi-user and permissions** | Permissions are scoped per knowledge base, each with its own members and roles. Open bases are readable by everyone in the deployment, restricted ones only by invited users. A deployment has one system administrator, the first account registered, and each base carries owner, admin, editor and viewer roles. |
+| **Decision ledger** | Confirming and rejecting facts, merging and reverting entities, rebuilding the graph: all of them leave a record with the operator, the time, and a snapshot of the object as it then stood. The record remains queryable after the object is invalidated or rebuilt. |
+| **[Decision intelligence (in development)](#roadmap)** | Recording decisions, replaying both the understanding and the course a decision took, and reasoning over overlaid scenarios. |
## Quick start
@@ -70,7 +78,7 @@ cd utopia
docker compose --profile app up -d
```
-Open http://localhost:1516 and register — the first account automatically becomes the administrator, and a public knowledge base readable by everyone is created at the same time. Before ingesting documents, configure the model endpoints (chat and embedding) under system settings.
+Open http://localhost:1516 and register. The first account automatically becomes the administrator, and a public knowledge base readable by everyone is created at the same time. Before extracting business documents, configure the model endpoints (chat and embedding) under system settings.
Or build from source:
@@ -84,7 +92,7 @@ docker compose -f docker-compose.yml -f docker-compose.build.yml --profile app u
# 1. Postgres with pgvector
docker compose up -d db
-# 2. Backend on :1516 — runs migrations on startup
+# 2. Backend on :1516, runs migrations on startup
cargo run -p utopia-server
# 3. Frontend on :5173, proxying /api to the backend
@@ -93,25 +101,26 @@ cd web && pnpm install && pnpm dev
## Roadmap
-- [ ] **Simulation engine**: scenario overlays that never touch the ledger, computing both the diff and the constraints it would violate
-- [ ] **Execution gate**: every downstream call an agent makes passes ontology rules and symbolic logic first; what fails does not land
-- [ ] **Lakehouse**: Iceberg / Delta Lake, plus Databricks, Snowflake and MaxCompute
+- [ ] **Decision reasoning**: constraint computation, and replaying a decision after the fact
+- [ ] **Execution gate**: checking an agent's calls against ontology rules and symbolic logic
+- [ ] **Lakehouse for mapping and querying**: mapping exploration and Ontology2SQL over Iceberg / Delta Lake, Databricks, Snowflake and MaxCompute
- [ ] **More sources**: MySQL, ClickHouse and Doris drivers; S3, WebDAV, Notion and Feishu connectors
-- [ ] **Time to the moment**: an `instant` precision beside year / month / day, for sources that carry a real timestamp — today a connector rounds it to a UTC day, which can shift an event across midnight by one day
+- [ ] **Time to the moment**: an `instant` precision beside year / month / day, for sources that carry a real timestamp. Today a connector rounds it to a UTC day, which can shift an event across midnight by one day
- [ ] **Agent memory over MCP**: episode writes, the retrieve endpoint, and the MCP server
- [ ] **Enterprise**: OIDC SSO, backup and restore commands, benchmarks at 100k documents
## Status
-Utopia is still at **v0.1**. The database schema evolves between versions and migrations only roll forward, with no rollback — pin a specific version with `UTOPIA_IMAGE` in production, and back up the database along with the `data` directory before upgrading.
+Utopia is still at **v0.1**. The database schema evolves between versions and migrations only roll forward, with no rollback. Pin a specific version with `UTOPIA_IMAGE` in production, and back up the database along with the `data` directory before upgrading.
Please read [SECURITY.md](SECURITY.md) before exposing it to the public internet.
## Community
-- 💬 [Discussions](https://github.com/deeplethe/utopia/discussions) — ask questions, talk design, tell us what you built with it
-- 🐛 [Issues](https://github.com/deeplethe/utopia/issues) — report bugs, request features
-- 🔌 [Ontology2SQL](https://github.com/deeplethe/ontology2sql) — ontology-driven text-to-SQL, the method behind ontology-driven querying
+- 💬 [Discussions](https://github.com/deeplethe/utopia/discussions): discussion, experience reports and reviews
+- 🐛 [Issues](https://github.com/deeplethe/utopia/issues): any bug, design question or request
+- 🤝 [Contributing](CONTRIBUTING.md): dev setup, the checks to run before pushing, DCO sign-off
+- 🔌 [Ontology2SQL](https://github.com/deeplethe/ontology2sql): the ontology-driven text-to-SQL method referenced above
## License
diff --git a/README.zh-CN.md b/README.zh-CN.md
index d4ba9e71..9475561b 100644
--- a/README.zh-CN.md
+++ b/README.zh-CN.md
@@ -22,7 +22,9 @@
-**由 [DeepLethe 深纪元](https://deeplethe.com) 构建的企业知识世界模型。** 它是人类首个基于本体的被动学习、自我治理的开源知识工程基座——把时态与本体一起做进底层,语料涌入时迭代本体定义,记忆认知变化的历程,依据公理解决冲突,回溯任意时刻的世界观。可以跑在企业内网里,可以跑在云服务器上,也可以就跑在你的笔记本上——拿它建企业的知识基座、智能体的可信决策中枢,或者属于你个人的史诗。
+**由 [DeepLethe 深纪元](https://deeplethe.com) 构建的企业知识世界模型。** 它是首个基于本体的被动学习、自我治理的开源知识工程基座——有别于知识图谱或向量知识库,该项目将时间感知与本体论融入了系统底层,根据传入的语料演进知识体系,基于本体论进行冲突检测、知识推理、智能决策。支持离线部署,快速建立企业知识基座、可信决策中枢、合规审计中枢,推进企业的智能化落地。
+
+> 请注意,我们不愿意将项目定义为 Palantir 的开源尝试,而是一种**自底(知识治理)向上(可信智能决策与推演)的企业智能新思路**。
---
@@ -32,7 +34,7 @@
-https://github.com/user-attachments/assets/PLACEHOLDER
+https://github.com/user-attachments/assets/aa226443-75de-437e-bd80-88e592ed8457
@@ -40,24 +42,30 @@ https://github.com/user-attachments/assets/PLACEHOLDER
## 项目的世界观
-我们给它取了一个稍显浪漫的名字——**Utopia(乌托邦)**。托勒密的地心体系曾被视作对宇宙秩序的合理解释,后来被哥白尼、开普勒、伽利略与牛顿一步步修正和取代——你看,我们记住的不止是「哦!日心说是对的」,而是整个认知的变化过程,是一个完整的历史。这也是 Utopia 有别于传统知识图谱的地方之一:将事实组织成可以回放的修订链——工程上实现为**双时态知识图谱**。复盘一个动作时,可以拿到完整的决策过程与依据。为了提升可用性,我们基于公开的企业信息、教育、金融、法律、科研等领域语料库做了大量迭代。时态能力只是其中一面,如何接纳知识、如何推演未来、如何让逻辑约束行动,见 [utopia.bi/philosophy](https://utopia.bi/philosophy)。
-
-## 功能
+我们给它取了一个稍显浪漫的名字——**Utopia(乌托邦)**。托勒密的地心说曾在很长一段时间中被视为真理,后来被哥白尼、开普勒、伽利略与牛顿一步步证伪。现在回过头来看,我们记住的不止是「日心说是对的」,而是这段历史如何发展。
-整个系统由 Rust 二进制和 Postgres 服务组成。我们通过引入 pgvector 和队列表设计减轻了技术栈和服务依赖的负担 —— 咻的一下就部署好。
+不同于现有向量知识库、知识图谱工作追求当下知识的正确,Utopia 的设计初衷之一是记录完整的认知变化历程。工程上实现为**双时态知识图谱**。在决策复盘时,该系统可以拿到完整的决策过程与依据。为了提升可用性,我们基于公开的企业信息、教育、金融、法律、科研等领域语料库做了大量迭代。时态能力只是其中一面,如何接纳知识、如何推演未来、如何让逻辑约束行动,见 [utopia.bi/philosophy](https://utopia.bi/philosophy)。
-| | |
-|---|---|
-| **知识摄入** | 支持 PDF、DOCX、PPTX、XLSX/XLS/ODS、CSV/TSV、Markdown、HTML 和纯文本,自动识别中文编码。网页和 RSS 可按 cron 定时同步,也可以通过来源级 ingest token 从任何地方推送文档。解析失败的文档可以原地重处理,无需重新上传;整个来源或整个知识库也可以批量重抽。 |
-| **搜索与对话** | 混合检索采用 Tantivy 全文搜索和 pgvector 向量搜索,并通过 RRF 融合结果;中文全文检索使用 jieba 分词。回答支持流式输出和引用角标,点击引用可直接跳到原文段落。LLM 走 OpenAI 兼容协议,DeepSeek、Qwen、GLM、Ollama、vLLM 都可以接入,整套系统也可以运行在完全内网环境。 |
-| **本体与冷启动** | 建库即自带一套内置本体(人、组织、项目、产品、事件、概念、地点,及其间的关系),无需先设计模型就能开始摄入。抽取过程中遇到本体之外的类型与谓语,会被记录并计数;高频项可由模型给出扩充建议,确认后并入本体。本体因此随语料生长,而不是要求你在第一天就把世界定义完整。 |
-| **双时态图谱** | 基于可编辑的本体进行 LLM 抽取,生成实体与事实。每条事实都带有效区间与对应的证据行。修正事实时不会覆盖旧版本,而是闭合旧事实并链上新版本。图谱与邻域查询都可以指定任意历史时点回读。实体面板同时展示两条时间线:一件事在现实中何时成立,以及系统何时形成这一判断、又何时改变判断。 |
-| **实体消解与审核** | 采用三段式实体消解,每一次合并都会写入日志,并且可以撤销。低置信抽取、待合并候选和基数冲突会进入审核队列,不会打断使用者。手工确认、驳回或闭合事实时,所有决策都会留痕。 |
-| **推理与派生** | 规则以时态 Datalog 表达,通过前向链驱动事实不断演绎。派生出的事实与抽取事实一样带有效时间与来源,并可展开完整的推导路径——每一条结论都能追问「为什么」,一路回溯到最初的原文。本体公理(类型继承、关系层级、传递、对称、互逆、互斥、基数)同样编译为规则参与推理,约束违例进入冲突队列。 |
-| **基于本体的智能问数** | 在系统层注册一次 Postgres 连接,再挂载到知识库,对话就可以同时查询文档和数据库。这条路线的方法([Ontology2SQL](https://github.com/deeplethe/ontology2sql))在 BIRD Mini-Dev 上取得 SQLite 70.20 / PostgreSQL 65.80,两项均为当前 SOTA,分别领先第二名 12.2 与 9.0 分([榜单提交](https://github.com/bird-bench/bird-bench.github.io/pull/218))。 |
-| **多用户与权限** | 权限以知识库为单位,每个库有自己的成员与角色,公共库对部署内所有人可读,私有库仅受邀用户可访问。部署后会自动建立全员可读的公共空间(General Knowledge Base)。 |
-| **决策台账** | 事实的确认与驳回、实体合并与撤销、图谱重建等操作均留有记录,含操作者、时间与当时的对象快照;对象被作废或重建后,记录依然可查。 |
+## 功能
+系统由 Rust 二进制和 Postgres 服务组成。我们通过 pgvector 和队列表设计减轻了技术栈和服务依赖的负担。
+
+| 能力 | 亮点 |
+| --- | --- |
+| **完整应用** | 系统控制台 · 图谱浏览器 · 在线本体工作台 · 开箱即用 |
+| **文档接入** | 支持多种文档(pdf、md、html、ppt、word、excel)· 支持自定义订阅更新与定时同步(JIRA、飞书正在支持中) |
+| **混合检索** | Tantivy · pgvector 向量 · RRF 融合 · chunk 溯源 |
+| **双时态图谱** | 知识时态+溯源时态 · 支持任意时刻图谱 · 知识变更链 |
+| **AgentHarness · AgenticRAG** | 应用本身具备 harness 能力,可通过对话调用系统完整功能 · 内置智能体包含多种工具,支持多轮工具调用与对话 |
+| **内置本体包** | 内置 schema.org · W3C Org · PROV-O · FOAF · IOF Core · 不断扩展中 · [我想申请对自己的行业进行额外支持](https://github.com/deeplethe/utopia/issues/new?labels=enhancement&title=Ontology%20pack%20request) |
+| **语义抽取** | 实体、关系与时间归一化 · 事实强制带证据引句 · 向量与本体召回加 LLM 裁决自动消歧,可追溯可撤销 · 随文本自动提出本体修订方案 |
+| **知识派生与推理** | 时态 Datalog · 前向链 · 本体公理编译 · 派生路径追溯 · 基于 Rust 自建轻量推理引擎 |
+| **冲突检测** | 时态冲突 · 自反、反对称、传递环、基数违规 · 本体自身缺陷 · 可撤事实、可改公理、可认可并存 |
+| **人工审核与审计台账** | 低置信抽取、待合并候选自动进入审核队列 · 记录每一次操作的用户、时间、变更快照,用于合规审计 |
+| **智能映射与问数** | 选定数据库和知识库,智能体自动探索并建立映射关系 · 基于 Ontology2SQL 的问数 · [在 BIRD Mini-Dev 上取得 SOTA(最佳成绩)](https://github.com/bird-bench/bird-bench.github.io/pull/218) |
+| **模型接入** | 任何 OpenAI 兼容端点 · 支持本地部署模型 |
+| **多用户多知识库** | 以知识库为单位的角色与权限设计,支持系统管理员、用户,知识库管理、编辑、访问权限分级 |
+| **[决策智能(开发中)](#路线图)** | 决策记录 · 认知与决策过程回放 · 情景叠加推理 |
## 快速开始
@@ -71,7 +79,7 @@ cd utopia
docker compose --profile app up -d
```
-打开 http://localhost:1516 注册 —— 第一个账户自动成为管理员,同时系统会创建所有人可读的公共知识库。摄入文档前,请先在系统设置里配置模型端点(chat 与 embedding)。
+打开 http://localhost:1516 注册 —— 第一个账户自动成为管理员,同时系统会创建所有人可读的公共知识库。抽取业务文档前,请先在系统设置里配置模型端点(chat 与 embedding)。
或者从源码构建:
@@ -94,9 +102,9 @@ cd web && pnpm install && pnpm dev
## 路线图
-- [ ] **推演引擎**:情景叠加不写进账本,算出差异与违反的约束
-- [ ] **执行校验层**:Agent 的每一次调用先过本体规则与符号逻辑,通不过不落地
-- [ ] **数据湖仓**:Iceberg / Delta Lake,以及 Databricks、Snowflake、MaxCompute
+- [ ] **决策推理**:计算约束条件,决策复盘
+- [ ] **执行校验层**:对 Agent 的调用进行本体规则与符号逻辑校验
+- [ ] **问数与映射添加数据湖仓支持**:Iceberg / Delta Lake,以及 Databricks、Snowflake、MaxCompute 的映射探索与 Ontology2SQL 支持
- [ ] **更多数据源**:MySQL、ClickHouse、Doris 驱动,S3、WebDAV、Notion、飞书连接器
- [ ] **精确到时刻**:在年 / 月 / 日之外加一档 `instant` 精度,给那些本来就带时间戳的来源——现在连接器按 UTC 截到天,跨午夜的事件会差一天
- [ ] **MCP 上的 Agent 记忆**:补齐 episodes 写入、retrieve 端点与 MCP 服务器
@@ -106,13 +114,14 @@ cd web && pnpm install && pnpm dev
Utopia 仍处于 **v0.1**。数据库 schema 会随版本演进,迁移只前滚、不提供回退 —— 生产环境请用 `UTOPIA_IMAGE` 锁定具体版本,并在升级前备份数据库与 `data` 目录。
-部署到公网之前请读一下 [SECURITY.md](SECURITY.md)。
+公网部署前请阅读 [SECURITY.md](SECURITY.md)。
## 社区
-- 💬 [Discussions](https://github.com/deeplethe/utopia/discussions) —— 提问、聊设计、说说你拿它做了什么
-- 🐛 [Issues](https://github.com/deeplethe/utopia/issues) —— 报 bug、提需求
-- 🔌 [Ontology2SQL](https://github.com/deeplethe/ontology2sql) —— 本体驱动的 Text-to-SQL,「基于本体的智能问数」背后的方法
+- 💬 [Discussions](https://github.com/deeplethe/utopia/discussions):欢迎讨论,分享使用经验,发表评价
+- 🐛 [Issues](https://github.com/deeplethe/utopia/issues):任何 bug 或设计问题、需求
+- 🤝 [Contributing](CONTRIBUTING.zh-CN.md):开发环境、提交前的检查、DCO 签名
+- 🔌 [Ontology2SQL](https://github.com/deeplethe/ontology2sql):本文提到的本体驱动的 Text-to-SQL 方法
## License