Browse Source
AI rule node: ensure AI settings exist on rule node init
pull/13371/head
Dmytro Skarzhynets
1 year ago
No known key found for this signature in database
GPG Key ID: 2B51652F224037DF
1 changed files with
8 additions and
0 deletions
-
rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/ai/TbAiNode.java
|
|
|
@ -95,6 +95,10 @@ public final class TbAiNode extends TbAbstractExternalNode implements TbNode { |
|
|
|
); |
|
|
|
|
|
|
|
timeoutSeconds = config.getTimeoutSeconds(); |
|
|
|
|
|
|
|
if (!aiSettingsExist(ctx, config.getAiSettingsId())) { |
|
|
|
throw new TbNodeException("[" + ctx.getTenantId() + "] AI settings with ID: " + config.getAiSettingsId() + " were not found", true); |
|
|
|
} |
|
|
|
aiSettingsId = config.getAiSettingsId(); |
|
|
|
} |
|
|
|
|
|
|
|
@ -105,6 +109,10 @@ public final class TbAiNode extends TbAbstractExternalNode implements TbNode { |
|
|
|
return responseFormatType == ResponseFormatType.JSON && jsonSchema != null ? Langchain4jJsonSchemaAdapter.fromJsonNode(jsonSchema) : null; |
|
|
|
} |
|
|
|
|
|
|
|
private static boolean aiSettingsExist(TbContext ctx, AiSettingsId aiSettingsId) { |
|
|
|
return ctx.getAiSettingsService().findAiSettingsByTenantIdAndId(ctx.getTenantId(), aiSettingsId).isPresent(); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void onMsg(TbContext ctx, TbMsg msg) throws TbNodeException { |
|
|
|
var ackedMsg = ackIfNeeded(ctx, msg); |
|
|
|
|