chat - 工具的描述(或提示语)
工具的描述(提示语),是为了让 llm 更好的理解而设定,相当于提示语。分为三部分:
- 工具描述(让 llm 理解工具的功能,作什么用)
- 输入架构描述(让 llm 理解参数是意思,作什么用)
- 支持基础类型和数据实体类型,作为参数
- 输出架构描述(目前是由 mcp 定义的)
- 支持基础类型和数据实体类型,作为反回类型(不能为空)
1、示例
import org.noear.solon.annotation.Param;
import org.noear.solon.ai.annotation.ToolMapping;
import org.noear.solon.ai.mcp.server.annotation.McpServerEndpoint;
public class UserInfo {
@Param(description = "用户名")
private String name;
@Param(description = "年龄")
private Integer age;
@Param(description = "性别。0表示女,1表示男")
private Integer gender;
}
public class OrderInfo {
@Param(description = "订单Id")
private String id;
@Param(description = "金额")
private float amount;
}
public class Tools {
@ToolMapping(description = "获取用户信息")
public UserInfo getUserInfo(@Param(description = "用户ID") Long userId) {
return userService.getUser(userId);
}
@ToolMapping(description = "提交订单信息")
public String postOrder(@Param(description = "用户ID") Long userId, @Param(description = "订单") OrderInfo order) {
return "OK";
}
}
本例中
描述示例 | 说明 |
---|---|
@ToolMapping(description = "获取用户信息") | 加在方法上,是工具的描述 |
@Param(description = "用户ID") | 加在方法参数上,是工具参数的描述(即输入架构) |
@Param(description = "用户名") | 加在返回结果的字段上,是工具输出的描述(即输出架构) |