Observed since 20 Oct, 17:27 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
079project
a GNN-GA BASED ai that might pass the turing test,which use little resources.its startpoint initialize it and you can start it as ```node mainStarter.cjs```
一个实验型 AI 项目:把“图谱推理 + 学习模块 + 网关 API + 前端控制台 + 身份系统”组合在同一仓库内运行。
当前架构已拆分为 两个 Node 进程:
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 存储)。pwsh.exe 为准)。后端依赖:
cd "079Project/"
npm install
前端依赖:
cd "079Project/079project_frontend"
npm install
端口默认值:
127.0.0.1:5080127.0.0.1:5081/api/*):cd "079Project/"
$env:AI_AUTH_ENABLED="true"
$env:AI_AUTH_JWT_SECRET="change-me"
node .\main.cjs
如果你需要启用“性能/并发实验功能”(--group-proc/--infer-mp/--single-proc),请改用:
node .\mainFailedOfJing1Xi4Hua4Zhi4Duan3Yu3.cjs
/api/* 到主 AI):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/首次启动需要在页面中选择“首次启动?去初始化”,创建管理员账号(只允许一次)。
注意:AUTH_JWT_SECRET 与 AI_AUTH_JWT_SECRET 必须一致,否则 Token 无法被主 AI 验证。
前端开发服务器(CRA)默认使用 079project_frontend/package.json 的 proxy。
如果你仍使用该模式,建议把 proxy 改为 http://127.0.0.1:5081(让 /api/* 通过身份进程反代,避免跨域与 Token 问题)。
启动命令:
cd "079Project/079project_frontend"
npm start
浏览器访问 CRA 提示的地址即可。
cd "079Project/079project_frontend"
npm run build
cd "079Project/"
$env:AI_AUTH_ENABLED="true"
$env:AI_AUTH_JWT_SECRET="change-me"
node .\main.cjs
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)的入口。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
主 AI:
cd "079Project/"
$env:AI_AUTH_ENABLED="true"
$env:AI_AUTH_JWT_SECRET="change-me"
node .\main.cjs --port=5080
身份 + 前端:
cd "079Project/"
$env:AUTH_JWT_SECRET="change-me"
$env:AI_API_BASE="http://127.0.0.1:5080"
node .\auth_frontend_server.cjs
当你发现多进程模式在当前机器/当前负载下反而更慢,使用:
cd "079Project/"
node .\mainFailedOfJing1Xi4Hua4Zhi4Duan3Yu3.cjs --single-proc=true --port=5080
说明:--single-proc=true 会强制关闭 --group-proc 与 --infer-mp。
适用于并发请求较多、单次请求较重、且 CPU 核数充足的机器;如果请求很轻或 IPC 开销占比过高,可能“更慢”。
cd "079Project/"
$env:AI_AUTH_ENABLED="false"
node .\mainFailedOfJing1Xi4Hua4Zhi4Duan3Yu3.cjs --group-proc=true --group-count=6 --group-size=3 --port=5080
适用于不启用 group-proc 的情况下,想让 SparkArray/BigSparkArray 的分发利用多核:
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:
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:推理子进程数量。身份系统存储:默认 079Project/runtime_store/auth.sqlite。
环境变量(auth_frontend_server.cjs):
AUTH_PORT:默认 5081AUTH_HOST:默认 127.0.0.1AUTH_DB_PATH:默认 079Project/runtime_store/auth.sqliteAUTH_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 重训)。POST /api/chat:单模型聊天。POST /api/array/chat:SparkArray 多 AI/多层调度聊天。GET /api/runtime/features:读取当前开关状态与对话触发阈值。PATCH /api/runtime/features:运行时修改开关/阈值。
{ "rlEnabled": true, "advEnabled": true, "memebarrierEnabled": true, "rlEvery": 20, "advEvery": 30 }POST /api/memebarrier/startPOST /api/memebarrier/stopGET /api/memebarrier/statsPOST /api/learn/reinforce / GET /api/learn/reinforce/latestPOST /api/learn/adversarial / GET /api/learn/adversarial/latestPOST /api/learn/thresholds(对话触发频率)GET /api/tests/list:列出 tests/*.txtPOST /api/tests/case:写入/覆盖一个测试用例文件
{ "name": "case_001", "content": "..." }POST /api/tests/refresh:刷新 RL 的 tests 词表(必要时会重建 RL 实例指向 tests/)GET /robots/listPOST /robots/ingestPOST /api/robots/retrain:运行时触发 robots 语料重新 ingest(可选 enqueueStudy)
{ "limit": 50, "shuffle": true, "files": ["wikitext-something.txt"], "enqueueStudy": true }POST /api/export/graph:导出当前窗口图为 JSON 文件,并返回 content 便于直接复制。GET /api/snapshots / POST /api/snapshots/create / POST /api/snapshots/restore/:id / DELETE /api/snapshots/:idGET /api/system/statusGET /api/shards5080/ 看不到 UI?这是预期行为:UI 已迁移到身份+前端进程(默认 http://127.0.0.1:5081/)。
日志出现回落提示时会自动改用 JSON 存储,仍可运行;若要启用 LMDB,请检查目录权限与依赖环境。
LGPL-3.0(见 LICENSE)。
npm · 1 observations shown. Missing days are unknown.
| Date / source period | Value | Observed at |
|---|---|---|
| 2026-10-20 | 2 | 2026-10-20T20:07:22.0508457Z |
| Package / target | Requirement | Relationship |
|---|---|---|
msEnvironment{
"local_name": "ms",
"alias": false,
"peer_metadata": null
} | ^2.1.3 | runtime |
lmdbEnvironment{
"local_name": "lmdb",
"alias": false,
"peer_metadata": null
} | ^3.4.3 | runtime |
axiosEnvironment{
"local_name": "axios",
"alias": false,
"peer_metadata": null
} | ^1.11.0 | runtime |
chalkEnvironment{
"local_name": "chalk",
"alias": false,
"peer_metadata": null
} | ^4.1.2 | runtime |
debugEnvironment{
"local_name": "debug",
"alias": false,
"peer_metadata": null
} | ^4.4.3 | runtime |
redisEnvironment{
"local_name": "redis",
"alias": false,
"peer_metadata": null
} | ^5.8.3 | runtime |
brainjsEnvironment{
"local_name": "brainjs",
"alias": false,
"peer_metadata": null
} | ^0.7.4 | runtime |
expressEnvironment{
"local_name": "express",
"alias": false,
"peer_metadata": null
} | ^4.0.0 | runtime |
naturalEnvironment{
"local_name": "natural",
"alias": false,
"peer_metadata": null
} | ^8.1.0 | runtime |
umap-jsEnvironment{
"local_name": "umap-js",
"alias": false,
"peer_metadata": null
} | ^1.4.0 | runtime |
ee-firstEnvironment{
"local_name": "ee-first",
"alias": false,
"peer_metadata": null
} | ^1.1.1 | runtime |
electronEnvironment{
"local_name": "electron",
"alias": false,
"peer_metadata": null
} | ^37.2.4 | runtime |
parseurlEnvironment{
"local_name": "parseurl",
"alias": false,
"peer_metadata": null
} | ^1.3.3 | runtime |
statusesEnvironment{
"local_name": "statuses",
"alias": false,
"peer_metadata": null
} | ^2.0.2 | runtime |
synapticEnvironment{
"local_name": "synaptic",
"alias": false,
"peer_metadata": null
} | ^1.1.4 | runtime |
encodeurlEnvironment{
"local_name": "encodeurl",
"alias": false,
"peer_metadata": null
} | ^2.0.0 | runtime |
forwardedEnvironment{
"local_name": "forwarded",
"alias": false,
"peer_metadata": null
} | ^0.2.0 | runtime |
ipaddr.jsEnvironment{
"local_name": "ipaddr.js",
"alias": false,
"peer_metadata": null
} | ^2.3.0 | runtime |
puppeteerEnvironment{
"local_name": "puppeteer",
"alias": false,
"peer_metadata": null
} | ^24.26.1 | runtime |
protobufjsEnvironment{
"local_name": "protobufjs",
"alias": false,
"peer_metadata": null
} | ^7.5.4 | runtime |
workerpoolEnvironment{
"local_name": "workerpool",
"alias": false,
"peer_metadata": null
} | ^9.3.3 | runtime |
@redis/jsonEnvironment{
"local_name": "@redis/json",
"alias": false,
"peer_metadata": null
} | ^5.8.3 | runtime |
body-parserEnvironment{
"local_name": "body-parser",
"alias": false,
"peer_metadata": null
} | ^2.2.0 | runtime |
escape-htmlEnvironment{
"local_name": "escape-html",
"alias": false,
"peer_metadata": null
} | ^1.0.3 | runtime |
on-finishedEnvironment{
"local_name": "on-finished",
"alias": false,
"peer_metadata": null
} | ^2.4.1 | runtime |
@redis/bloomEnvironment{
"local_name": "@redis/bloom",
"alias": false,
"peer_metadata": null
} | ^5.8.3 | runtime |
side-channelEnvironment{
"local_name": "side-channel",
"alias": false,
"peer_metadata": null
} | ^1.1.0 | runtime |
tensorflowjsEnvironment{
"local_name": "tensorflowjs",
"alias": false,
"peer_metadata": null
} | ^0.6.8 | runtime |
@redis/clientEnvironment{
"local_name": "@redis/client",
"alias": false,
"peer_metadata": null
} | ^5.8.3 | runtime |
@redis/searchEnvironment{
"local_name": "@redis/search",
"alias": false,
"peer_metadata": null
} | ^5.8.3 | runtime |
child_processEnvironment{
"local_name": "child_process",
"alias": false,
"peer_metadata": null
} | ^1.0.2 | runtime |
object-inspectEnvironment{
"local_name": "object-inspect",
"alias": false,
"peer_metadata": null
} | ^1.13.4 | runtime |
@tensorflow/tfjsEnvironment{
"local_name": "@tensorflow/tfjs",
"alias": false,
"peer_metadata": null
} | ^4.22.0 | runtime |
follow-redirectsEnvironment{
"local_name": "follow-redirects",
"alias": false,
"peer_metadata": null
} | ^1.15.11 | runtime |
@tensorflow/tfjs-layersEnvironment{
"local_name": "@tensorflow/tfjs-layers",
"alias": false,
"peer_metadata": null
} | ^4.22.0 | runtime |
Source distribution
{
"shasum": "e0c6d6b70c25120e3f78f9b1d19c1a95867a9da0",
"tarball": "https://registry.npmjs.org/079project/-/079project-6.0.0.tgz",
"fileCount": 35,
"integrity": "sha512-IzwblDLCP56icH4phssRgJffd1j1mB/+yohpsAvmLWBuQdITDrJYi6rozB6YGWQtBXwPsjG2PyFgT7SCJFHnfA==",
"signatures": [
{
"sig": "MEUCIQC/WOPq/S8OZm9+POOGdFcgnJPY2ZVLpMOILGWRWwNMzwIgXP96i25PdtYeJR2M8V7JyeETTmTKkcGykjHD0DCM/VM=",
"keyid": "SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"
}
],
"unpackedSize": 81267709
}Observed since 20 Oct, 17:27 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package_version:ec5982618a51b1249c6f9522cd08d2fa5dc341b8cb62218c4e2186ec5aa810bd