首页 理论 架构 工程 文档 白皮书 著作 研究 案例 下载 博客 关于 开始使用 →

第81章 SAI + Web

第81章 SAI + Web

本章大纲

  1. Web 作为 SAI 接口
  2. Browser
  3. Request
  4. Controller
  5. Central
  6. Individual
  7. Expression
  8. SATE
  9. Renderer
  10. Response
  11. 完整 Web 案例

1. Web 作为 SAI 接口

Web 可以作为 SAI 与外部用户、系统之间的交互接口

这里的 Web 不是 SAI 本身,而是 SAI 的一个外部访问环境。

基本结构:

Browser
   ↓
Request
   ↓
Controller
   ↓
Central
   ↓
Individual
   ↓
Expression
   ↓
SATE
   ↓
Renderer
   ↓
Response
   ↓
Browser

因此,Web 主要负责:

  • 接收外部 Request
  • 将 Request 交给 SAI
  • 接收 SAI 的 Expression
  • 将 Expression 转换成 Web 输出
  • 返回 Response

而:

Web ≠ Cognition
Web ≠ Reasoning
Web ≠ Decision
Web ≠ Learning

Web 是接口环境


2. Browser

Browser 是 Web 交互的外部用户端。

例如用户打开:

/web/device.php?id=Motor_A

Browser 产生一个 HTTP Request。

结构可以表示为:

Browser
   │
   │ HTTP Request
   ↓
Web Server

例如:

GET /device.php?id=Motor_A

Request 中包含:

Method
URL
Path
Query
Headers
Body
Session

Browser 的职责主要是:

输入
 ↓
Request
 ↓
接收 Response
 ↓
显示结果

Browser 不负责 ICAI 的内部认知过程。


3. Request

Request 是 Web 环境向 SAI 提交的外部请求结构。

例如:

Request
{
    method: GET,
    path: /device,
    query:
    {
        id: Motor_A
    }
}

或者:

POST /device/action
{
    "device_id": "Motor_A",
    "action": "START"
}

Request 可以进入 SAI 的输入流程:

Browser
   ↓
HTTP Request
   ↓
Controller
   ↓
Central

Request 本身只是外部输入信息

它不等于:

Understanding
Decision
Action

例如:

Request:
“启动 Motor_A”

进入 SAI 后,还需要经过相应的:

感知
 ↓
认知
 ↓
理解
 ↓
推理
 ↓
决策
 ↓
行为
 ↓
行动

如果这个请求只是查询信息,则流程可以更简单。


4. Controller

Controller 是 Web 请求进入 SAI 的入口控制层。

它负责:

  1. 接收 Request
  2. 检查 Request
  3. 提取参数
  4. 判断请求类型
  5. 调用 Central
  6. 接收结果
  7. 交给输出层

例如:

class DeviceController
{
    protected $central;

    public function __construct($central)
    {
        $this->central = $central;
    }

    public function index($request)
    {
        $deviceId = isset($request['id'])
            ? $request['id']
            : null;

        if ($deviceId === null) {
            return array(
                'state' => 'INVALID',
                'error' => 'Device ID required'
            );
        }

        return $this->central->process(
            $request
        );
    }
}

Controller 不应该承担完整的 ICAI 认知逻辑。

因此:

Controller
    ↓
负责接口请求控制

Central
    ↓
负责 SAI 中央协调

Individual
    ↓
负责个体认知运行

5. Central

Central 可以理解为 SAI 的中央协调层

它连接 Web 接口与 Individual。

基本关系:

Controller
    ↓
Central
    ↓
Individual

Central 可以负责:

  • 接收外部输入
  • 建立请求上下文
  • 选择 Individual
  • 调用 Individual
  • 获取 Expression
  • 将结果交给输出系统

例如:

class Central
{
    protected $individual;

    public function __construct($individual)
    {
        $this->individual = $individual;
    }

    public function process($request)
    {
        return $this->individual->process(
            $request
        );
    }
}

Central 不应该替代 Individual 的认知过程。

可以定义:

Central = 协调
Individual = 认知运行

因此:

Central ≠ Individual

6. Individual

Individual 是 SAI 中具体的人工个体运行单元

它负责对输入进行实际处理。

例如:

Information
    ↓
Perception
    ↓
Elements
    ↓
Objects
    ↓
Relations
    ↓
Understanding
    ↓
Memory
    ↓
Reasoning
    ↓
Decision
    ↓
Behavior
    ↓
Action
    ↓
Expression

一个简化的 Individual:

class Individual
{
    public function process($request)
    {
        $information = $this->perception($request);

        $cognition = $this->cognition(
            $information
        );

        $decision = $this->decision(
            $cognition
        );

        return $this->expression(
            $decision
        );
    }

    protected function perception($request)
    {
        return $request;
    }

    protected function cognition($information)
    {
        return $information;
    }

    protected function decision($cognition)
    {
        return array(
            'state' => 'CONFIRMED',
            'data'  => $cognition
        );
    }

    protected function expression($decision)
    {
        return array(
            'type'   => 'RESULT',
            'state'  => $decision['state'],
            'data'   => $decision['data']
        );
    }
}

这里代码只是说明架构关系。

真正的 ICAI Individual 可以进一步连接:

PerceptionEngine
CognitionEngine
Memory
ReasoningEngine
Decision
Behavior
Action
Expression

因此:

Web
 ↓
Central
 ↓
Individual
 ↓
ICAI Internal Processing

7. Expression

Individual 完成内部处理以后,需要把内部结果转换成可以交给外部接口的结构。

这就是 Expression。

例如:

$expression = array(
    'id' => 'exp_001',

    'type' => 'DEVICE_STATUS',

    'target' => 'Web',

    'data' => array(
        'device_id' => 'Motor_A',
        'state'     => 'RUNNING',
        'temperature' => 65
    ),

    'state' => 'SUCCESS'
);

Expression 表示:

SAI 最终需要向外部表现什么

因此:

Decision
   ↓
Behavior
   ↓
Action
   ↓
ActionResult
   ↓
Expression

Expression 不负责 HTML。

例如:

Expression
{
    device: Motor_A
    state: RUNNING
}

它仍然是结构化数据。

然后:

Expression
   ↓
SATE
   ↓
Template
   ↓
Renderer

才进入 Web 表现层。


8. SATE

SATE 是 SAI Template Engine。

在 Web 中,SATE 负责根据 Template 对 Expression 进行结构化处理。

基本流程:

Expression
     ↓
SATE
     ↓
Template
     ↓
Template Result

例如 Expression:

array(
    'device' => array(
        'name'  => 'Motor_A',
        'state' => 'RUNNING'
    )
);

Template:

<div class="device">
    <h2>{{device.name}}</h2>
    <p>{{device.state}}</p>
</div>

SATE 处理后:

<div class="device">
    <h2>Motor_A</h2>
    <p>RUNNING</p>
</div>

SATE 的职责仍然只是模板处理。

因此:

SATE ≠ Individual
SATE ≠ Cognition
SATE ≠ Reasoning
SATE ≠ Renderer

9. Renderer

Renderer 将 SATE 处理后的结构转换为具体表现形式。

Web 场景中使用:

WebRenderer

流程:

Expression
    ↓
SATE
    ↓
Template
    ↓
WebRenderer
    ↓
HTML

例如:

$renderer->render(
    $expression,
    $template
);

输出:

<div class="device">
    <h2>Motor_A</h2>
    <p>RUNNING</p>
</div>

Renderer 负责:

结构 → 表现形式

而不是:

信息 → 认知

因此:

Template
    = 定义结构

SATE
    = 执行模板

Renderer
    = 转换表现形式

10. Response

Renderer 产生 Web 输出以后,由 Web 接口形成 HTTP Response。

完整过程:

Rendered Result
      ↓
HTTP Response
      ↓
Browser

例如:

HTTP/1.1 200 OK
Content-Type: text/html

Body:

<html>
<body>

<h1>Device Status</h1>

<div>
    <h2>Motor_A</h2>
    <p>RUNNING</p>
</div>

</body>
</html>

Response 可以包含:

Status Code
Headers
Content-Type
Body

例如 JSON:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "device": "Motor_A",
    "state": "RUNNING"
}

因此 Web 输出有:

HTML Response
JSON Response
XML Response
Text Response

具体格式由 Renderer 和接口配置决定。


11. 完整 Web 案例

下面建立一个完整的:

“浏览器查询 Motor_A 状态”

案例。


11.1 Browser

用户访问:

/device?id=Motor_A

Browser 发送:

GET /device?id=Motor_A

11.2 Request

Web Server 得到:

$request = array(
    'method' => 'GET',
    'path'   => '/device',
    'query'  => array(
        'id' => 'Motor_A'
    )
);

11.3 Controller

Controller 接收:

$controller->index($request);

提取:

device_id = Motor_A

然后:

Controller
     ↓
Central

11.4 Central

Central 将请求交给 Individual:

$result = $individual->process(
    $request
);

11.5 Individual

Individual 根据内部对象和记忆取得:

Object:
Motor_A

Property:
state = RUNNING

Property:
temperature = 65

形成认知结果:

Motor_A
    state = RUNNING
    temperature = 65

随后形成 Expression:

$expression = array(
    'type' => 'DEVICE_STATUS',

    'device' => array(
        'name' => 'Motor_A',
        'state' => 'RUNNING',
        'temperature' => 65
    ),

    'state' => 'SUCCESS'
);

11.6 SATE

选择:

device_status

Template:

<div class="device-status">

    <h2>{{device.name}}</h2>

    <p>
        状态:{{device.state}}
    </p>

    <p>
        温度:{{device.temperature}}℃
    </p>

</div>

SATE 将数据映射到 Template。


11.7 WebRenderer

WebRenderer 将结构转换为 HTML:

<div class="device-status">

    <h2>Motor_A</h2>

    <p>
        状态:RUNNING
    </p>

    <p>
        温度:65℃
    </p>

</div>

11.8 Response

Web 系统形成:

HTTP/1.1 200 OK
Content-Type: text/html

Body:

<div class="device-status">

    <h2>Motor_A</h2>

    <p>状态:RUNNING</p>

    <p>温度:65℃</p>

</div>

11.9 Browser

Browser 接收到 Response:

HTTP Response
      ↓
Browser
      ↓
显示 Motor_A 状态

完整 SAI + Web 模型

最终可以形成:

                         SAI + Web
                             │
                             ↓
                         Browser
                             │
                             ↓
                          Request
                             │
                             ↓
                        Controller
                             │
                             ↓
                          Central
                             │
                             ↓
                        Individual
                             │
              ┌──────────────┴──────────────┐
              ↓                             ↓
       ICAI Internal Processing          Memory
              │
              ↓
        Perception
              ↓
        Cognition
              ↓
        Understanding
              ↓
          Reasoning
              ↓
          Decision
              ↓
          Behavior
              ↓
           Action
              ↓
         Expression
              │
              ↓
             SATE
              │
              ↓
           Template
              │
              ↓
          WebRenderer
              │
              ↓
           Response
              │
              ↓
           Browser

本章核心定义

SAI + Web 可以定义为:

Web 作为 SAI 与外部用户或系统之间的接口环境,通过 Request 进入 Controller,由 Central 协调 Individual 执行内部处理,再由 Expression、SATE、Renderer 将结构化结果转换为 Web Response,最终返回 Browser。

最核心的边界是:

Browser
    = 外部交互端

Request
    = 外部输入

Controller
    = Web 请求控制

Central
    = SAI 中央协调

Individual
    = ICAI 个体运行

Expression
    = 内部结果的外部表现结构

SATE
    = 模板处理

Renderer
    = 表现形式转换

Response
    = Web 输出

因此第81章可以把前面第53章至第80章的多个组件正式连接到 Web 接口链路

Web
 ↓
Controller
 ↓
Central
 ↓
Individual
 ↓
Expression
 ↓
SATE
 ↓
Renderer
 ↓
Response
 ↓
Web

这就是 SAI 的一个完整 Web 接口闭环。

Leave a Reply

Your email address will not be published. Required fields are marked *