# 079project 中文文档

规范地址：https://npmcn.com/package/079project/

版本：9\.1\.0
npm 元数据更新时间：2026-01-01T11:47:48.713Z
中文译文更新时间：2026-10-31T11:38:51.244Z
软件包许可：LGPL-3\.0

本文由上游 README 机器翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/079project
原文对照：https://npmcn.com/package/079project/?lang=original
源码仓库：https://gitee.com/mumu2009/079-project

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：73.7 MB，68 个文件
- 模块格式：CommonJS
- TypeScript 类型：未声明
- 运行依赖：46 个
- 首次发布：2025-10-12T12:56:19.116Z
- 最新版本发布：2026-01-01T11:47:48.542Z
- 已发布版本数：10（近 12 个月 6 个）

## 中文简介

一个基于矩阵的人工智能，可以在很少的单词来源中表现良好，使用很少的资源。它的起始点初始化它，您可以按照readme.md中的描述启动它

## 安装

```sh
npm install 079project
```

也可以使用：`pnpm add 079project`、`yarn add 079project`、`bun add 079project`

## README

# 079Project

一个实验型 AI 项目：把“图谱推理 + 学习模块 + 网关 API + 前端控制台 + 身份系统”组合在同一仓库内运行。

当前架构已拆分为 **两个 Node 进程**：

-   **主 AI 进程**：`main.cjs`（只提供 `/api/*`，默认需要 Token）
-   **身份 + 前端进程**：`auth_frontend_server.cjs`（提供 `/auth/*`，并托管 React build；同时把 `/api/*` 反代到主 AI）

说明：仓库仍处实验阶段，接口/行为可能调整。

* * *

## 目录结构（关键）

-   `main.cjs`：主 AI 进程（图谱运行时、SparkArray、多控制器池、MemeBarrier、RL/ADV 学习、快照与导出、/api 路由）。
-   `auth_frontend_server.cjs`：身份系统 + 前端托管进程（SQLite 用户/会话、JWT、/auth 路由、/api 反代）。
-   `079project_frontend/`：React 前端（Chat + Config 控制台）。
-   `robots/`：机器人语料（TXT）。
-   `tests/`：测试用例/词表（TXT，可运行时新增并刷新到 RL 模块）。
-   `snapshots/`：快照目录。
-   `runtime_store/`：运行时缓存/导出目录；默认也会生成 `runtime_store/auth.sqlite`。
-   `lmdb/`：LMDB 数据目录（如不可用会回落 JSON 存储）。

* * *

## 环境要求

-   Windows + PowerShell（本仓库默认命令以 `pwsh.exe` 为准）。
-   Node.js >= 18（建议 LTS）。

* * *

## 安装

后端依赖：

```powershell
cd "079Project/"
npm install
```

前端依赖：

```powershell
cd "079Project/079project_frontend"
npm install
```

* * *

## 启动（两进程）

端口默认值：

-   主 AI：`127.0.0.1:5080`
-   身份 + 前端：`127.0.0.1:5081`

## 注意,在所有的启动之前,必须要先启动一个redis服务器

### 模式 A：推荐（身份+前端托管 + /api 反代）

1.  启动主 AI（只提供 `/api/*`）：

```powershell
cd "079Project/"
$env:AI_AUTH_ENABLED="true"
$env:AI_AUTH_JWT_SECRET="change-me"
node .\main.cjs
```

如果你需要启用“性能/并发实验功能”（`--group-proc`/`--infer-mp`/`--single-proc`），请改用：

```powershell
node .\mainFailedOfJing1Xi4Hua4Zhi4Duan3Yu3.cjs
```

2.  启动身份服务 + 前端托管（同时反代 `/api/*` 到主 AI）：

```powershell
cd "079Project/"
$env:AUTH_JWT_SECRET="change-me"
$env:AI_API_BASE="http://127.0.0.1:5080"
node .\auth_frontend_server.cjs
```

3.  浏览器访问：

-   `http://127.0.0.1:5081/`

首次启动需要在页面中选择“首次启动？去初始化”，创建管理员账号（只允许一次）。

注意：`AUTH_JWT_SECRET` 与 `AI_AUTH_JWT_SECRET` 必须一致，否则 Token 无法被主 AI 验证。

### 模式 B：纯前端开发（可选）

前端开发服务器（CRA）默认使用 `079project_frontend/package.json` 的 `proxy`。 如果你仍使用该模式，建议把 `proxy` 改为 `http://127.0.0.1:5081`（让 `/api/*` 通过身份进程反代，避免跨域与 Token 问题）。

启动命令：

```powershell
cd "079Project/079project_frontend"
npm start
```

浏览器访问 CRA 提示的地址即可。

### 模式 C：生产（构建前端 + 身份进程托管 build）

1.  构建前端：

```powershell
cd "079Project/079project_frontend"
npm run build
```

2.  启动主 AI：

```powershell
cd "079Project/"
$env:AI_AUTH_ENABLED="true"
$env:AI_AUTH_JWT_SECRET="change-me"
node .\main.cjs
```

3.  启动身份服务 + 前端托管：

```powershell
cd "079Project/"
$env:AUTH_JWT_SECRET="change-me"
$env:AI_API_BASE="http://127.0.0.1:5080"
node .\auth_frontend_server.cjs
```

浏览器访问：`http://127.0.0.1:5081/`

* * *

## 启动方式速查（按场景）

说明：

-   `main.cjs`：偏“传统单进程”入口（稳定/默认）。
-   `mainFailedOfJing1Xi4Hua4Zhi4Duan3Yu3.cjs`：包含并发实验开关（`--group-proc`/`--infer-mp`/`--single-proc`）的入口。

### 场景 1：最简本地调试（单进程 + 免鉴权 + 快速启动）

```powershell
cd "079Project/"
$env:AI_AUTH_ENABLED="false"
$env:AI_ROBOTS_AUTOLOAD="false"
node .\mainFailedOfJing1Xi4Hua4Zhi4Duan3Yu3.cjs --single-proc=true --robots-autoload=false --tests-autoload=false --port=5080
```

### 场景 2：推荐日常使用（两进程：身份/前端托管 + API 反代）

主 AI：

```powershell
cd "079Project/"
$env:AI_AUTH_ENABLED="true"
$env:AI_AUTH_JWT_SECRET="change-me"
node .\main.cjs --port=5080
```

身份 + 前端：

```powershell
cd "079Project/"
$env:AUTH_JWT_SECRET="change-me"
$env:AI_API_BASE="http://127.0.0.1:5080"
node .\auth_frontend_server.cjs
```

### 场景 3：强制单进程（避免多进程导致变慢/更稳定）

当你发现多进程模式在当前机器/当前负载下反而更慢，使用：

```powershell
cd "079Project/"
node .\mainFailedOfJing1Xi4Hua4Zhi4Duan3Yu3.cjs --single-proc=true --port=5080
```

说明：`--single-proc=true` 会强制关闭 `--group-proc` 与 `--infer-mp`。

### 场景 4：多核吞吐（每个 group 一个进程）

适用于并发请求较多、单次请求较重、且 CPU 核数充足的机器；如果请求很轻或 IPC 开销占比过高，可能“更慢”。

```powershell
cd "079Project/"
$env:AI_AUTH_ENABLED="false"
node .\mainFailedOfJing1Xi4Hua4Zhi4Duan3Yu3.cjs --group-proc=true --group-count=6 --group-size=3 --port=5080
```

### 场景 5：多核加速（推理多进程池，仅用于 Spark 汇聚的 respond 分发）

适用于不启用 `group-proc` 的情况下，想让 SparkArray/BigSparkArray 的分发利用多核：

```powershell
cd "079Project/"
node .\mainFailedOfJing1Xi4Hua4Zhi4Duan3Yu3.cjs --infer-mp=true --infer-workers=6 --port=5080
```

说明：启用 `group-proc` 时会自动禁用 `infer-mp`（避免双层多进程）。

* * *

## 后端启动参数（常用）

`main.cjs` 支持部分 CLI/环境变量（这里只列近期常用的）：

-   `--gateway-host` / `AI_GATEWAY_HOST`：网关监听地址（默认 `127.0.0.1`）。
-   `--port` / `CONTROLLER_PORT`：网关端口（默认 `5080`）。
-   `--disable-memebarrier`：启动时禁用 MemeBarrier（仍可运行时通过 API 重新开启）。
-   `--disable-learning`：启动时禁用学习模块（仍可运行时通过 API 重新开启）。
-   `--disable-rl`：启动时禁用 RL（仍可运行时通过 API 重新开启）。
-   `--disable-adv`：启动时禁用 ADV（仍可运行时通过 API 重新开启）。
-   `--export-dir` / `AI_EXPORT_DIR`：`/api/export/graph` 默认导出目录。

示例：监听 `0.0.0.0:5080`：

```powershell
node .\main.cjs --gateway-host=0.0.0.0 --port=5080
```

`mainFailedOfJing1Xi4Hua4Zhi4Duan3Yu3.cjs` 额外支持（并发/性能实验）：

-   `--single-proc` / `AI_SINGLE_PROC`：强制单进程（关闭 `group-proc` 与 `infer-mp`）。
-   `--group-proc` / `AI_GROUP_PROC`：每个 group 一个进程。
-   `--group-proc-timeout-ms` / `AI_GROUP_PROC_TIMEOUT_MS`：group RPC 超时。
-   `--infer-mp` / `AI_INFER_MP`：推理多进程池（仅分发 Spark 汇聚推理）。
-   `--infer-workers` / `AI_INFER_WORKERS`：推理子进程数量。

## 身份系统（SQLite + JWT）

身份系统存储：默认 `079Project/runtime_store/auth.sqlite`。

环境变量（`auth_frontend_server.cjs`）：

-   `AUTH_PORT`：默认 `5081`
-   `AUTH_HOST`：默认 `127.0.0.1`
-   `AUTH_DB_PATH`：默认 `079Project/runtime_store/auth.sqlite`
-   `AUTH_JWT_SECRET`：JWT 密钥（必须与主 AI 的 `AI_AUTH_JWT_SECRET` 一致）
-   `AI_API_BASE`：主 AI 地址（默认 `http://127.0.0.1:5080`）

环境变量（`main.cjs`）：

-   `AI_AUTH_ENABLED`：默认开启（设为 `false` 可临时关闭鉴权）
-   `AI_AUTH_JWT_SECRET`：用于验证 Token

* * *

## 前端功能

左侧栏：

-   `Chat`：基础对话。
-   `Config`：运行时开关与运维面板（MemeBarrier / RL / ADV、阈值、tests 刷新、robots 重训）。

* * *

## HTTP API（精选）

### Chat

-   `POST /api/chat`：单模型聊天。
-   `POST /api/array/chat`：SparkArray 多 AI/多层调度聊天。

### 运行时开关（Config 页使用）

-   `GET /api/runtime/features`：读取当前开关状态与对话触发阈值。
-   `PATCH /api/runtime/features`：运行时修改开关/阈值。
    -   例：`{ "rlEnabled": true, "advEnabled": true, "memebarrierEnabled": true, "rlEvery": 20, "advEvery": 30 }`

### MemeBarrier

-   `POST /api/memebarrier/start`
-   `POST /api/memebarrier/stop`
-   `GET /api/memebarrier/stats`

### 学习模块

-   `POST /api/learn/reinforce` / `GET /api/learn/reinforce/latest`
-   `POST /api/learn/adversarial` / `GET /api/learn/adversarial/latest`
-   `POST /api/learn/thresholds`（对话触发频率）

### Tests（运行时新增与刷新）

-   `GET /api/tests/list`：列出 `tests/*.txt`
-   `POST /api/tests/case`：写入/覆盖一个测试用例文件
    -   请求：`{ "name": "case_001", "content": "..." }`
-   `POST /api/tests/refresh`：刷新 RL 的 tests 词表（必要时会重建 RL 实例指向 `tests/`）

### Robots（运行时重训/重新 ingest）

-   `GET /robots/list`
-   `POST /robots/ingest`
-   `POST /api/robots/retrain`：运行时触发 robots 语料重新 ingest（可选 enqueueStudy）
    -   请求示例：`{ "limit": 50, "shuffle": true, "files": ["wikitext-something.txt"], "enqueueStudy": true }`

### 导出（供 Go 等外部分析）

-   `POST /api/export/graph`：导出当前窗口图为 JSON 文件，并返回 `content` 便于直接复制。

### 快照/系统

-   `GET /api/snapshots` / `POST /api/snapshots/create` / `POST /api/snapshots/restore/:id` / `DELETE /api/snapshots/:id`
-   `GET /api/system/status`
-   `GET /api/shards`

* * *

## 常见问题

### 1) 访问 `5080/` 看不到 UI？

这是预期行为：UI 已迁移到身份+前端进程（默认 `http://127.0.0.1:5081/`）。

### 2) LMDB 打不开

日志出现回落提示时会自动改用 JSON 存储，仍可运行；若要启用 LMDB，请检查目录权限与依赖环境。

* * *

## 许可证

LGPL-3.0（见 `LICENSE`）。

## 常见问题

### 079project 是什么？

一个基于矩阵的人工智能，可以在很少的单词来源中表现良好，使用很少的资源。它的起始点初始化它，您可以按照readme\.md中的描述启动它

### 如何安装 079project？

在项目目录运行 npm install 079project，或使用 pnpm add / yarn add / bun add。

### 079project 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/079project 是否存在。

### 079project 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### 079project 可以商用吗？

079project 使用 LGPL-3\.0 许可。弱 Copyleft：作为库被调用时通常不要求开源你自己的代码，但修改库本身需以 LGPL 开源；前端打包合并后的适用边界存在不同理解。以上为概括，不构成法律意见，请以许可原文为准。

### 079project 还在维护吗？

最新版本 9\.1\.0 发布于 2026/01/01（10 个月前）；至今共发布 10 个版本，其中过去 12 个月发布了 6 个；首次发布于 2025/10/12。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

