一、介绍
下面开始构建大模型的对接流程。目前打算按照 alibaba 的方式对各个模型进行对接。
详细描述可以参考 Spring AI Alibaba 概述-阿里云Spring AI Alibaba官网官网
对接的模型如下所示:
设计上会考虑使用策略模式加工厂模式进行设计。
通过前端传入的模型编码进行不通类型模型的构建。此处后续还会不断进行优化。并且这些都是通过cursor 进行生成的。这样看cursor 是不是还是很强。
二、类图
下面是其中部分的类图介绍。这个类图也是cursor 生成的,极大程度上节省了开发人员的时间。但是对开发人员的要求更高了。比如类图中的关联、泛化(继承)、依赖、实现、聚合、组合都是什么?此处也不用急后面博主也会做一些简要描述。
画出这个图主要是为了大家能够更好的理解代码的设计。后面也会将MCP 的server 注册到 大模型中。但是这个是后面的步骤。此处先做提醒。
三、代码介绍
代码的话可以看gitee ai-mcp-register: 关于MCP 注册中心,以及业务的探索项目中的链接。此处不做过多介绍。都沾上也没啥大的意义。看也不好看。
四、知识扩展
1. 关联(Association)
- 定义:表示两个类之间的结构关系,通常表现为一个类持有另一个类的实例(成员变量)。
- 语义:可以是双向或单向的,体现长期存在的引用。
- UML表示:实线,可带箭头表示方向(双向无箭头,单向有箭头)。
- 示例:
-
学生
与课程
:学生选课,课程关联多个学生(双向关联,带多重性1..*
)。教师
类中持有课程
的引用(单向关联)。
2. 泛化(Generalization,继承)
- 定义:表示类之间的继承关系,子类继承父类的属性和方法。
- 语义:
is-a
关系,如“狗是动物”。 - UML表示:带空心三角箭头的实线,箭头指向父类。
- 示例:
-
Dog
继承自Animal
。
3. 依赖(Dependency)
- 定义:一个类的定义临时依赖于另一个类(如方法参数、返回值或局部变量)。
- 语义:临时性、非持久的关系。
- UML表示:虚线箭头,箭头指向被依赖的类。
- 示例:
-
Report
类的方法中使用Database
连接生成报告,但未长期持有该连接。
4. 实现(Realization)
- 定义:类实现接口或抽象类的契约。
- 语义:
implements
关系。 - UML表示:带空心三角箭头的虚线,箭头指向接口。
- 示例:
-
ArrayList
类实现List
接口。
5. 聚合(Aggregation)
- 定义:整体与部分的关系,部分可独立存在。
- 语义:
has-a
关系,生命周期不依赖整体。 - UML表示:空心菱形箭头指向整体,实线连接部分。
- 示例:
-
学校
包含多个学生
,学校解散后学生仍存在。
6. 组合(Composition)
- 定义:更强的整体-部分关系,部分的生命周期依赖于整体。
- 语义:部分无法独立存在,整体负责创建和销毁部分。
- UML表示:实心菱形箭头指向整体,实线连接部分。
- 示例:
-
Window
包含多个Frame
,窗口关闭时框架随之销毁。
记忆技巧
- 组合 > 聚合 > 关联:组合是“生死与共”,聚合是“整体可拆”,关联是“普通关联”。
- 箭头方向:依赖和关联箭头指向被依赖/被关联的类;泛化和实现箭头指向父类或接口。
- 生命周期:组合的部分随整体销毁,聚合的部分独立存在。
五、沟通群
大家可以加我微信,或者大家对那块感兴趣。博主都可以去探索一下发布到项目中。
如果群加不上可以加我微信。