Fx.AI

Fx.AI:处理AI相关的API

1. detectPic 图片识别

Fx.AI.detectPic(<String modelId>, <String path>)

参数说明

参数 类型 说明
modelId String 物体识别模型唯一ID
path String 图片路径

返回值类型

APIResult

返回值说明

返回的数据类型: Map(返回图片识别的产品数据) 返回值例: {"path":"N_202006_09_87e2be5f5c364bda9cb5ed61a21ddd25","objectList":[{"apiName":"ProductObj","dataId":"5d3bbf1e7cfed965a54daf70","position":{"x":532.0,"y":756.0,"w":78.0,"h":146.0},"score":"0.9921149611473083","color":"C91F25"},{"apiName":"ProductObj","dataId":"5d3bbf1e7cfed965a54daf72","position":{"x":220.0,"y":761.0,"w":86.0,"h":72.0},"score":"0.9953563809394836","color":"3DD4C4"},{"apiName":"ProductObj","dataId":"5d3bbf1e7cfed965a54daf72","position":{"x":327.0,"y":840.0,"w":82.0,"h":62.0},"score":"0.9940695762634277","color":"3DD4C4"},{"apiName":"ProductObj","dataId":"5d3bbe347cfed965a54dacb7","position":{"x":475.0,"y":942.0,"w":81.0,"h":77.0},"score":"0.9963515996932983","color":"3F3F98"}]}

Java举例

APIResult ret = Fx.AI.detectPic("5dabce96e75d9594e1dc05f6", "N_202006_09_87e2be5f5c364bda9cb5ed61a21ddd25");

Groovy举例

def ret = Fx.AI.detectPic("5dabce96e75d9594e1dc05f6", "N_202006_09_87e2be5f5c364bda9cb5ed61a21ddd25")

注意事项

  • 企业有模型才可以使用

2. invoiceValidation 发票验真

Fx.AI.invoiceValidation(<InvoiceData invoice>)

参数说明

参数 类型 说明
invoice InvoiceData 详见以下说明

返回值类型

APIResult

返回值说明

返回的数据类型: 需要验证的发票信息,包括: 发票类型 ; 发票代码; 发票号码; 发票日期; 发票金额; 发票校验码后6位; 支持的发票类型 增值税专用发票:special_vat_invoice 增值税电子专用发票:elec_special_vat_invoice 增值税普通发票:normal_invoice 增值税普通发票(电子):elec_normal_invoice 增值税普通发票(卷式):roll_normal_invoice 通行费增值税电子普通发票:toll_elec_normal_invoice 货运运输业增值税专用发票:special_freight_transport_invoice 机动车销售发票:motor_vehicle_invoice 二手车销售发票:used_vehicle_invoice

Java举例

InvoiceData invoice = InvoiceData.builder()
     .type("elec_normal_invoice")
     .code("011002100511")
     .number("24830566")
     .date("20210620")
     .amount("339.62")
     .checkCode("957725")
     .build();

APIResult ret = Fx.AI.invoiceValidation(invoice);
if (ret.isError()) {
     log.info(ret.message());
} else {
     log.info("success!");
}

Groovy举例

InvoiceData invoice = InvoiceData.builder()
     .type("elec_normal_invoice")
     .code("011002100511")
     .number("24830566")
     .date("20210620")
     .amount("339.62")
     .checkCode("957725")
     .build()

def(Boolean error, Object data, String errorMessage) = Fx.AI.invoiceValidation(invoice)
if (error) {
     log.info(errorMessage)
} else {
     log.info("success!")
}

(1).参考InvoiceData


3. queryOcrTypes 获取ocr支持的识别类型

Fx.AI.queryOcrTypes()

返回值类型

APIResult

返回值说明

返回的数据类型: List

Java举例

APIResult ret = Fx.AI.queryOcrTypes();
if (ret.isError()) {
    log.info(ret.message());
} else {
    log.info(ret.getData());
}

4. ocrImages ocr识别

Fx.AI.ocrImages(<String ocrType>, <List paths>)

参数说明

参数 类型 说明
ocrType String ocr类型,BankCard: "银行卡识别", IdCard: "身份证识别", Invoice: "通用机打发票识别", Accurate: "通用识别类型(高精度)", Passport: "护照识别", VatInvoice: "增值税发票识别", TrainTicket: "火车票票据", TaxiReceipt: "出租车票据识别", HouseHoldRegister: "户口本识别"
paths List 图片nPath列表

返回值类型

APIResult

返回值说明

返回的数据类型: Map,识别结果

Java举例

APIResult ret = Fx.AI.ocrImages("Accurate", Lists.newArrayList("N_202107_29_96131698ed29473bb1d7baac7909eac1.jpg"));
if (ret.isError()) {
    log.info(ret.message());
} else {
    log.info(ret.getData());
}

5. chatCompletions 调用大模型chatCompletions接口

Fx.AI.chatCompletions(<Map innerArg>)

参数说明

参数 类型 说明
innerArg Map 大模型调用参数

返回值类型

APIResult

返回值说明

Map

Groovy举例

//model: 大模型model现在接入的有
//文心一言:ERNIE-Bot,ERNIE-Bot4.0
//科大讯飞:generalv2, generalv3
//阿里通义千问:qwen-turbo, qwen-plus
//腾讯混元大模型: hunyuan-pro,hunyuan-standard
//字节豆包:ep-20240618123932-5zk5j(Doubao-pro-4k),ep-20240618123950-llzrs(Doubao-pro-32k)
//
//messages:和模型对话的消息有,List类型 role, content两个字段
//- role:角色
//system 系统设定的上下文
//assistant  大模型返回的内容
//user 用户发出的内容
//- content: 具体内容文本
//
//temperature:temperature是一个控制模型预测可信度的值,当降低temperature时,模型预测的结果更加准确和确定,但可能缺乏创意;当提高temperature时,会得到更多种类的补全结果,但也会出现不太准确或创意不足的情况,范围0-1

Map request = [
  "model": "ERNIE-Bot",
  "messages": [
    [
      "role": "user",
      "content": "你好,文心一言,可以给我生成一份100字左右的检讨吗"
    ]
  ],
  "temperature": 0.7
]

def(boolean error, Map data, String message) = Fx.AI.chatCompletions(request)
if (error) {
  log.info("error: " + message)
} else {
  log.info(data)
}

6. completionsByPrompt 通过提示模板调用大模型生成接口

Fx.AI.completionsByPrompt(<String apiName>, <Map objectData>, <String bingObjectDataId>, <List otherObjectData>, <Map sceneVariables>)

参数说明

参数 类型 说明
apiName String 必填,提示模板apiName
objectData Map 非必填,绑定主对象数据完整信息
bingObjectDataId String 非必填,绑定主对象数据id和objectData两个参数二选一,两个都不为空时,objectData优先
otherObjectData List 非必填,提示模板中用到的其他对象字段
sceneVariables Map 非必填,用户自定义场景变量

返回值类型

APIResult

返回值说明

Map

Groovy举例

// 提示模板apiName
String promptApiName = 'prompt_GrQPP__c'
// 绑定主对象数据完整信息
Map objectData = [
  "name": "客户数据123",
  "object_describe_api_name": "AccountObj"
]
// 绑定主对象数据id,和objectData两个参数二选一,两个都不为空时,objectData优先
String bingObjectDataId = "63b6b583b6b41e00018ae21d"
// 提示模板中用到的其他对象数据,objectApinName对象apiName,dataId是数据id
List otherObjectData = [
  [
    "objectApinName": "LeadsObj",
    "dataId": "62a9b7c16d5aad00017bff4f"
  ],
  [
    "objectApinName": "SalesOrderObj",
    "dataId": "62a9b7c16d5aad00017bff4f"
  ]
]
// 提示模板自定义场景变量,key要和提示模板那边对应上
Map sceneVariables = [
  "content": "你好",
  "targetLanguage": "英语"
]

def(boolean error, Map data, String message) = Fx.AI.completionsByPrompt(promptApiName, objectData, bingObjectDataId, otherObjectData, sceneVariables)
if (error) {
  log.info("error: " + message)
} else {
  log.info(data)
}

7. perdictWinRate 调用预测生成器模型

Fx.AI.perdictWinRate(<String modelApiName>, <String id>)

参数说明

参数 类型 说明
modelApiName String 模型apiName
id String 数据id

返回值类型

APIResult

返回值说明

Map

Groovy举例

def(Boolean error, Map data, String message) = Fx.AI.perdictWinRate("Model_2FKh6__c","668400438b0e7b0001adaf9a")
if (error) {
   log.info("error:" + message)
} else {
   log.info(data)
}

参考类 com.fxiaoke.functions.model.InvoiceData

字段说明

参数 类型 说明
code String 发票代码
number String 发票号码
type String 发票类型
checkCode String 发票校验码(后6位),非必填
date String 发票日期:
amount String 发票金额(不含税)
2024-09-15
1 1
Baidu
map