Merge pull request #840 from Hexastack/feat/add-doc-field-nlp-values

feat: add description attribute for nlu values
This commit is contained in:
Med Marrouchi
2025-03-24 10:19:24 +01:00
committed by GitHub
9 changed files with 54 additions and 9 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright © 2024 Hexastack. All rights reserved.
* Copyright © 2025 Hexastack. All rights reserved.
*
* Licensed under the GNU Affero General Public License v3.0 (AGPLv3) with the following additional terms:
* 1. The name "Hexabot" is a trademark of Hexastack. You may not use this name in derivative works without express written permission.
@@ -379,6 +379,7 @@ describe('NlpSampleController', () => {
expressions: [],
builtin: false,
entity: priceValueEntity!.id,
doc: '',
};
const textSample = {
text: 'How much does a BMW cost?',

View File

@@ -1,5 +1,5 @@
/*
* Copyright © 2024 Hexastack. All rights reserved.
* Copyright © 2025 Hexastack. All rights reserved.
*
* Licensed under the GNU Affero General Public License v3.0 (AGPLv3) with the following additional terms:
* 1. The name "Hexabot" is a trademark of Hexastack. You may not use this name in derivative works without express written permission.
@@ -157,6 +157,7 @@ describe('NlpValueController', () => {
expressions: ['synonym1', 'synonym2'],
metadata: { firstkey: 'firstvalue', secondKey: 1995 },
builtin: false,
doc: '',
};
const result = await nlpValueController.create(value);
expect(result).toEqualPayload(value);
@@ -223,6 +224,7 @@ describe('NlpValueController', () => {
value: 'updated',
expressions: [],
builtin: true,
doc: '',
};
const result = await nlpValueController.updateOne(
positiveValue!.id,
@@ -241,6 +243,7 @@ describe('NlpValueController', () => {
value: 'updated',
expressions: [],
builtin: true,
doc: '',
}),
).rejects.toThrow(getUpdateOneError(NlpValue.name, jhonNlpValue!.id));
});

View File

@@ -93,7 +93,9 @@ export class NlpValueController extends BaseController<
@Get('count')
async filterCount(
@Query(
new SearchFilterPipe<NlpValue>({ allowedFields: ['entity', 'value'] }),
new SearchFilterPipe<NlpValue>({
allowedFields: ['entity', 'value', 'doc'],
}),
)
filters?: TFilterQuery<NlpValue>,
) {
@@ -142,7 +144,7 @@ export class NlpValueController extends BaseController<
@Query(PopulatePipe) populate: string[],
@Query(
new SearchFilterPipe<NlpValue>({
allowedFields: ['entity', 'value'],
allowedFields: ['entity', 'value', 'doc'],
}),
)
filters: TFilterQuery<NlpValue>,

View File

@@ -1,5 +1,5 @@
/*
* Copyright © 2024 Hexastack. All rights reserved.
* Copyright © 2025 Hexastack. All rights reserved.
*
* Licensed under the GNU Affero General Public License v3.0 (AGPLv3) with the following additional terms:
* 1. The name "Hexabot" is a trademark of Hexastack. You may not use this name in derivative works without express written permission.
@@ -39,6 +39,11 @@ export class NlpValueCreateDto {
@IsObject()
metadata?: Record<string, any>;
@ApiPropertyOptional({ description: 'Nlp Value Description', type: String })
@IsString()
@IsOptional()
doc?: string;
@ApiPropertyOptional({ description: 'Nlp value is builtin', type: Boolean })
@IsOptional()
@IsBoolean()
@@ -77,6 +82,11 @@ export class NlpValueUpdateDto {
@IsObjectId({ message: 'Entity must be a valid ObjectId' })
entity?: string | null;
@ApiPropertyOptional({ description: 'Nlp Value Description', type: String })
@IsString()
@IsOptional()
doc?: string;
@ApiPropertyOptional({ description: 'Nlp value is builtin', type: Boolean })
@IsOptional()
@IsBoolean()

View File

@@ -1,5 +1,5 @@
/*
* Copyright © 2024 Hexastack. All rights reserved.
* Copyright © 2025 Hexastack. All rights reserved.
*
* Licensed under the GNU Affero General Public License v3.0 (AGPLv3) with the following additional terms:
* 1. The name "Hexabot" is a trademark of Hexastack. You may not use this name in derivative works without express written permission.
@@ -46,6 +46,12 @@ export class NlpValueStub extends BaseSchema {
@Prop({ type: JSON, default: {} })
metadata: Record<string, any>;
/**
* Description of the entity's value purpose.
*/
@Prop({ type: String, default: '' })
doc?: string;
/**
* Either or not this value a built-in (either fixtures or shipped along with the 3rd party ai).
*/

View File

@@ -1,5 +1,5 @@
/*
* Copyright © 2024 Hexastack. All rights reserved.
* Copyright © 2025 Hexastack. All rights reserved.
*
* Licensed under the GNU Affero General Public License v3.0 (AGPLv3) with the following additional terms:
* 1. The name "Hexabot" is a trademark of Hexastack. You may not use this name in derivative works without express written permission.
@@ -19,30 +19,35 @@ export const nlpValueFixtures: NlpValueCreateDto[] = [
value: 'positive',
expressions: [],
builtin: true,
doc: '',
},
{
entity: '0',
value: 'negative',
expressions: [],
builtin: true,
doc: '',
},
{
entity: '1',
value: 'jhon',
expressions: ['john', 'joohn', 'jhonny'],
builtin: true,
doc: '',
},
{
entity: '0',
value: 'greeting',
expressions: ['heello', 'Hello', 'hi', 'heyy'],
builtin: true,
doc: '',
},
{
entity: '0',
value: 'goodbye',
expressions: ['bye', 'bye bye'],
builtin: true,
doc: '',
},
];