LLM辅助建模

构造反馈循环

1.建模任务模板:

<code>
业务描述
=======
{context}

任务
====
根据业务描述,为系统建立模型。可以添加你认为必要的实体和关系。并将模型表示为mermaid的class diagram

2.模型检查任务模板:

领域模型
======
```mermaid
{model}
```

用户故事
======
{user_story}

验收场景
======
{ac}

任务
===
针对这个用户故事和验收场景,领域模型中缺少哪些概念?或者存在哪些不正确的关联关系。
请用文字表示缺失的概念是什么?以及存在哪些不正确的关联。

3.模型展开任务模板:

领域模型
======
```mermaid
{model}
```

用户故事
======
{user_story}

验收场景
======
{ac}

任务
===
数据都以yaml格式给出。
首先,请根据领域模型理解用户故事中的场景,并针对验收场景中Given的部分,给出样例数据。
然后,参看验收场景中When的部分,给出样例数据会产生怎样的改变。

在模型展开的模板中,我们需要用户故事和验收场景。同样,我们可以使用上一节课中的用户故事和验收条件。

作为学校的教职员工(As a faculty),
我希望学生可以根据录取通知将学籍注册到教学计划上(I want the student to be able to enroll in an academic program with given offer),
从而我可以跟踪他们的获取学位的进度(So that I can track their progress)
如果获取了录取通知的学生没有注册学籍时(Given student with offer hasn’t enrolled any program),
当这个学生注册时(When the student enroll),
那么这个学生将能成功注册学籍到录取通知指定的教学计划中(Then the student will successfully enroll the program specified in the offer)x

下面让我们使用这两个模板,通过反馈循环,对这个系统进行建模。

通过概念字典辅助建模

我们知道在建模的过程中,最重要的就是发掘系统中的存在的概念,并建立概念与概念之间的关联。那么在实际建模的过程中,对于概念的提炼就是重中之重了。通常在建模的过程中,我们会维护一个概念字典(Glossary),其中包含对于系统非常重要的业务概念,以及对于这些概念的基本解释。

业务描述
=======
{context}

系统中涉及概念的glossary如下:
{glossary}

任务
====
根据业务描述,为系统建立模型。可以添加你认为必要的实体和关系。并将模型表示为mermaid的class diagram

同样,我们也可以使用 LLM 辅助我们提取这个概念字典。我们可以设计这样的任务模板:

用户故事
======
{story}

任务
===
请根据用户故事中描述的业务场景,提取其中的业务概念,并给出每个概念的定义。
结果以表格形式给出。

在最开始的时候,我们完全使用复杂认知模式(Complex),依靠反馈循环辅助我们完成建模的过程。而当我们发现 LLM 给出的反馈,可以构成概念字典时。我们的关注点,就变成了如何有效地生成概念字典。也就是,我们从探测性的模型生成转向了有针对性的知识生成(Generated Knowledge)。这实际是一种认知提升的体现,我们也由此逐渐进入到庞杂认知模式(Complicated)。

围绕概念字典构造思维链

一旦进入到庞杂认知模式,那么通过构造思维链(Chain of Thought)提高效率就是一个很自然的选择了。而针对建模而言,就是把建模方法转化为思维链,以提高模型的质量。

让我们举一个例子,如果我们目前要以 Peter Coad 的四色法(4 Colors Modeling)对这个系统进行建模,那么我们需要为 LLM 讲解四色法的四个基本原型:

在使用四色法建模时,我们将使用 4 个基本原型(Archetype):Moment-interval、role、party-place-thing 和 description。 

在这四个原型中,最重要的原型是 moment-interval,也就是某个时间或是一段时间。它代表的是出于业务或法律原因需要记录和跟踪的事情,是在某个时间或时间段内发生的事情。它帮助提醒我们在问题领域中寻找重要的时刻或时间段。

 比如,销售(Sale)是在某一时刻进行的(moment),这里重要的信息是销售的日期和时间;
 比如,租赁(Rental)则发生在一段时间内,这个时间段就是从支付(checkout)到归还(return);
 比如,预订(Reservation)也是发生在一段时间内,这个时间段就是预订到使用、取消或过期。 

第二个重要原型是 role,也就是角色。角色是人、地点或事物(party-place-thing)以何种方式参与到 moment-interval 中。 
比如,在销售(Sale)中,就会存在买家 (buyer) 和卖家 (seller) 两种角色。

第三个原型是 party-place-thing,是扮演不同 role 的人(个人或组织)、地点或事物。 

第四个原型是 description,它是一种类似于目录条目的值对象,用以描述 party-place-thing 的具体数据。

并提供建模思路的 CoT 描述:

使用四色法建模时,步骤如下: 
首先需要寻找系统中的 moment-interval,并梳理与它前后关联的其他 moment-interval。比如,支付(payment)作为一个 moment-interval,可能存在前置的 moment-interval 对象订单(order)
然后寻找参与到 moment-interval 中的 role
之后再寻找可以扮演这些 role 的 party-place-thing
最后寻找 description 对象

然后,我们可以修改建模的任务模板:

用户故事
======
{story}

概念提取的方法
============
{modeling_method}

任务
===
请根据上面描述的业务场景,按照提取概念的方法,提取其中的业务概念。并给出每个概念的定义。并以表格形式给出Glossary,并标注对应的archtype

当然我们也可以使用其他的建模方法,比如催化剂方法(Catalysis)、实体目标法、事件风暴法(Event Storming)等等。
关键在于寻找到合适的中间产物,利用知识生成让 LLM 辅助提取核心概念。比如,对于事件风暴法,除了实体外,可能还需要提取事件等。但整体思路上,与我们所举的例子,并没有什么不同。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值