第81章 SAI + Web
本章大纲
- Web 作为 SAI 接口
- Browser
- Request
- Controller
- Central
- Individual
- Expression
- SATE
- Renderer
- Response
- 完整 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 的入口控制层。
它负责:
- 接收 Request
- 检查 Request
- 提取参数
- 判断请求类型
- 调用 Central
- 接收结果
- 交给输出层
例如:
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 接口闭环。