AI rule node: add force ack configuration option to rule node

This commit is contained in:
Dmytro Skarzhynets 2025-07-10 15:29:49 +03:00
parent 5abbe9ec02
commit eb52e7c767
No known key found for this signature in database
GPG Key ID: 2B51652F224037DF
3 changed files with 4 additions and 1 deletions

View File

@ -98,6 +98,7 @@ public final class TbAiNode extends TbAbstractExternalNode implements TbNode {
userPrompt = config.getUserPrompt();
timeoutSeconds = config.getTimeoutSeconds();
modelId = config.getModelId();
super.forceAck = config.isForceAck() || super.forceAck; // force ack if node config says so, or if env variable (super.forceAck) says so
Optional<AiModel> model = ctx.getAiModelService().findAiModelByTenantIdAndId(ctx.getTenantId(), modelId);
if (model.isEmpty()) {

View File

@ -50,6 +50,8 @@ public class TbAiNodeConfiguration implements NodeConfiguration<TbAiNodeConfigur
@Max(value = 600, message = "cannot exceed 600 seconds (10 minutes)")
private int timeoutSeconds;
private boolean forceAck;
@Override
public TbAiNodeConfiguration defaultConfiguration() {
var configuration = new TbAiNodeConfiguration();

View File

@ -22,7 +22,7 @@ import org.thingsboard.server.common.msg.TbMsg;
public abstract class TbAbstractExternalNode implements TbNode {
private boolean forceAck;
protected boolean forceAck;
public void init(TbContext ctx) {
this.forceAck = ctx.isExternalNodeForceAck();