HZERO PaaS平台-Docker版demo笔记(二)Docker版测试 问题16-20
问题十六、集成平台服务编排导入问题
在低代码POC演示租户导入集成平台服务编排的定义,界面显示导入校验成功&导入完成。
关闭后界面并未显示数据,查数据库:显示导入错误:普通租户用户只能操作本租户的数据,请检查数据所属租户。
打开导入的zip文件,看其中的租户编码:
先维护租户映射:
导入后,在导入历史中显示上传完成。
但在定义出还是看不到流程定义内容:
切换到平台租户,再次进行导入
先维护租户编码映射:
上传压缩文件,导入后点击“数据映射”
基础映射和资源映射都是空的:
看导入历史:服务注册和编排定义都是空的:
再切到低代码POC演示租户看编排定义也还是空的
查hzero-orchestration 服务日志,错误信息:
2026-01-18 04:13:44.747 ERROR 1 — [ XNIO-1 task-5] o.j.o.s.a.s.i.ImportZipDataServiceImpl : MCP Get Data Mapping Has Error
feign.codec.DecodeException: Error while extracting response for type [java.util.List<org.jipaas.orchestration.service.app.dto.ImportMappingDTO>] and content type [application/json;charset=UTF-8]
at feign.InvocationContext.decode(InvocationContext.java:125)
……
Caused by: org.springframework.web.client.RestClientException: Error while extracting response for type [java.util.List<org.jipaas.orchestration.service.app.dto.ImportMappingDTO>] and content type [application/json;charset=UTF-8]
at org.springframework.web.client.HttpMessageConverterExtractor.extractData(HttpMessageConverterExtractor.java:127)
……
Caused by: org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.util.ArrayList<org.jipaas.orchestration.service.app.dto.ImportMappingDTO>` from Object value (token `JsonToken.START_OBJECT`)
……
Caused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.ArrayList<org.jipaas.orchestration.service.app.dto.ImportMappingDTO>` from Object value (token `JsonToken.START_OBJECT`)
at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 1, column: 1]
元宝分析:
这个错误的关键在于客户端预期的数据结构与服务端实际返回的数据结构不一致。最稳妥的办法是首先确定服务端返回的确切JSON格式,然后相应地调整客户端的接收类型,是直接使用对象、使用包装类,还是需要自定义解析逻辑。
这个得找产研解决了。
后来跟王凡沟通了下,他说是在相同租户下,不是通过数据迁移导入,而是在服务编排定义界面导入:
先在平台租户,以平台管理员角色登录系统
在 工作台菜单/系统管理/租户管理/租户维护 ,创建一个相同的租户:HAND-DEV
然后切换到平台租户,租户管理员角色,
在 工作台菜单/系统管理/角色管理,创建新建的HAND-DEV租户的租户管理员角色,把菜单权限都分配给这个角色,并分配用户admin到这个角色;
然后再切换到新建的HAND-DEV租户,以租户管理员角色
进入菜单 服务编排/服务编排定义,右上角导入,导入完成后可以看到导入的服务编排:
问题十七、集成平台服务编排编辑流程报错
菜单 服务编排/服务编排定义,导入的16个服务编排流程中,有4个点[编辑]报错: 比如:
后台服务报错信息:
2026-01-18 07:24:48.173 ERROR 1 — [ XNIO-1 task-2] o.h.core.exception.BaseExceptionHandler : Unknown exception, Request: {URI=/v1/10/orch-definitions/=a2j0_i3_rTyvt0UxFM3Os-6o6vIQP2NfwyxjNyxF_Pw==}, User: CustomUserDetails{userId=2, username=admin, roleId=13, roleIds=[13], siteRoleIds=[], tenantRoleIds=[13], roleMergeFlag=false, secGrpIds=[], tenantId=10, tenantIds=[0, 10, 2], organizationId=0, isAdmin=true, clientId=null, timeZone=’GMT+8, language=’zh_CN, roleLabels='[], apiEncryptFlag=1}
java.lang.NullPointerException: Cannot invoke “com.fasterxml.jackson.databind.JsonNode.asText()” because the return value of “com.fasterxml.jackson.databind.JsonNode.get(java.lang.String)” is null
这个得找产研解决了。
问题十八、低代码平台AI生成页面问题
目前这个AI生成页面的功能,只在平台层开放。
进入平台租户,切换到低代码开放平台的工作台
点这个按钮,如果系统中缺少专门为低代码开发的Agent编排,则会报错:
在 平台菜单/AIGC中台/应用中心/企业应用库
打开低代码助手这个应用,可以看到里面用的Agent编排:
然后去Agent编排定义的地方看是缺少了【生成低代码业务对象和页面】这样的编排。
去trail环境,导出编排,然后在导入的时候报错:
提示是账户组合不存在,AZUREGPT4O2, 那我们先建立个账户组合:
建立账户组合之后再次导入:
这次导入成功了,但还是看不到,问了产研说是全局配置的地方,要把权限控制关掉,或者把当前角色加进去,简单起见,我们就先关掉。
然后再回到编排界面,就能看到了:
导入后都需要重新发布一下。
关乎编排用到的账户组合,我们在数据库中可以看到:
但是,在界面上没有明显的地方能看到 编排用的账户组合设置。有的时候前端报错,后台发服务只是提示模型请求失败,但没有明确的提示说那个模型账户请求失败,在监控的地方也找不到这这错误提示,需要自己清楚编排用到了哪些账户组合,去检查这些账户组合的模型的APIKey是否都已经配置好,并测试OK。 后来问AI平台的产研,了解到这个配置在编辑的时候是隐藏在三个小单点里面:
这个编排流程还是有点复杂的:
配置这个编排的权限,把平台管理员加上:
然后回到企业应用库,选择低代码AI助手 – 业务对象:
执行报错:
看aip-app服务日志:Caused by: org.hzero.aip.model.domain.exception.ModelRuntimeException: haip.error.model_request.failure
打开低代码AI助手应用,会一闪而过:
测试这个编排的时候界面也是一闪而过, 后台日志看不出啥错误,前端有错误,好像是json解析出错了:
看下服务器有无最新修订版:后端服务hzero-aip当前版本是1.6.1.ALPHA.4,制品库hzero-release目录下最新修订版是1.6.1.ALPHA.6.2 ,hzero-aip-app最新版本是1.6.1.ALPHA.6.3
前端当前版本是:1.6.1-alpha.4,制品库hzero-ui 目录下最新修订版是hzero-front-haip-1.6.1-alpha.6.tgz 也得升;
那就升级
后端hzero-aip 和hzero-aip-app两个服务的pom版本改到1.6.1.ALPHA.6.2 和 1.6.1.ALPHA.6.3
升级完毕,都成功了,重启服务
测试:升级后,AIGC生成低代码对象和页面的 Agent编排流程测试还是一闪而过了
在应用库打开 低代码AI助手 时依然白屏,问题依旧。
跟产研前端组沟通了下,检查了实际情况,发现前端还是1.6.1-alpha.4,没有成功升级到1.6.1-alpha.6,另外说要在package.json中加一条:hzero-front-haip-card
“hzero-front-haip”: “1.6.1-alpha.6”,
“hzero-front-haip-card”:”1.6.1-alpha.2.7″,
为啥上次没升成功呢? 想起来了,上级升级后忘记执行 apply_update_to_runtime_env.sh 部署了。
再次升级前端,这次主要就是把卡片加上。
$ yarn
$ yarn run build:ms hzero-front-haip-card
Done in 370.76s.
完成后执行部署:
$ bash apply_update_to_runtime_env.sh
再次测试,发现还是白屏,产研前端说看下WS的返回:
然后说,就是那个卡片问题 ,然后问后端是否升级到了最新版:
hzero-aip-server 1.6.1.ALPHA.6.4
hzero-aip-app 1.6.1.ALPHA.6.3
hzero-front-haip hzero-front-haip@1.6.1-alpha.6
我看了下我的后端,没有到这个版本,只是1.6.1.ALPHA.6.2
继续升级后端到产研前端同时说的版本,再测试:结果:
hzero-aip-server 启动失败了,out of memory了,
JVMDUMP010I Snap dump written to /d02/hzero-aipaas/project/ps-aip-server/target/Snap.20260126.123409.50072.0004.trc
JVMDUMP013I Processed dump event “systhrow”, detail “java/lang/OutOfMemoryError”.
这个服务内存分配了2G的,之前没有out 过,先不管,重新启动,重启成功。但是一会儿又出现out of memory了,把内存调整到2.5G,再重启:这次OK了,但是测试还是白屏.
而且发现 :hzero-aip-server 1.6.1.ALPHA.6.X 不稳定,有内存溢出问题 恢复到 1.6.1.ALPHA.4了。
低代码产研组有次解决了其他人碰到的类似问题,说是把卡片前端升级到 hzero-front-haip-card@1.7.0-alpha.1 可以解决,试一下:
修改package.json后
$yarn
Done in 17.94s
$yarn run build:ms hzero-front-haip-card
结果报了一堆错:
ERROR in ./node_modules/hzero-front-hlod/lib/routes/NewRenderEngine/RenderContainerComponents/RenderSteps/RenderSteps.js 16:0-27
Module not found: Error: Package path ./v4 is not exported from package /d02/hzero/front/front/node_modules/hzero-front-haip-card/node_modules/uuid (see exports field in /d02/hzero/front/front/node_modules/hzero-front-haip-card/node_modules/uuid/package.json)
前端组说需要回滚:
那还是在 package.json中改回:
“hzero-front-haip-card”:”1.6.1-alpha.2.7″,
然后再yarn ,yarn run build:ms
yarn run build:ms hzero-front-haip,hzero-front-haip-card
Done in 617.23s.
然后说我这个跟其他人工单问题不一样,1.6.1的后端服务对应的卡片就是1.6.1 对应的 就是 1.6.1-alpha.2.7,不能用那个1.7.0-alpha.1的,至于卡片出不来 可能需要试试编排对应关联的卡片 在卡片管理那是不是能预览, 对不对。
看监控:
把卡片输出的json发给产研前端看,认为有问题,输出内容有截断。
这个卡片有问题:
保存重新发布后,编排测试就不会白屏了:
Trail环境这个卡片是完整的,于是把低代码相关的8个卡片从trial环境导出,再导入。导入后内容是有了,不过显示有问题:
这个显示问题在trail环境没有问题,跟产研前端沟通了下,说是卡片依赖了飞搭的前端,要添加下依赖,发了个新版本hzero-front-haip-card@1.6.1-alpha.2.8,接下来把前端卡片升级到这个版本再看看:package.json 中卡片改到这个版本
$yarn
Done in 31.68s.
$yarn run build:ms hzero-front-haip-card
结果报错了,一堆错误指向依赖hzero-front-hlod相关的内容缺失,看起来是渲染卡片的飞搭前端程序依赖新版的飞搭前端了。
前端产研说先回滚,让飞搭前端团队验证了以后再说。
回滚:
那还是在 package.json中改回:
“hzero-front-haip-card”:”1.6.1-alpha.2.7″,
然后再yarn ,yarn run build:ms
yarn run build:ms hzero-front-haip,hzero-front-haip-card
Done in 593.84s.
回滚成功;
第二天前端产研说发了一个新的修订版,让试一下:
“hzero-front-haip”: “1.6.1-alpha.6.1”,
“hzero-front-haip-card”:”1.6.1-alpha.3″,
修改package.json后
$yarn
Done in 70.77s.
yarn run build:ms hzero-front-haip,hzero-front-haip-card
Done in 625.03s.
这次编译成功了。
完成后执行部署:
$ bash apply_update_to_runtime_env.sh
然后启动服务测试:
测试结果:卡片预览显示正常了,问题解决。
拷贝到Docker环境:
$ cp -r -Force \\wsl.localhost\Ubuntu-2204-hzero-openjdk\d02\hzero\front\dist \\wsl.localhost\Ubuntu-22.04\d01\hzero-dockers\volumes\nginx\
另外关于后端服务 ,产研组说1.6最新的修订版是hzero-aip-server 1.6.1.ALPHA.6.5,hzero-aip-app 1.6.1.ALPHA.6.4
先尝试下hzero-aip-server 1.6.1.ALPHA.6.5 ,看看还有没有内存溢出问题,有的话,把log发给姜洲。
实际测试下来,也是有内存问题的,log已经发给姜洲。
还是回滚到1.6.1.ALPHA.4
后来在docker环境发现,低代码AI助手编排测试正常后,去看低代码AI助手的应用,点全屏连接的时候依然白屏,但这个问题在非docker环境是不存在的,判断不是程序问题。后来尝试换卡片也不行,去掉该应用的一个Agent编排也不行,就判断应用本身有问题,于是新建一个一模一样的应用,发现就么有问题。所以后来就取消发布,记住该应用的编码,然后删除该应用,重新建一个相同的应用,编码也用原来的。 问题就解决了。在低代码里面调用也正常。
继续测试: 接下来把编排的模型换成豆包seed 1.8多模态模型,测试图片识别生成:
#从低代码工作台,调研问卷领域进入,进入AI生成页面:
开始新会话,然后上传手绘采购订单图片,发现流程报错:
进入Agent监控,打开执行流程日志:
有报错信息:
Caused by: org.springframework.web.client.HttpClientErrorException$BadRequest: 400 Bad Request on POST request for “https://ark.cn-beijing.volces.com/api/v3/chat/completions”: “{“error”:{“code”:”InvalidParameter”,”message”:”schema must be provided. Request id: 021770360514613b1540e0519088842060f281dec849b042fa5ea”,”param”:””,”type”:”BadRequest”}}”
后台服务aip-app服务日志,显示是:2026-02-06T14:48:39.414+08:00 WARN 63182 — [hzero-aip-app] [ model-38] o.h.a.m.d.s.GradientIntervalStrategy : CHAT@HAIP.DOUBAO_CHAT_COPY is silenced, release time is: 2026-02-06T14:50:34.956188440
说是模型账号被silenced了。
产研建议升级到:
hzero-aip-server 1.6.1.ALPHA.6.12
hzero-aip-app 1.6.1.ALPHA.6.10
新的版本已经默认关闭这个静默了。
hzero-aip-server 升级到1.6.1.ALPHA.6.12依然有内存溢出问题,回退到1.6.1.ALPHA.4;
过了一小时,产研给了最新修复版:1.6.1.ALPHA.6.12.1 经测试这个版本的内存溢出问题解决了。
hzero-aip-app 升级到1.6.1.ALPHA.6.10 没有问题,可以用,继续功能测试,发现在原来那个Agent编排的节点依然卡住,不过这次aip-app服务后台的报错信息不一样了:
Caused by: java.lang.NullPointerException: Cannot invoke “java.lang.String.hashCode()” because “<local2>” is null
at org.hzero.aip.model.domain.vo.Parameter.toJsonSchema(Parameter.java:36) ~[hzero-aip-common-1.6.1.ALPHA.6.8.jar!/:1.6.1.ALPHA.6.8]
at java.base/java.util.Optional.map(Optional.java:260) ~[na:na]
这个问题的原因是:模型不支持json schema,需要在模型对接配置的地方关掉这个选项,但检查模型对接发现默认是关闭的,也没有开:
产研在检查是否代码实现逻辑跟配置没有同步。
过了一会,产研修复了问题,升级到:
hzero-aip-server 1.6.1.ALPHA.6.13
hzero-aip-app 1.6.1.ALPHA.6.12
升级后再测试,发现那个节点还是没有能过去。
Hzero-aip-app服务的日志,显示错误:
com.fasterxml.jackson.databind.exc.InvalidTypeIdException: Could not resolve subtype of [simple type, class org.hzero.aip.common.jsonschema.JsonSchema]: missing type id property ‘type’ (for POJO property ‘properties’)
at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 1, column: 155] (through reference chain: org.hzero.aip.common.jsonschema.ObjectSchema[“properties”]->java.util.LinkedHashMap[“platform”])
at com.fasterxml.jackson.databind.exc.InvalidTypeIdException.from(InvalidTypeIdException.java:43) ~[jackson-databind-2.18.1.jar!/:2.18.1]
产研说查下本地maven库,是不是没拉到最新的:
本地maven库最新的版本信息如下:看起来是最新的:
\root\.m2\repository\org\hzero\hzero-aip-server\1.6.1.ALPHA.6.13
\root\.m2\repository\org\hzero\hzero-aip-app\1.6.1.ALPHA.6.12
不过产研说\hzero-aip-app\1.6.1.ALPHA.6.12 这个覆盖过,要在本地库删除掉,重新拉。
删除重新拉后再运行测试:还是同样错误,产研让升级到1.6.1.ALPHA.6.13 试试。
升级到6.13还是错误,设置为debug模式,打详细日志给产研,产研具体分析日志后暂时看不出问题,尝试用自定义模式新建了豆包1.8 seed多模态的账户:
单测这个账户OK,然后添加到现有组合。继续测试,这次又往下走了几步:
2026-02-11T05:31:21.973Z ERROR 1 — [hzero-aip-app] [async-execute-3] o.h.a.a.f.s.impl.FlowExecuteServiceImpl : [Flow Executor] [0bb282fed69c4bae8f6a5a1b9ca74012] Failed on node AIGC 生成低代码业务对象和页面/LOWCODE.BUSINESS_OBJECT_PAGE/CHAT_2025031411431417419237947530: class org.hzero.aip.agent.flow.execute.executor.impl.chat.ChatNodeHandler
feign.RetryableException: Read timed out executing POST http://hzero-file/v1/0/files/byte?bucketName=haip&directory=interaction&fileName=06dded21e9414302b4d4a59a220042b5%40%E6%89%8B%E7%BB%98%E9%87%87%E8%B4%AD%E8%AE%A2%E5%8D%95.jpg
at feign.FeignException.errorExecuting(FeignException.java:300) ~[feign-core-13.5.jar!/:na]
at feign.SynchronousMethodHandler.executeAndDecode(SynchronousMethodHandler.java:132) ~[hzero-starter-feign-replay-1.12.0.RELEASE.jar!/:na]
这次错误是:feign调用hzero-file服务读取文件是time out了,重启hzero-file服务再试:
有问题,看文件管理界面汇总查询也在打圈圈,看起来是minio服务出问题了,重启minio服务,重启后文件服务正常了,再测试编排流程:结果还是文件服务read timeOut了,查文件服务的日志,out of Memory了:
2026-02-09T20:10:34.012+08:00 ERROR 108664 — [hzero-file] [ XNIO-1 I/O-4] org.xnio.listener : XNIO001007: A channel event listener threw an exception
java.lang.OutOfMemoryError: Java heap space
at java.base/java.nio.ByteBuffer.allocateDirect(ByteBuffer.java:332) ~[na:na]
at io.undertow.server.DefaultByteBufferPool.allocate(DefaultByteBufferPool.java:149) ~[undertow-core-2.3.18.Final.jar!/:2.3.18.Final]
at io.undertow.server.protocol.http.HttpReadListener.handleEventWithNoRunningRequest(HttpReadListener.java:149) ~[undertow-core-2.3.18.Final.jar!/:2.3.18.Final]
at io.undertow.server.protocol.http.HttpReadListener.handleEvent(HttpReadListener.java:136) ~[undertow-core-2.3.18.Final.jar!/:2.3.18.Final]
想来大概是我不断重试文件操作,把内存给用爆了。加大内存重启HZERO-file服务,这次文件read timeout的问题没有了,但是这个节点还是过不去,问题出在aip-app服务,不过这个服务日志看不出问题:
io.choerodon.core.exception.CommonException: 程序出现错误,请联系管理员
at org.hzero.core.util.ResponseUtils.lambda$static$1(ResponseUtils.java:54) ~[hzero-starter-core-1.12.1.RELEASE.jar!/:1.12.1.RELEASE]
继续看aip-server日志:发现是文档的文件太长了:
### SQL: INSERT INTO hdoc_document (creation_date, created_by, last_update_date, last_updated_by, object_version_number, document_uuid, document_name, public_flag, tenant_id, delete_flag) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
### Cause: com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Data too long for column ‘document_name’ at row 1
; Data truncation: Data too long for column ‘document_name’ at row 1
at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.doTranslate(SQLStateSQLExceptionTranslator.java:118) ~[spring-jdbc-6.2.1.jar!/:6.2.1]
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107) ~[spring-jdbc-6.2.1.jar!/:6.2.1]
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:116) ~[spring-jdbc-6.2.1.jar!/:6.2.1]
看起来这个varchar2(120)长度不够用?把字段长度改成240,再测试:还是错误,重启aip-server服务,再测试:还是同样错误,看起来不是改字段长度能解决的(
在后来的测试中,发现单纯改这一个地方不够,还需要修改hdoc_document_tl 表的 document_name ,hdoc_document_version version_name
hdoc_document_version_tl version_name 这三个字段长度都要改成240,就可以解决文档名长度不够的错误
),那就改测试数据,把图片文件名7f96cbebc8d64775a9b7143af26b1493@手绘采购订单.jpg 改短:手绘采购订单.jpg 再测试:这次这个节点终于过去了。
这个图片识别的节点,还可能会出现错误:Read timed out executing POST http://hzero-file/v1/0/files/byte?bucketName=haip&directory=interaction&fileName=06dded21e9414302b4d4a59a220042b5%40%E6%89%8B%E7%BB%98%E9%87%87%E8%B4%AD%E8%AE%A2%E5%8D%95.jpg
初看以为是hzero-file服务的错误,但原来这个节点对模型为空,配置这个节点对话模型为多模态模型后,这个read time Out问题就过去了,因为确实在hzero-file服务日志中也没有其他错误。但hzero-aip服务的日志中提示这个read time Out的错误具备误导性。
新的错误出现在这个节点:
这个错误是aip-app的日志,
io.choerodon.core.exception.CommonException: 程序出现错误,请联系管理员
at org.hzero.core.util.ResponseUtils.lambda$static$1(ResponseUtils.java:54) ~[hzero-starter-core-1.12.1.RELEASE.jar!/:1.12.1.RELEASE]
at org.hzero.core.util.ResponseUtils.getResponse(ResponseUtils.java:230) ~[hzero-starter-core-1.12.1.RELEASE.jar!/:1.12.1.RELEASE]
at org.hzero.core.util.ResponseUtils.getResponse(ResponseUtils.java:86) ~[hzero-starter-core-1.12.1.RELEASE.jar!/:1.12.1.RELEASE]
at org.hzero.aip.agent.flow.execute.executor.impl.chat.ChatNodeHandler.createPersonalDocuments(ChatNodeHandler.java:1385) ~[hzero-aip-app-1.6.1.ALPHA.6.13.jar!/:1.6.1.ALPHA.6.13]
但是没有明确的错误信息,而且在aip-server中也没有出现错误。不知道是啥原因了:
产研看了下,应该是前面调用飞搭内部API创建对象时报的错,应该到hzero-modeler服务的日志中去找原因。在hzero-modeler服务日志中可以看到错误信息:
2026-02-09T20:53:05.545+08:00 ERROR 21206 — [hzero-modeler] [ XNIO-1 task-6] o.h.core.exception.BaseExceptionHandler : Unknown exception, Request: {URI=/v1/0/business-objects/domain/simple-generator}, User: CustomUserDetails{userId=2, username=admin, roleId=1, roleIds=[1, 2, 9], siteRoleIds=[1, 9], tenantRoleIds=[2], roleMergeFlag=false, secGrpIds=[], tenantId=0, tenantIds=[2, 0], organizationId=0, isAdmin=true, clientId=null, timeZone=’GMT+9, language=’zh_CN, roleLabels='[MODEL_PLATFORM_ADMIN, LOWCODE_PLATFORM_ADMIN], apiEncryptFlag=1}
org.springframework.dao.DataIntegrityViolationException:
### Error updating database. Cause: java.sql.SQLIntegrityConstraintViolationException: Column ‘field_type’ cannot be null
### The error may exist in org/hzero/modeler/business/infra/mapper/BusinessObjectFieldMapper.java (best guess)
### The error may involve org.hzero.modeler.business.infra.mapper.BusinessObjectFieldMapper.updateOptional-Inline
### The error occurred while setting parameters
### SQL: UPDATE hmde_bo_field SET last_update_date = ?, last_updated_by = ?, object_version_number = object_version_number + 1, bo_field_name = ?, remark = ?, required_flag = ?, default_value_type = ?, default_value = ?, max_length = ?, component_type = ?, formula = ?, country_code = ?, max_value = ?, min_value = ?, digital_accuracy = ?, master_bo_id = ?, master_field_code = ?, master_field_name = ?, master_option_type = ?, master_option_code = ?, master_opt_display_field_code = ?, master_required_flag = ?, cascade_del_strategy = ?, ref_bo_field_code = ?, ref_bo_associate_code = ?, lov_code = ?, attribute_json = ?, link_relation_type = ?, exportable_flag = ?, rule_code = ?, sequence_isolation_level = ?, multi_language_flag = ?, bo_option_code = ?, option_type = ?, option_display_field_code = ?, default_display_field_flag = ?, storage_encrypt_flag = ?, field_behavior = ?, use_type = ?, storage_code = ?, storage_bucket_name = ?, storage_directory = ?, attachment_delete_flag = ?, parent_id = ?, field_type = ?, child_field_category_code = ?, custom_field_code = ? WHERE bo_field_id = ? AND OBJECT_VERSION_NUMBER = ?
### Cause: java.sql.SQLIntegrityConstraintViolationException: Column ‘field_type’ cannot be null
; Column ‘field_type’ cannot be null
at org.springframework.jdbc.support.SQLExceptionSubclassTranslator.doTranslate(SQLExceptionSubclassTranslator.java:97) ~[spring-jdbc-6.2.1.jar!/:6.2.1]
看起来往 hmde_bo_field 表插入数据时,field_type有空字段导致的。估计可能是有个字段加工过程出问题了。
第二天,重启了服务,然后查看所选低代码领域”调研问卷”中的业务对象,存在之前创建过的采购订单头和行,考虑到之前测试时,对业务对象的处理方式在卡片中选择的是新建,而不是更新,这个应该也不符合测试要求。于是把这两个业务对象删除之后再测试,这次测试成功了:成功创建了采购订单的业务对象和页面。
在Ageng运行监控处显示“成功”
查看执行详情,可以看到流程都顺利执行了:
还有一次碰到一个问题:
问题卡在节点:批量创建对象。
然后因为之前单独运行过AI生成对象的流程编排,已经创建过物理表,我就把物理表删除了,但即使把物理表删除了,去单独发布AI生成的对象也会报错:
原因是:这个物理对象在飞答元数据中有记录,解决这个问题,需要同步表物理模型:这个同步的作用是会查看实际物理表,如果不存在会把对应的元数据删除掉,这样就不会产生误判了。
另外就是删除未发布的业务对象,并不会同步删除对应的表物理模型,如果要一起删除掉表物理模型,需要在系统界面“表物理模型”的地方去删,这样会把元数据记录和实际的物理表一起删除:
总结下修正内容:
1、解决这个问题的前提是已经解决问题二十,多模态识别问题。
2、hzero-aip-server 和hzero-aip-app 都升级到1.6.1.ALPHA.6.13
3、hzero-aip-app 的启动类注释掉@EnableWebFlux 注解,application.yml更改配置:支持100M的payload
4、在hzero-gateway的application.yml中调整timeout配置,原来是2秒,调整到20秒依然有问题,调整到200秒就没问题了。
5、新建自定义账户,模型类型=对话-vllm, 账户编码=JACK-TALK-DOUBAO-SEED-1.8-3, 账户名称=Jack对话-豆包-seed-1.8-3,Model=doubao-seed-1-8-251228
开放API地址=https://ark.cn-beijing.volces.com/api/v3/chat/completions
支持多模态=Y,支持非流式=Y,支持json_object=Y ,是否支持函数调用=Y,图片传输方式:BASE64,最大上下文token数=80000,最大响应token数=8000
认证类型=自定义健值认证,健值位置=请求头参数,健=Authorization,自定义的配置=Bearer+空格+火山引擎大模型APIKey
默认参数:KV模式,参数名称=thinking,参数值={“type”:”disabled”}
6、把账户Jack对话-豆包-seed-1.8-3 添加到账户组合:Jack-talk-multmodel (组合名称:Jack对话-多模态)
7、把Jack-talk-multmodel配置给Agent编排中分类为飞搭的三个编排。
8、AI平台全局配置的切片配置处,图片识别模型配置为这个多模态模型(这里不配置会让HKMS服务报错)
9、hzero-file文件服务的max内存调整到800M
#更新Docker环境 (待执行):
- hzero-gateway、hzero-aip-app 和hzero-aip-server重新打镜像包
cp \\wsl.localhost\Ubuntu-2204-hzero-openjdk\d02\hzero\project\ps-gateway\target\ps-gateway.jar \\wsl.localhost\Ubuntu-22.04\d01\hzero-dockers\hzero-gateway-docker\
cp \\wsl.localhost\Ubuntu-2204-hzero-openjdk\d02\hzero-aipaas\project\ps-aip-app\target\ps-aip-app.jar \\wsl.localhost\Ubuntu-22.04\d01\hzero-dockers\hzero-aipapp-docker\
cp \\wsl.localhost\Ubuntu-2204-hzero-openjdk\d02\hzero\project\ps-license\licenseAgent\license-agent112a.jar \\wsl.localhost\Ubuntu-22.04\d01\hzero-dockers\hzero-aipapp-docker\
cp \\wsl.localhost\Ubuntu-2204-hzero-openjdk\d02\hzero-aipaas\project\ps-aip-server\target\ps-aip-server.jar \\wsl.localhost\Ubuntu-22.04\d01\hzero-dockers\hzero-aipserver-docker\
cp \\wsl.localhost\Ubuntu-2204-hzero-openjdk\d02\hzero\project\ps-license\licenseAgent\license-agent112a.jar \\wsl.localhost\Ubuntu-22.04\d01\hzero-dockers\hzero-aipserver-docker\
cd /d01/openJ9-0.53-dockers
bash load-dockers.sh
$ cd /d01/hzero-dockers/hzero-gateway-docker
$ docker build -t hzero-gateway-jk-demo:1.12 .
$ cd /d01/hzero-dockers/hzero-aipapp-docker
$ docker build -t hzero-aip-app-jk-demo:1.12 .
$ cd /d01/hzero-dockers/hzero-aipserver-docker
$ docker build -t hzero-aip-server-jk-demo:1.12 .
- hzero-file 更改docker-compose.yml文件,更改启动服务的max内存到800M
- 启动服务,执行总结中的5、6、7、8
测试:功能完成:
问题十九、Agent应用的权限问题
现象,Agent应用发布后,拷贝应用连接中的全屏连接,在另一个浏览器tab页打开,发现错误:
hzero-app-server的application.yml 中,设置
org.apache.ibatis: ${LOG_LEVEL:DEBUG}
后台服务日志出现加解密错误:
io.choerodon.core.exception.CommonException: error.key-encrypt.decrypt.error
元宝说可能是版本不一致导致的,考虑到之前hzero-aip-app升级的了1.6.1.ALPHA.6,但我hzero-aip 服务已经降到1.6.1.ALPHA.4, 所以这次把hzero-aip-app也降低到1.6.1.ALPHA.4再试:发现还是一样的加解密错误:
找了产研,产研把这个Agent应用取消发布后再重新发布就正常了,开源代码好像是缓存问题。取到缓存就OK了,取不到就报错。
以后再碰到类似问题,就取消发布再重新发布,生成缓存。
这个问题解决后,到低代码平台,试用AI生成业务对象的功能,可以正常使用了:
拷贝前端文件到docker环境:
cp -r -Force \\wsl.localhost\Ubuntu-2204-hzero-openjdk\d02\hzero\front\dist \\wsl.localhost\Ubuntu-22.04\d01\hzero-dockers\volumes\nginx\
问题二十、问答应用中 多模态模型图片识别问题:
配置了豆包Seed1.8多模态模型,问答的时候,上传图片,结果报错:调用HKMS执行文件切片时发生错误:Failed: Either`image_explainer or `ocr adapter must be provided
这是个多模态模型,按理不需要OCR,这里提示OCR,产研说是模型配置的时候没有打开多模态属性,需要打开这个属性,另外图片格式,因为是本地服务器,外网无法访问到文件服务器,所以要设置成Base64格式。
另外就是全局配置的切片配置处要配置图片识别模型为这个多模态模型:
更改之后,上述错误就没有了,但提示 :网络错误:
http://hzero-aip-app:8088/v1/open/chat/kms 无法访问。
查HKMS服务的日志,显示是调用
http://hzero-aip-app:8088/v1/open/chat/kms报错
:
2026-02-03 09:41:06 [44][MainThread] [ERROR] (api.py:68) Exception when call HZERO API at url ‘http://hzero-aip-app:8088/v1/open/chat/kms’: error.network – 网络异常,请稍后重试
Traceback (most recent call last):
在hzero-hkms容器内,curl命令访问
http://hzero-aip-app:8088/v1/open/chat/kms可以连通。说明连接到hzero-aip-app:8088的网络没有问题。
看aip-app服务的日志,有报错是payload容量超载了:
2026-02-03T17:08:06.049+08:00 ERROR 73158 — [hzero-aip-app] [or-http-epoll-6] o.h.a.i.handler.RequestExceptionHandler : Unknown exception for request: StrictFirewallHttpRequest [delegate=org.springframework.http.server.reactive.ReactorServerHttpRequest@e996c636] org.springframework.web.server.PayloadTooLargeException: 413 PAYLOAD_TOO_LARGE
产研说尝试更改 hzero-aip-app服务的application.yml配置:
# 等待连接池分配连接的最大时长(毫秒)
connection-timeout: ${SPRING_DATASOURCE_CONNECTION_TIMEOUT:30000}
server:
max-http-request-size: 100MB # 全局最大请求体大小
codec:
max-in-memory-size: ${SPRING_CODEC_MAX_IN_MEMORY_SIZE:100MB}
spring.cloud.gateway:
httpclient:
max-in-memory-size: 100MB
server:
max-http-request-size: 100MB
更改后依然有问题,然后尝试更小的图片文件,之后几十K(原来那个有问题的图片有2M,依然不行),小图片会显示网关TimeOut问题,不过后台依然继续运行了,所以是可以测试出效果了:
至于网关TimeOut的问题,在hzero-gateway的application.yml中原来是2秒,调整到20秒依然有问题,调整到200秒就没问题了,进一步研究发现,这个模型带思考模式,思考比较花时间,但看说明是可以关掉思考的,这样可以节省9秒。
在模型配置的地方加个参数就好了:
豆包说图片转BASE64大约会增加30%的大小,所以对于一个2.5M的图片,转BASE64后大小约3M,按照我们上面的设置大小应该够了,至于还提示超限错误,估计还是有参数没有设置对,问元宝,给出的建议是调整hzero-aip-app服务的application.yml中如下两个参数:
# application.yml 配置
spring:
codec:
max-in-memory-size: 10MB
webflux:
max-in-memory-size: 10MB
改了之后重启服务,问题依旧,不过元宝提到如果使用了nginx反向代理,也要调整配置,按建议修改:
# aigc.hzero.com.cn 专用服务器
server {
listen 80;
server_name aigc.hzero.com.cn;
# 设置此server块的默认客户端请求体最大大小为20MB
client_max_body_size 100M;
location / {
# 改为后端服务实际IP:端口
proxy_pass http://127.0.0.1:8088; # 示例:假设后端在本机8088
# 添加WebSocket支持
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Host $host; # 保留一个Host配置
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_buffering off; # 按需开启/关闭(实时交互场景建议关闭)
# 可选:调整代理超时设置,应对大文件上传耗时
proxy_connect_timeout 60s;
proxy_send_timeout 60s;
proxy_read_timeout 120s;
}
}
重启nginx服务,问题依旧。不能超过256K;
后来的实验证明:这个问题跟Nginx配置没关系,实际不需要更改Nginx配置,一样是可以正常运行的。
后来继续跟踪这个问题,产研说,要把hzero-aip-app服务启动类里面的@EnableWebFlux 注解去掉,说 app 服务不要加这个注解,加了这个注解会覆盖掉一些自己的配置,导致配置不生效。
#去掉这个注解,然后重新build,经过测试,可以了,一个2.5M图片可以成功上传并解析:
又测试了一张5.8M大小的图片,上传并解析返回时间大约为35秒:
但直接在豆包中上传文件并返回总结的时间是秒级的,这里面差距主要在什么环节呢?
关于作者:
| 昵称:Jack.shang 档案信息:jack.shang 程序员->项目经理->技术总监->项目总监->部门总监->事业部总经理->子公司总经理->集团产品运营支持 联系方式:你可以通过syfvb@hotmail.com联系作者 点击查看Jack.shang发表过的所有文章... 本文永久链接: http://blog.retailsolution.cn/archives/5562 |
对本文的评价:
