Как связать Excel с IBM Watson - PullRequest
0 голосов
/ 03 апреля 2019

Я регулярно получаю документ с вопросами (у меня есть ответы от предыдущих итераций. Вопросы всегда схожи), и я хотел бы автоматизировать ответы. Я пытаюсь соединить лист Excel с IBM Watson, чтобы научить его отвечать на вопросы. Я использую приведенный ниже код для подключения к Уотсону, но я получаю следующую ошибку, и я не уверен почему: "#ERROR: 401 - {" code ": 401," error ":" Unauthorized "}"

Я думаю, что это связано с синтаксисом моих учетных данных, но я не могу найти никаких примеров поддержки.

Любая помощь приветствуется. Пример будет идеальным. Спасибо!

Function INTENT(query As String) As String
' IBM WATSON conversation service

If Len(query) > 0 Then 'If query is not empty
    Dim xmlhttp As New MSXML2.XMLHTTP60, workspaceID As String, workspaceURL As String, authUsername As String, authPassword As String, response As String, body As String

    ' WATSON Conversation Credentials
    **workspaceID = "a53a2519-30c5-47d5-a98b-cac2bf22fc5c"**
    'The API key from the first page of the project

    workspaceURL = "https://gateway.watsonplatform.net/assistant/api/v1/workspaces/" + workspaceID + "/message?version=2018–07–10" 'API requests require a version parameter
    **authUsername = "apikey"
    authPassword = "luVydRf_mxwAxvLHu0kFvTnIQMJttDLGnoMYSDkhpCrx"**


    body = "{""input"":{""text"":"" " + Replace(query, Chr(34), "") + " ""}}" 'The user input in JSON format. Also removed double quotes from input

    xmlhttp.Open "POST", workspaceURL, False, authUsername, authPassword
    xmlhttp.setRequestHeader "Content-Type", "application/json"

    xmlhttp.Send body

    If xmlhttp.Status = 200 Then 'Request success
        response = xmlhttp.responseText
        INTENT = parseINTENT(response)
    Else 'Request fail
        INTENT = "#ERROR: " & xmlhttp.Status & " - " & xmlhttp.responseText
    End If
End If
End Function

Function parseINTENT(text As String) As String
'Parse intent and confidence from JSON response

Dim p1 As Integer, p2 As Integer

p1 = InStr(text, "[{" + Chr(34) + "intent")
p2 = InStr(p1, text, "}]")
parseINTENT = Mid(text, p1, (p2 - p1) + 2)

End Function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...