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 | 发票金额(不含税) |