纷享销客开发者手册 纷享销客开发者手册
  • APL开发手册
  • PWC开发手册
  • OpenAPI 文档
APL代码介绍
API Reference
开发工具
更新日志
  • 简体中文
  • English
APL代码介绍
API Reference
开发工具
更新日志
  • 简体中文
  • English
  • 入门

  • APL函数开放场景

  • APL类开放场景

    • 公共库

    • 电子签

    • 认证提供商

    • 可用业务类型

    • 对象Controller插件

    • 事件监听

    • 对象导出插件

    • ERP集成平台

    • 外勤类型函数校验

    • 快消订货业务插件

    • 对象业务处理器

    • 在线文档

    • 自定义模型

      • 1.概述
      • 2.配置步骤
      • 3.Groovy代码示例
      • 4.常见问题
    • 环境部署

Groovy代码示例


/**
 * AI自定义模型
 * @type classes
 * @namespace ai_custom_model
 * @returntype
 */
class CustomModelManageImpl implements CustomModelManage {

    //此参数为模型的apiKey
    String apiKey = "Bearer xxxx-be91-4adb-8acc-xxxxxx"
    //此参数为模型的Url
    String url = "https://xxx.xxx.com/api/v3/chat/completions"
    //此参数为模型的型号
    String model = "chat-4"

    ChatCompletion.Result chatCompletion(ChatCompletion.Arg arg) {
        //此参数代表总消息列表
        def messageList = arg.getMessages() as List
        //此参数为消息内容
        String content = arg.getMessages().get(0).getContent()
        //此参数为消息角色
        String user = arg.getMessages().get(0).getRole()

        // 构建消息体
        def messages = []
        messageList.each { message ->
            messages << [
                    "content": message['content'],
                    "role"   : message['role']
            ]
        }

        Map bodyMap = [
                "messages": messages,
                "model"   : model,
                "stream"  : false
        ]
        log.info(bodyMap)
        StringBody body = StringBody.builder().content(bodyMap).build()
        Request request = Request.builder()
                .method("POST")
                .url(url)
                .timeout(7000)
                .retryCount(0)
                .header("Content-Type", "application/json")
                .header("Authorization", apiKey)
                .body(body)
                .build()

        //此处为模型调用,请替换成您的模型调用逻辑
        def (Boolean error, HttpResult ret, String message) = Fx.http.execute(request)

        //打印您的模型出参
        log.info(ret)

        //拼装返回纷享设置的参数结果
        ChatCompletion.Result newResult = convertResult(ret)

        //返回结果
        return newResult
    }

    //此方法为自定义模型输出结果后,使用纷享统一封装的结果返回
    private ChatCompletion.Result convertResult(HttpResult result) {
        log.info(result)
        ChatCompletion.Result res = new ChatCompletion.Result()
        if (result.statusCode != 200) {
            return res
        }

        //拿到result.content["choices"]的第一个元素的message字段
        def choices = result.content["choices"] as List
        def content = choices[0]["message"]["content"] as String

        ChatCompletion.Choice newChoice = new ChatCompletion.Choice()
        //finish_reason, 模型推理终止的原因
        newChoice.setFinish_reason("")

        ChatCompletion.Message newMessage = new ChatCompletion.Message()
        newMessage.setRole("user")
        newMessage.setContent(content)
        newChoice.setMessage(newMessage)

        ChatCompletion.Choice[] newChoices = [newChoice] as ChatCompletion.Choice[]
        res.setChoices(newChoices)
        return res
    }

    //debug 时候的入口方法
    static void main(String[] args) {

    }

}
2.配置步骤
4.常见问题

← 2.配置步骤 4.常见问题→

  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式