//If the user uploaded an image, read it, and send it to the Vision API
if (activity.Attachments.Any() && activity.Attachments.First().ContentType.Contains("image"))
{
//stores image url (parsed from attachment or mess`enter code here`age)
string uploadedImageUrl = activity.Attachments.First().ContentUrl; ;
uploadedImageUrl = HttpUtility.UrlDecode(uploadedImageUrl.Substring(uploadedImageUrl.IndexOf("file=") + 5));
using (Stream imageFileStream = File.OpenRead(uploadedImageUrl))
{
try
{
analysisResult = await visionClient.AnalyzeImageAsync(imageFileStream, visualFeatures);
}
catch (Exception e)
{
analysisResult = null; //on error, reset analysis result to null
}
}
}
//Else, if the user did not upload an image, determine if the message contains a url, and send it to the Vision API
else
{
try
{
analysisResult = await visionClient.AnalyzeImageAsync(activity.Text, visualFeatures);
}
catch (Exception e)
{
analysisResult = null; //on error, reset analysis result to null
}
}
Я пытаюсь использовать код выше. Я получил код отсюда: https://docs.botframework.com/en-us/bot-intelligence/vision/#example-vision-bot.Vision API C# - чтение URL-адреса сохраненного изображения в Azure
Как и код, он делает то, что он может делать при запуске локально, но чтение URL-адреса изображения из загруженного файла не работает после того, как я опубликовал свой бот для Azure и запустил его оттуда.
Я попытался отладить, добавив Visual Studio непосредственно к моему опубликованному боттеру webapp в Azure. Похоже, что webapp не может прочитать URL-адрес сохраненного изображения из хранилища временного хранилища сервера Azure или не может получить доступ к хранилищу временного хранилища.
Эта линия:
uploadedImageUrl = HttpUtility.UrlDecode(uploadedImageUrl.Substring(uploadedImageUrl.IndexOf("file=") + 5));
показывает следующее значение: "https://bcattachmentsprod.blob.core.windows.net/at4984/Gv4cOx6OdSl- оригинальный"
Затем эта линия:
using (Stream imageFileStream = File.OpenRead(uploadedImageUrl))
Изменяет значение: «с: // bcattachmentsprod.blob.core.windows.net/at4984/Gv4cOx6OdSl-original "
А потом он просто останавливается.
Неужели кто-нибудь сталкивался с такой проблемой? Как мне решить эту проблему?
Спасибо!
Отправка URL-адреса изображения выполняется локально и в Azure для этого фрагмента. Интересно, есть ли работа для этой проблемы. Хммм ... – kcd
Какова остальная проблема? – cthrash