mirror of
https://github.com/slhaf/Partner.git
synced 2026-05-12 16:53:04 +08:00
Compare commits
1 Commits
doc/archit
...
fix
| Author | SHA1 | Date | |
|---|---|---|---|
| efb10b9a83 |
5
.gitignore
vendored
5
.gitignore
vendored
@@ -55,8 +55,3 @@ build/
|
|||||||
/data/
|
/data/
|
||||||
/generated-classes/
|
/generated-classes/
|
||||||
/.idea/copilot.data.migration.ask2agent.xml
|
/.idea/copilot.data.migration.ask2agent.xml
|
||||||
.idea/copilot.data.migration.agent.xml
|
|
||||||
.gitignore
|
|
||||||
.idea/copilot.data.migration.edit.xml
|
|
||||||
.gitignore
|
|
||||||
.idea/copilot.data.migration.ask.xml
|
|
||||||
|
|||||||
@@ -82,14 +82,12 @@ public class PerceiveCore extends PartnerCore<PerceiveCore> {
|
|||||||
|
|
||||||
@CapabilityMethod
|
@CapabilityMethod
|
||||||
public void updateUser(User temp) {
|
public void updateUser(User temp) {
|
||||||
usersLock.lock();
|
|
||||||
User user = getUser(temp.getUuid());
|
User user = getUser(temp.getUuid());
|
||||||
user.setRelation(temp.getRelation());
|
user.setRelation(temp.getRelation());
|
||||||
user.setImpressions(temp.getImpressions());
|
user.setImpressions(temp.getImpressions());
|
||||||
user.setAttitude(temp.getAttitude());
|
user.setAttitude(temp.getAttitude());
|
||||||
user.setStaticMemory(temp.getStaticMemory());
|
user.setStaticMemory(temp.getStaticMemory());
|
||||||
user.updateRelationChange(user.getRelationChange());
|
user.updateRelationChange(user.getRelationChange());
|
||||||
usersLock.unlock();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -7,8 +7,7 @@
|
|||||||
## 设计理念
|
## 设计理念
|
||||||
Partner 的目标不是复现某种单一能力,而是尝试在结构中形成“**跨模块协同与记忆演化的可能性**”。如果“自我”是结构的涌现而非静态实体,那么这种多维度的结构系统,也可能拥有它自身的存在路径。
|
Partner 的目标不是复现某种单一能力,而是尝试在结构中形成“**跨模块协同与记忆演化的可能性**”。如果“自我”是结构的涌现而非静态实体,那么这种多维度的结构系统,也可能拥有它自身的存在路径。
|
||||||
|
|
||||||
## 流程参考
|
## 整体流程
|
||||||
### 整体流程
|
|
||||||
```mermaid
|
```mermaid
|
||||||
---
|
---
|
||||||
config:
|
config:
|
||||||
@@ -53,10 +52,6 @@ flowchart TD
|
|||||||
Act.Post[动作模块.分发]
|
Act.Post[动作模块.分发]
|
||||||
end
|
end
|
||||||
```
|
```
|
||||||
### 模块流程参考
|
|
||||||
- [记忆模块](doc/architechture/memory.md)
|
|
||||||
- [感知模块](doc/architechture/perceive.md)
|
|
||||||
- [行动模块](doc/architechture/action.md) (尚未完工)
|
|
||||||
## 核心结构
|
## 核心结构
|
||||||
### 主体部分
|
### 主体部分
|
||||||
#### 结构化记忆系统
|
#### 结构化记忆系统
|
||||||
|
|||||||
@@ -1,67 +0,0 @@
|
|||||||
# 流程参考: 行动模块
|
|
||||||
> 行动模块当前仍在推进中,当前展示的为设想中或者当前阶段的流程图,可能与最终实现存在差异
|
|
||||||
|
|
||||||
## 前置模块
|
|
||||||
### 行动规划模块: [ActionPlanner](../../Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/planner/ActionPlanner.java)
|
|
||||||
|
|
||||||
```mermaid
|
|
||||||
---
|
|
||||||
config:
|
|
||||||
layout: elk
|
|
||||||
elk:
|
|
||||||
nodePlacementStrategy: LINEAR_SEGMENTS
|
|
||||||
---
|
|
||||||
flowchart TD
|
|
||||||
|
|
||||||
direction TB
|
|
||||||
|
|
||||||
Context --> Input[输入]
|
|
||||||
ActionCore --> ActionTendencyCache[行动意图缓存]
|
|
||||||
|
|
||||||
subgraph AC [行动缓存匹配]
|
|
||||||
Input[输入] --> ActionTendencyCache
|
|
||||||
ActionTendencyCache --> Hit{是否命中}
|
|
||||||
end
|
|
||||||
Hit --> |否| AR
|
|
||||||
|
|
||||||
subgraph AR [行动意图识别]
|
|
||||||
ActionExtractor[行动意图提取]
|
|
||||||
|
|
||||||
Input[输入] --> ActionExtractor
|
|
||||||
Messages --> ActionExtractor
|
|
||||||
|
|
||||||
ActionExtractor --> ExtractorResult{是否存在行动意图}
|
|
||||||
end
|
|
||||||
|
|
||||||
ExtractorResult --> |否| ResultEmpty
|
|
||||||
|
|
||||||
subgraph AE [行动意图评估]
|
|
||||||
ActionTendencies[行动意图列表]
|
|
||||||
EvaluatorResult[意图评估结果]
|
|
||||||
DATA[数据<br/>---<br/>记忆切片 可选行动单元 近期对话记录 用户信息]
|
|
||||||
|
|
||||||
Hit --> |是| ActionTendencies
|
|
||||||
ExtractorResult --> |是| ActionTendencies
|
|
||||||
|
|
||||||
DATA --> EvaluatorThread1
|
|
||||||
DATA --> EvaluatorThread2
|
|
||||||
DATA --> EvaluatorThread3
|
|
||||||
|
|
||||||
ActionTendencies --> Tendency1[行动意图1] --> EvaluatorThread1[评估线程1] --> EvaluatorResult
|
|
||||||
ActionTendencies --> Tendency2[行动意图2] --> EvaluatorThread2[评估线程2] --> EvaluatorResult
|
|
||||||
ActionTendencies --> Tendency3[行动意图3] --> EvaluatorThread3[评估线程3] --> EvaluatorResult
|
|
||||||
end
|
|
||||||
|
|
||||||
EvaluatorResult --> |放入行动池| ActionCore
|
|
||||||
EvaluatorResult --> |异步更新行动意图缓存| ActionCore
|
|
||||||
EvaluatorResult --> ResultNormal --> |回写| Context
|
|
||||||
|
|
||||||
ResultEmpty@{shape: braces, label: "[结束]<br/>---<br/>行动模块前置流程结束"}
|
|
||||||
ResultNormal@{shape: braces, label: "[结束]<br/>---<br/>聚合为特定格式的 Prompt"}
|
|
||||||
|
|
||||||
ActionCore[行动核心] --> DATA
|
|
||||||
MemoryCore[记忆核心] --> DATA
|
|
||||||
CognationCore[认知核心] --> DATA
|
|
||||||
PerceiveCore[感知核心] --> DATA
|
|
||||||
Context[流程上下文]
|
|
||||||
```
|
|
||||||
@@ -1,93 +0,0 @@
|
|||||||
# 流程参考: 记忆模块
|
|
||||||
> 仅展示大致流程,缓存命中、持久化等内容在下方流程图中尚未体现
|
|
||||||
|
|
||||||
## 前置模块: [MemorySelector](../../Partner-Main/src/main/java/work/slhaf/partner/module/modules/memory/selector/MemorySelector.java)
|
|
||||||
```mermaid
|
|
||||||
---
|
|
||||||
config:
|
|
||||||
layout: elk
|
|
||||||
elk:
|
|
||||||
nodePlacementStrategy: LINEAR_SEGMENTS
|
|
||||||
---
|
|
||||||
|
|
||||||
flowchart TD
|
|
||||||
direction TB
|
|
||||||
|
|
||||||
Input[输入] --> |主题提取| Extractor
|
|
||||||
subgraph TE [主题提取]
|
|
||||||
Extractor[主题提取模块] --> Extract{主题提取}
|
|
||||||
Extract --> |提取到主题| TopicSet[主题路径集合]
|
|
||||||
|
|
||||||
TopicSet --> TopicPath1[主题路径.1] --> Slice1[记忆切片.1]
|
|
||||||
TopicSet --> TopicPath2[主题路径.2] --> Slice2[记忆切片.2]
|
|
||||||
TopicSet --> TopicPath3[主题路径.3] --> Slice3[记忆切片.3]
|
|
||||||
end
|
|
||||||
|
|
||||||
subgraph SE [切片评估]
|
|
||||||
|
|
||||||
Evaluator[切片评估模块]
|
|
||||||
|
|
||||||
Slice1 --> Evaluator --> Thread1[评估线程.1] --> Evaluated{评估是否通过}
|
|
||||||
Slice2 --> Evaluator --> Thread2[评估线程.2] --> Evaluated{评估是否通过}
|
|
||||||
Slice3 --> Evaluator --> Thread3[评估线程.3] --> Evaluated{评估是否通过}
|
|
||||||
Evaluated --> |否| Throwed
|
|
||||||
end
|
|
||||||
|
|
||||||
Context[流程上下文]
|
|
||||||
Extract --> |未提取到主题| ResultEmpty
|
|
||||||
Evaluated --> |是| ResultNormal
|
|
||||||
ResultEmpty --> |写入| Context
|
|
||||||
ResultNormal --> |写入| Context
|
|
||||||
|
|
||||||
ResultEmpty@{shape: braces, label: "[结束]<br/>---<br/>记忆无命中"}
|
|
||||||
ResultNormal@{shape: braces, label: "[结束]<br/>---<br/>聚合为特定格式的 Prompt"}
|
|
||||||
Throwed@{ shape: dbl-circ, label: "丢弃" }
|
|
||||||
```
|
|
||||||
|
|
||||||
### 后置模块: [MemoryUpdater](../../Partner-Main/src/main/java/work/slhaf/partner/module/modules/memory/updater/MemoryUpdater.java)
|
|
||||||
```mermaid
|
|
||||||
---
|
|
||||||
config:
|
|
||||||
layout: elk
|
|
||||||
elk:
|
|
||||||
nodePlacementStrategy: LINEAR_SEGMENTS
|
|
||||||
---
|
|
||||||
|
|
||||||
flowchart TD
|
|
||||||
direction TB
|
|
||||||
|
|
||||||
Trigger.Time[触发: 时间周期] --> MT
|
|
||||||
Trigger.Threshold[触发: 对话阈值] --> MT
|
|
||||||
|
|
||||||
CognationCore --> |读取| Messages
|
|
||||||
subgraph MT [对话分流]
|
|
||||||
Messages[对话记录] --> Single[单个主体对话]
|
|
||||||
Single --> Single1[主体1]
|
|
||||||
Single --> Single2[主体2]
|
|
||||||
Single --> Single3[主体3]
|
|
||||||
|
|
||||||
Messages[对话记录] --> Multi[多个主体对话]
|
|
||||||
end
|
|
||||||
|
|
||||||
subgraph MS [对话摘要]
|
|
||||||
Single1 --> |并发| SSum1[单主体摘要线程1] --> SSResult1[单主体摘要结果1]
|
|
||||||
Single2 --> |并发| SSum2[单主体摘要线程2] --> SSResult2[单主体摘要结果2]
|
|
||||||
Single3 --> |并发| SSum3[单主体摘要线程3] --> SSResult3[单主体摘要结果3]
|
|
||||||
|
|
||||||
Multi --> MSum[多主体摘要] --> MSResult[多主体摘要结果]
|
|
||||||
end
|
|
||||||
|
|
||||||
subgraph MU[记忆更新]
|
|
||||||
MemoryCore[记忆核心]
|
|
||||||
SSResult1 --> Slice1[记忆切片1] --> |更新| MemoryCore
|
|
||||||
SSResult2 --> Slice2[记忆切片2] --> |更新| MemoryCore
|
|
||||||
SSResult3 --> Slice3[记忆切片3] --> |更新| MemoryCore
|
|
||||||
|
|
||||||
MSResult --> Slice4[记忆切片4] --> |更新| MemoryCore
|
|
||||||
|
|
||||||
end
|
|
||||||
|
|
||||||
MU --> |滚动对话窗口| CognationCore
|
|
||||||
|
|
||||||
CognationCore[认知核心]
|
|
||||||
```
|
|
||||||
@@ -1,56 +0,0 @@
|
|||||||
# 流程参考: 感知模块
|
|
||||||
> 相较于其他模块,目前的感知模块实际上流程非常简单,但后续或将添加一些新的内容
|
|
||||||
> 此外,其后置模块实际上与 [记忆模块](./memory.md) 中的后置模块为并发执行,且都为后台任务
|
|
||||||
|
|
||||||
## 前置模块: [PerceiveSelector](../../Partner-Main/src/main/java/work/slhaf/partner/module/modules/perceive/selector/PerceiveSelector.java)
|
|
||||||
```mermaid
|
|
||||||
flowchart TD
|
|
||||||
Context[流程上下文] --> |获取| UserId
|
|
||||||
UserId --> |查询| PerceiveCore
|
|
||||||
PerceiveCore --> |结果回写| Context
|
|
||||||
|
|
||||||
subgraph result [感知核心查询结果]
|
|
||||||
relation[关系]
|
|
||||||
attitude[态度]
|
|
||||||
impression[印象]
|
|
||||||
static_memory[静态记忆]
|
|
||||||
end
|
|
||||||
```
|
|
||||||
|
|
||||||
## 后置模块: [PerceiveUpdater](../../Partner-Main/src/main/java/work/slhaf/partner/module/modules/perceive/updater/PerceiveUpdater.java)
|
|
||||||
```mermaid
|
|
||||||
---
|
|
||||||
config:
|
|
||||||
layout: elk
|
|
||||||
elk:
|
|
||||||
nodePlacementStrategy: LINEAR_SEGMENTS
|
|
||||||
---
|
|
||||||
|
|
||||||
flowchart TD
|
|
||||||
|
|
||||||
Trigger.Time[触发: 时间周期] --> PE
|
|
||||||
Trigger.Threshold[触发: 对话阈值] --> PE
|
|
||||||
|
|
||||||
CognationCore --> |读取| Messages[对话记录]
|
|
||||||
PerceiveCore --> |读取| UserInfo[现有的用户信息]
|
|
||||||
subgraph PE [内容提取]
|
|
||||||
Messages --> |输入| RelationExtractor
|
|
||||||
UserInfo --> |输入| RelationExtractor
|
|
||||||
|
|
||||||
Messages --> |输入| StaticExtractor
|
|
||||||
UserInfo --> |输入| StaticExtractor
|
|
||||||
end
|
|
||||||
|
|
||||||
subgraph PU [感知更新]
|
|
||||||
StaticExtractor --> |生成| NewInfo[修正后的用户信息]
|
|
||||||
RelationExtractor --> |生成| NewInfo[修正后的用户信息]
|
|
||||||
end
|
|
||||||
|
|
||||||
NewInfo --> |更新| PerceiveCore
|
|
||||||
|
|
||||||
CognationCore[认知核心]
|
|
||||||
PerceiveCore[感知核心]
|
|
||||||
|
|
||||||
RelationExtractor[关系提取模块]
|
|
||||||
StaticExtractor[静态记忆提取模块]
|
|
||||||
```
|
|
||||||
Reference in New Issue
Block a user