Я регулярно получаю документ с вопросами (у меня есть ответы от предыдущих итераций. Вопросы всегда схожи), и я хотел бы автоматизировать ответы.
Я пытаюсь соединить лист 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