When fetching an intent from Dialogflow using APIv1, there is a property for userSays that is not define in documentation https://dialogflow.com/docs/reference/agent/intents
Its name is isAuto like in this example :
"userSays": [
{
"id": "c768cb68-a946-4573-b404-2bffeef8d162",
"data": [
{
"text": "How much"
}
],
"isTemplate": false,
"count": 0,
"updated": 1519026688,
"isAuto": false
What is its purpose ? Is it linked to MachineLearning like intent's auto
property ?
isAuto is used to indicate if the annotation of a entity was created by Dialogflow or a developer. A false value indicates the annotation was created by the developer and a true value indicates that the annotation was created by Dialogflow.
In Dialogflow v2 this field name has been changed to a userDefined boolean. If the userDefined boolean has a value of true it means the annotation was created by the developer and if it is false it means the annotation was created by Dialogflow.
Related
I've introduced a new DAC and a new field on the Sales Order associated to the new DAC key. When trying to retrieve the information through OpenAPI it comes back empty. I'd like to know why and how I can adjust my code to return the information. I've tried both PXSelect and PXSelectReadOnly
Declaring Statement on SOOrderEntry(extension):
public PXSelect<IOCSCompanyBrand, Where<IOCSCompanyBrand.companyBrandNbr,
Equal<Current<SOOrderExt.usrCompanyBrand>>>> CompanyBranding;
When I hit the URL: http://localhost/Acumatica21/entity/AcumaticaExtended21R1/20.200.001/SalesOrder?$select=OrderNbr,CompanyBranding,OrderType,CompanyBrand&$expand=CompanyBranding&$filter=OrderNbr%20eq%20'SO-030003'
This is the data that is returned:
[
{
"id": "f827cb43-9b8a-ec11-a481-747827c044c8",
"rowNumber": 1,
"note": {
"value": ""
},
"CompanyBrand": {
"value": "IO"
},
"CompanyBranding": null,
"OrderNbr": {
"value": "SO-030003"
},
"OrderType": {
"value": "SO"
},
"custom": {}
}
]
Acumatica Version: 21.205.0063
Here's the definition for SalesOrder in the endpoint (which was populated via the GUI)
I ended up opening a Acumatica Developer case and here is their response.
Hi Kyle,
Thanks for your time yesterday.
Endpoint mapping is valid but the fields in the view isn't fetch due the limitation of the filter parameter in the request. Filter parameter optimizes the data that are being fetch. In the case, the customer view isn't fetched. To workaround the limitation, instead of using filter, you can try something like below,
http://localhost/Acumatica/entity/AcumaticaExtended21R1/20.200.001/SalesOrder/SO/SO-030007?$expand=CompanyBranding
You can fetch the record and use expand to get the detail level fields. This way you can avoid the limitation of the filter.
Please check and let me know if you have any questions.
Regards,
Vignesh
Does anyone know how I check what slot I am processing if I do some validation at the slot level? As I have looked at the event payload and there seems to be no reference to the slot you are calling your Lambda function on.
At present the Lex event passed to Lambda functions does not contain any hint as to which slot is presently being ellicted.
However, looking at the slots array in the event, you can determine when to validate based on the current value.
Values that have not yet been elicited are null; whereas values that have been ascertained from the user have a non-null value.
You can validate the non-nulls and assuming you handle the scenarios correctly you should be fine. By that I mean if the value fails validation you will need to issue an ElicitSlot prompt for the same slot; potentially with a useful error message. If the value passes validation you can issue a Delegate response and allow Lex to continue processing accordingly.
Below is a sample event received by my Lambda function for a V2 Lex bot:
"intent": {
"slots": {
"duration": null,
"reason": null,
"quantity": {
"shape": "Scalar",
"value": {
"originalValue": "2",
"resolvedValues": [
"2"
],
"interpretedValue": "2"
}
}
},
"confirmationState": "None",
"name": "MainIntent",
"state": "InProgress"
},
In my example, MainIntent has three slots but only one has a value. My Lambda function will validate the non-nulls and then delegate to Lex for the rest of the processing.
I have a web activity to call a REST API and save it output into a table. But one of its value will not available always. So we need to do a conditional checking while setting its output into a variable activity.
you can see how we have done that in the variable activity.
This is the rest APIs output.
{
"value": {
"id": "464a115fd3cb",
"runId": "464a115fd3cb",
"parameters": {},
"invokedBy": {
"id": "99448303872CU28",
"name": "TRIGGER_TIMESHEET_API",
"invokedByType": "ScheduleTrigger"
},
"isLatest": true
},
"continuationToken": "+RID:~sj5QALRCCB4w5hYAAAAADQ",
"ADFWebActivityResponseHeaders": {
"Pragma": "no-cache"
}
}
Here "continuationToken" will not be a part of all the API responses. So if this value is available in the API response, we need to set that in the variable activity.
In the attached screenshot, you can see that we are setting the variable. But if that key is not available in the API response, it will throw an error.
So we are looking for a solution to check whether that key is existing in the JSON output.
Any help appreciated.
I think you almost get your goal already,please use Set Variable Activity and If-Condition Activity:
Set Variable Activity:
If-Condition Activity to judge the name is empty or not:
Then you could configure the True Activity and False Activity:
I want to know why Jhipster v5 does not like TextBlob fields validations and what is the substitute (for TextBlob, if we should use other) now?
entity Comment {
creationDate Instant required
commentText TextBlob minbytes(3) maxbytes(5000) required
isOffensive Boolean
}
Hibernate JPA 2 Metamodel does not work with Bean Validation 2 for LOB fields, so LOB validation is disabled
WARNING! Cannot use validation in .jhipster/Comment.json for field {
"fieldName": "commentText",
"fieldType": "byte[]",
"fieldTypeBlobContent": "text",
"fieldValidateRules": [
"minbytes",
"maxbytes",
"required"
],
"fieldValidateRulesMinbytes": 3,
"fieldValidateRulesMaxbytes": 5000
}
This worked fine in version 4.13.
I have setup my application to consume the content deliver API using the contentful SDK, its all hunky dory untill now when i realized the fieldType for each field in the content model is missing in the API response.
Am i missing something? I am providing more details about the API and its response below -
API response
The issue is if i dont know the the field type, i would have to ask the content writers to stick to a specific template and order of the fields instead of rendering the fields dynamically as you parse the response.
Please help!
You do not get the field types in the response, but you do get the content type id. It is expected that you already know what type of fields a specific content type contains.
The content type id can be found in the sys.contentType.sys.id property of each entry. With this information you could select which template to render.
If you still need to dynamically decide how to render based on the type of a field you would have to resort to the typeof operator to check what the type of each field is. You would lose out on the possibility to differentiate between specific Contentful properties though as they would all be returned as object.
You could also call the content type endpoint to fetch the entire content model from the Contentful API. http://cdn.contentful.com/spaces/space-id/content_types/
This would give you a the field each content type contains and the type of each field in the following structure:
{
"sys": {
// sys properties
},
"displayField": "productName",
"name": "Product",
"description": null,
"fields": [
{
"id": "productName",
"name": "Product name",
"type": "Text",
"localized": true,
"required": true,
"disabled": false,
"omitted": false
},
{
"id": "slug",
"name": "Slug",
"type": "Symbol",
"localized": false,
"required": false,
"disabled": false,
"omitted": false
},
// further fields
]
}
It would result in multiple API calls to get the information you want though.