Skip to content

Commit a920823

Browse files
committed
RDBC-926 Refactor AI agent operations: replace manual null/empty checks with StringUtil.isNullOrEmpty, update schema validation condition for clarity.
1 parent 5bc9ddd commit a920823

File tree

4 files changed

+15
-13
lines changed

4 files changed

+15
-13
lines changed

src/Documents/Operations/AI/Agents/AddOrUpdateAiAgentOperation.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import { RaftIdGenerator } from "../../../../Utility/RaftIdGenerator.js";
1111
import { throwError } from "../../../../Exceptions/index.js";
1212
import { HeadersBuilder } from "../../../../Utility/HttpUtil.js";
1313

14-
function hasNoSampleObjectOrSchema(configuration: AiAgentConfiguration) {
14+
function hasNoSampleObjectAndSchema(configuration: AiAgentConfiguration) {
1515
return (!configuration.outputSchema || configuration.outputSchema.trim() === "")
1616
&& (!configuration.sampleObject || configuration.sampleObject.trim() === "");
1717
}
@@ -20,17 +20,17 @@ export class AddOrUpdateAiAgentOperation implements IMaintenanceOperation<AiAgen
2020
private readonly _configuration: AiAgentConfiguration;
2121
private readonly _sampleObject?: unknown;
2222

23-
public constructor(configuration: AiAgentConfiguration, schemaType?: any) {
23+
public constructor(configuration: AiAgentConfiguration, sampleObject?: any) {
2424
if (!configuration) {
2525
throwError("InvalidArgumentException", "configuration cannot be null or undefined.");
2626
}
2727

28-
if (!configuration.outputSchema && !configuration.sampleObject && !schemaType) {
28+
if (!configuration.outputSchema && !configuration.sampleObject && !sampleObject) {
2929
throwError("InvalidArgumentException", "Please provide a non-empty value for either outputSchema or sampleObject.");
3030
}
3131
this._configuration = configuration;
32-
if (schemaType) {
33-
this._sampleObject = schemaType;
32+
if (sampleObject) {
33+
this._sampleObject = sampleObject;
3434
}
3535
}
3636

@@ -51,7 +51,7 @@ class AddOrUpdateAiAgentCommand extends RavenCommand<AiAgentConfigurationResult>
5151

5252
public constructor(configuration: AiAgentConfiguration, sampleSchema: any, conventions: DocumentConventions) {
5353
super();
54-
if (hasNoSampleObjectOrSchema(configuration)) {
54+
if (hasNoSampleObjectAndSchema(configuration)) {
5555
throwError("InvalidArgumentException", "Please provide a non-empty value for either outputSchema or sampleObject.");
5656
}
5757
this._configuration = configuration;

src/Documents/Operations/AI/Agents/RunConversationOperation.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import { HttpRequestParameters } from "../../../../Primitives/Http.js";
1212
import { throwError } from "../../../../Exceptions/index.js";
1313
import { JsonSerializer } from "../../../../Mapping/Json/Serializer.js";
1414
import { ObjectUtil } from "../../../../Utility/ObjectUtil.js";
15+
import { StringUtil } from "../../../../Utility/StringUtil.js";
1516

1617
export class RunConversationOperation<TAnswer> implements IMaintenanceOperation<ConversationResult<TAnswer>> {
1718
private readonly _agentId: string;
@@ -29,10 +30,10 @@ export class RunConversationOperation<TAnswer> implements IMaintenanceOperation<
2930
options?: AiConversationCreationOptions,
3031
changeVector?: string
3132
) {
32-
if (!agentId) {
33+
if (StringUtil.isNullOrEmpty(agentId)) {
3334
throwError("InvalidArgumentException", "agentId cannot be null or empty.");
3435
}
35-
if (!conversationId) {
36+
if (StringUtil.isNullOrEmpty(conversationId)) {
3637
throwError("InvalidArgumentException", "conversationId cannot be null or empty.");
3738
}
3839
this._agentId = agentId;

src/Documents/Operations/AI/AiConversation.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import type { ConversationResult } from "./Agents/ConversationResult.js";
66
import type { AiAnswer } from "./AiAnswer.js";
77
import type { IDocumentStore } from "../../IDocumentStore.js";
88
import { throwError } from "../../../Exceptions/index.js";
9+
import { StringUtil } from "../../../Utility/StringUtil.js";
910

1011
export enum AiHandleErrorStrategy {
1112
SendErrorsToModel = "SendErrorsToModel",
@@ -27,9 +28,9 @@ export class AiConversation {
2728

2829
public constructor(store: IDocumentStore, databaseName: string, agentId: string, conversationId: string, options?: AiConversationCreationOptions, changeVector?: string) {
2930
if (!store) throwError("InvalidArgumentException", "store is required");
30-
if (!databaseName) throwError("InvalidArgumentException", "databaseName is required");
31-
if (!agentId) throwError("InvalidArgumentException", "agentId is required");
32-
if (!conversationId) throwError("InvalidArgumentException", "conversationId is required");
31+
if (StringUtil.isNullOrEmpty(databaseName)) throwError("InvalidArgumentException", "databaseName is required");
32+
if (StringUtil.isNullOrEmpty(agentId)) throwError("InvalidArgumentException", "agentId is required");
33+
if (StringUtil.isNullOrEmpty(conversationId)) throwError("InvalidArgumentException", "conversationId is required");
3334

3435
this._store = store;
3536
this._databaseName = databaseName;

src/Documents/Operations/AI/AiOperations.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,9 @@ export class AiOperations {
3737
*/
3838
public async createAgent<TSchema>(
3939
configuration: AiAgentConfiguration,
40-
schemaType?: TSchema
40+
sampleObject?: TSchema
4141
): Promise<AiAgentConfigurationResult> {
42-
const operation = new AddOrUpdateAiAgentOperation(configuration, schemaType);
42+
const operation = new AddOrUpdateAiAgentOperation(configuration, sampleObject);
4343
return await this._executor.send(operation);
4444
}
4545

0 commit comments

Comments
 (0)