框架开发
欢迎来到 Astrsomn 框架开发指南!本章节将帮助你了解如何扩展和定制框架。
开发概览
Astrsomn 采用 SPI(Service Provider Interface) 机制实现插件扩展,支持以下三类扩展:
| 扩展类型 | 核心接口 | 说明 |
|---|---|---|
| 模型供应商 | ModelProviderHandler | 接入新的大模型平台(Chat / Streaming / Embedding) |
| 向量库 | VecDriver → VecSource → VecStore | 接入新的向量数据库 |
| MCP 协议 | McpProtocolHandler | 扩展 MCP 传输协议(SSE / STDIO / 自定义) |
扩展机制
框架通过 Java SPI 自动发现和加载插件:
- 定义接口 — 实现框架提供的扩展接口
- 注册 SPI — 在
META-INF/services/中注册实现类 - 创建扩展描述符 — 继承
AstroExtensionDescriptor提供插件元数据 - 打包部署 — 打包为独立 JAR,放入
plugins/目录即可自动加载
目录结构
框架开发
├── 概述(本页)
├── 模型供应商开发
│ ├── 开发指南 ← 实现 ModelProviderHandler
│ ├── 接口规范 ← 详细 API 文档
│ └── 开发示例 ← 完整代码示例
├── 向量库开发
│ ├── 开发指南 ← 实现 VecDriver / VecSource / VecStore
│ ├── 接口规范 ← 详细 API 文档
│ └── 开发示例 ← 完整代码示例
└── MCP 开发
├── 开发指南 ← 实现 McpProtocolHandler
├── 接口规范 ← 详细 API 文档
└── 开发示例 ← 完整代码示例开发环境
bash
# 克隆项目
git clone https://github.com/Astrsomn/Astrsomn.git
cd Astrsomn
# 编译项目(跳过测试)
mvn clean compile -DskipTests
# 运行测试
mvn test
# 打包单个模块
mvn clean package -pl astrsomn-plugins/astrsomn-providers/astrsomn-provider-deepseek -am -DskipTests关键接口速查
模型供应商
| 接口 | 包路径 |
|---|---|
ModelProviderHandler | com.astrsomn.api.runtime.common.langchain.extension.model |
AbstractModelProviderHandler | com.astrsomn.api.runtime.common.langchain.extension.model |
向量库
| 接口 | 包路径 |
|---|---|
VecDriver | com.astrsomn.api.runtime.common.langchain.extension.vector |
AbstractVecDriver | com.astrsomn.api.runtime.common.langchain.extension.vector |
VecSource | com.astrsomn.api.runtime.common.langchain.extension.vector |
VecStore | com.astrsomn.api.runtime.common.langchain.extension.vector |
MCP 协议
| 接口 | 包路径 |
|---|---|
McpProtocolHandler | com.astrsomn.starter.runtime.langchain.tool.mcp.protocol |
扩展元数据
| 接口 | 包路径 |
|---|---|
AstroExtensionDescriptor | com.astrsomn.starter.system |