mirror of
https://github.com/hexastack/hexabot
synced 2025-05-05 13:24:37 +00:00
Merge pull request #840 from Hexastack/feat/add-doc-field-nlp-values
feat: add description attribute for nlu values
This commit is contained in:
commit
13cf35b828
@ -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?',
|
||||
|
@ -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));
|
||||
});
|
||||
|
@ -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>,
|
||||
|
@ -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()
|
||||
|
@ -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).
|
||||
*/
|
||||
|
7
api/src/utils/test/fixtures/nlpvalue.ts
vendored
7
api/src/utils/test/fixtures/nlpvalue.ts
vendored
@ -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: '',
|
||||
},
|
||||
];
|
||||
|
||||
|
@ -55,7 +55,7 @@ export const NlpValues = ({ entityId }: { entityId: string }) => {
|
||||
const canHaveSynonyms = nlpEntity?.lookups?.[0] === NlpLookups.keywords;
|
||||
const { onSearch, searchPayload } = useSearch<INlpValue>({
|
||||
$eq: [{ entity: entityId }],
|
||||
$iLike: ["value"],
|
||||
$or: ["doc", "value"]
|
||||
});
|
||||
const { dataGridProps } = useFind(
|
||||
{ entity: EntityType.NLP_VALUE },
|
||||
@ -125,6 +125,14 @@ export const NlpValues = ({ entityId }: { entityId: string }) => {
|
||||
disableColumnMenu: true,
|
||||
renderHeader,
|
||||
},
|
||||
{
|
||||
flex: 3,
|
||||
field: "doc",
|
||||
headerName: t("label.doc"),
|
||||
sortable: true,
|
||||
disableColumnMenu: true,
|
||||
renderHeader,
|
||||
},
|
||||
...(shouldIncludeSynonyms ? [synonymsColumn] : []),
|
||||
{
|
||||
maxWidth: 140,
|
||||
|
@ -61,6 +61,7 @@ export const NlpValueForm: FC<
|
||||
>({
|
||||
defaultValues: {
|
||||
value: data?.value || "",
|
||||
doc: data?.doc || "",
|
||||
expressions: data?.expressions || [],
|
||||
},
|
||||
});
|
||||
@ -84,6 +85,7 @@ export const NlpValueForm: FC<
|
||||
reset({
|
||||
value: data.value,
|
||||
expressions: data.expressions,
|
||||
doc: data.doc,
|
||||
});
|
||||
} else {
|
||||
reset();
|
||||
@ -102,6 +104,13 @@ export const NlpValueForm: FC<
|
||||
{...register("value", validationRules.value)}
|
||||
/>
|
||||
</ContentItem>
|
||||
<ContentItem>
|
||||
<Input
|
||||
label={t("label.doc")}
|
||||
{...register("doc")}
|
||||
multiline={true}
|
||||
/>
|
||||
</ContentItem>
|
||||
|
||||
{canHaveSynonyms ? (
|
||||
<ContentItem>
|
||||
|
@ -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.
|
||||
@ -15,6 +15,7 @@ export interface INlpValueAttributes {
|
||||
entity: string;
|
||||
foreign_id?: string;
|
||||
value: string;
|
||||
doc?: string;
|
||||
expressions?: string[];
|
||||
metadata?: Record<string, any>;
|
||||
builtin?: boolean;
|
||||
|
Loading…
Reference in New Issue
Block a user