函数目标

  • 在与大模型自然语言交流中,可通过调用外部工具来回答问题; 将自然语言转换为 API 调用参数或查询数据库的条件;提取文本中的结构化数据
  • 自动通过函数增加业务系统的实时数据,让大模型更懂业务。

业务场景描述

  • 通过自然语言告诉大模型:帮我创建一个用户,姓名叫张三,密码:1234565 手机号:13888888888
  • 那么大模型自动通过函数回调业务系统的接口,创建一个用户。

开发自己的函数

PIG AI 提供了一个接口,可以让大模型帮助用户自动匹配自己的业务标签,用户自然语言 → 业务系统标签

@Component
@RequiredArgsConstructor
public class TagFunctionCalling implements FunctionCalling<TagRequest, R> {

    @Override
    public String functionName() {
        return "tagFunctionCalling";
    }

    /**
     * 判断大模型返回的参数是否正确
     */
    @Override
    public R checkParams(TagRequest tagRequest, PigxUser userDetails, ChatMessageDTO.ExtDetails extDetails) {
        return R.ok();
    }

    /**
     * 业务处理逻辑
     */
    @Override
    public R<String> handle(TagRequest tagRequest, PigxUser userDetails, ChatMessageDTO.ExtDetails extDetails) {
        // 根据大模型返回的标签列表,执行自己的业务逻辑
        
        // 返回给大模型一段话,让大模型返回给用户
        return R.ok("获取成功");
    }

}

@Data
@EqualsAndHashCode(callSuper = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonClassDescription("标签信息")
class TagRequest extends BaseAiRequest {
    @JsonProperty(required = true, value = "tagList")
    @JsonPropertyDescription("标签列表")
    private List<String> tagList;
}

配置流程

设置提示词文件

提示词配置界面

前端测试

前端测试效果