невозможно добавить / перечислить весь журнал событий на watson assistant wrokspace - PullRequest
0 голосов
/ 16 января 2019

Пожалуйста, помогите, я пытался позвонить конечной точке помощника Ватсона 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 голосов
/ 16 января 2019

Я полагаю, что ограничение составляет 500, а затем мы возвращаем URL пагинации, чтобы вы могли получить следующие 500. Я не думаю, что это проблема, но как только вы начнете получать журналы, полезно знать

0 голосов
/ 16 января 2019

Пара вещей, чтобы проверить.

1. У вас есть 2018-17-12, что является метрической датой. Это переводится как «12-й день 17-го месяца 2018 года».

2. Предполагая, что дата должна быть действительной, ваш поиск говорит: «Документы до 17 декабря 2018 года и после 1 января 2019 года». Который не вернул бы никаких документов.

3. Журналы создаются только при вызове метода message () через API. Так что проверьте свою страницу регистрации в инструментах, чтобы увидеть, есть ли у вас журналы.

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 объект должен содержать журналы.

...