Skip to content

A NARS-Embodied-Interface written in Julia | 一个使用Julia编写的NARS具身接口

License

Notifications You must be signed in to change notification settings

ARCJ137442/JuNEI.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NARS-Embodied-Interface NARS具身接口

GitHub License Code Size Lines of Code Language

开发状态:

Created At Last Commit

Conventional Commits

简介

Introduction 简介

一个以 NARS 作为AI玩家,提供集成访问&调用的接口

Author's Note 作者注

  • 本实现作为从PyNEI迁移过来的版本,在功能上与PyNEI并无太大差异,但代码组织上更清晰,且能更好地支持各大接口特性。
  • 因作者目前(2023-10-26)的工作重点转移到了「AI虚拟环境」上,所以该接口的定位发生了变化:
    • 「接口」部分:整体退居幕后
      • 目前以「服务器」的形式被使用,用于对接用其它语言编写的虚拟环境
      • 代码体现:如Console类型的launch!方法
      • 🚩未来将对「跨CIN指令输入」使用NAVM
    • 「具身」部分暂停维护
      • 核心转移为「通信」上(体现同上)
    • 「NAL」部分拆分外包
    • 外部的「游戏」部分停止更新:单一的呈现环境(命令行)已无法满足调试需要
  • ❓目前 executables 目录下的可执行文件似乎需要外置为Artifacts

Concept 概念

  • NARS: Non-Axiomatic Reasoning System | 非公理推理系统
  • NAL: Non-Axiomatic Logic | 非公理逻辑
  • CIN: Computer Implementation of NARS | NARS的计算机实现

Preparation 预备

  1. Julia 1.9.1+

Feature 特性

  • 对接多个NARS计算机实现(CIN),实现「多实现,一窗口」
    • 可在一个终端里选择多个CIN进行交互
  • 更通用化的具身接口代码,帮助更快对接游戏与NARS
    • 将「智能体定义」和「与NARS程序通信」分离
    • 集中定义NAL语句和元素,避免分散与重复
    • 更高的代码组织效率
  • 异步CIN管理机制
    • 对使用exe shell交互的CIN:
      • 一个子进程启动CIN实例
      • 即时异步操作写入输入
      • 一个异步循环读取输出
    • 对使用Julia/Python模块交互的CIN:
      • 异步导入所用模块
      • 通过专门的「接口代码文件」调用模块类型&方法

Quick Start 快速开始

启动终端

要通过JuNEI启动(任意一个CIN)终端,可以通过「控制台」Console进行相关启动

📌启动代码已内置到了test_console.jl中,在系统安装有Julia的情况下,可以通过以下命令启动

cd 【JuNEI文件夹根目录】
julia test/test_console.jl

在启动过程中,脚本会提示输入CIN类型(OpenNARS/ONA/NARS-Python/...),只需选择一个即可

⚠️注意:某些CIN有额外环境要求

快速启动OpenNARS Websocket服务器

要启动OpenNARS Websocket服务器,只需在启动终端的基础上,将其中的test_console.jl换成test_console_OpenNARS.jl即可

References 参考

NARS计算机实现

NARS+ & 游戏Demo

About

A NARS-Embodied-Interface written in Julia | 一个使用Julia编写的NARS具身接口

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published