Microsoft LUIS:无法为datetimeV2实体设置时区(datetimeReference)

问题描述 投票:1回答:1

我正在使用V3 API从LUIS端点获取预测,并且我需要一种方法来告知LUIS我的时区,以便解析相对时间表达式(例如,“过去两个小时内”,“十分钟内”)由datetimeV2实体正确处理。

如果我将V2 API与timezoneOffset选项一起使用,一切都将正常工作,但是我无法使V3 API与新的datetimeReference选项一起使用(应该替换为timezoneOffset)。实际上,我什至无法弄清楚应该为datetimeReference设置哪个值(一个整数?一个datetime?)。

这是我尝试使用Python的尝试。谁能告诉我有什么问题吗?

from datetime import datetime
import requests

appId           = # my app id
subscriptionKey = # my subscription key

query = "tra 10 minuti" # = "in 10 minutes" (my app speaks Italian)

# ATTEMPT 1
# based on https://docs.microsoft.com/en-us/azure/cognitive-services/luis/luis-concept-data-alteration?tabs=V2#change-time-zone-of-prebuilt-datetimev2-entity,
# assuming it works the same way as timezoneOffset
endpoint = 'https://westeurope.api.cognitive.microsoft.com/luis/prediction/v3.0/apps/{appId}/slots/staging/predict?datetimeReference=120&subscription-key={subscriptionKey}&query={query}'
endpoint = endpoint.format(appId = appId, subscriptionKey = subscriptionKey, query = query)

response = requests.get(endpoint)

# ATTEMPT 2
# according to https://docs.microsoft.com/en-us/azure/cognitive-services/luis/luis-migration-api-v3
endpoint = 'https://westeurope.api.cognitive.microsoft.com/luis/prediction/v3.0/apps/{appId}/slots/staging/predict?'
endpoint = endpoint.format(appId = appId)

json = {
    "query" : query,
    "options":{
        "datetimeReference": datetime.now().strftime("%Y-%m-%dT%H:%M:%S"), # e.g. "2020-05-07T13:54:33". Not clear if that's what it wants
        "preferExternalEntities": True
    },
    "externalEntities":[],
    "dynamicLists":[]
}

response = requests.post(endpoint, json, headers = {'Ocp-Apim-Subscription-Key' : subscriptionKey})

更新:在ATTEMPT 2中发送请求的正确方法是

response = requests.post(endpoint, json = json, headers = {'Ocp-Apim-Subscription-Key' : subscriptionKey})
python azure chatbot luis luis.ai
1个回答
0
投票

您已经发现,您的JSON应该放在json参数中,而不是data参数中:

response = requests.post(endpoint, json = json, headers = {'Ocp-Apim-Subscription-Key' : subscriptionKey})
© www.soinside.com 2019 - 2024. All rights reserved.