无法在Watson Assistant wrokspace上额外/列出所有事件日志

时间:2019-01-16 14:53:38

标签: ibm-watson watson-conversation watson-dialog

请帮助我尝试致电Watson Assistant端点 https://gateway.watsonplatform.net/assistant/api/v1/workspaces/myworkspace/logs?version=2018-09-20获取所有事件列表

并使用此参数按日期范围过滤

var param =
{ workspace_id: '{myworkspace}',
page_limit: 100000,
filter: 'response_timestamp%3C2018-17-12,response_timestamp%3E2019-01-01'}

显然我在下面收到了空的答复。

{
"logs": [],
"pagination": {}
} 

2 个答案:

答案 0 :(得分:1)

要检查的事物。

1。您有2018-17-12,它是一个公制日期。这表示为“ 2018年17月12日”。

2。假设日期应该是一个有效的日期,您的搜索将显示“ 2018年12月17日之前和2019年1月1日之后的文档”。不会返回任何文件。

3。仅当您通过API调用message()方法时才生成日志。因此,请检查工具中的日志记录页面,以查看是否还有日志。

4。如果您有精简版帐户,则日志仅存储7天,然后删除。要保留更长的日志,您需要升级到标准帐户。

尽管与您的问题没有直接关系,但是请注意page_limit具有硬编码上限(IIRC 200-300?)。因此,您可能要索取100,000条记录,但不会给您。


这是示例Python代码(不受支持),它正在使用分页读取日志:

from watson_developer_cloud import AssistantV1

username = '...'
password = '...'
workspace_id = '....'
url = '...'
version = '2018-09-20'

c = AssistantV1(url=url, version=version, username=username, password=password)

totalpages = 999
pagelimit = 200
logs = []
page_count = 1
cursor = None
count = 0

x = { 'pagination': 'DUMMY' }
while x['pagination']:
    if page_count > totalpages: 
        break

    print('Reading page {}. '.format(page_count), end='')
    x = c.list_logs(workspace_id=workspace_id,cursor=cursor,page_limit=pagelimit)
    if x is None: break

    print('Status: {}'.format(x.get_status_code()))
    x = x.get_result()

    logs.append(x['logs'])
    count = count + len(x['logs'])

    page_count = page_count + 1

    if 'pagination' in x and 'next_url' in x['pagination']:
        p = x['pagination']['next_url']
        u = urlparse(p)
        query = parse_qs(u.query)
        cursor = query['cursor'][0]

您的logs对象应包含日志。

答案 1 :(得分:0)

我认为限制为500,然后我们返回一个分页URL,以便您可以获取下一个500。我不认为这是问题所在,但是一旦您开始获取日志,就很好了