gpt4 book ai didi

使用 Powershell 读取 Azure 认知服务请求

转载 作者:行者123 更新时间:2023-12-03 02:37:57 25 4
gpt4 key购买 nike

我尝试将 Azure 认知服务 API 与 Powershell 结合使用来“读取”blob 存储中的 .jpg 内容。我尝试做的所有事情都可以使用 Azure API 演示/测试页面完美运行,因此我相当确定这在某种程度上证明了我在代码中使用的某些元素是有效的。嗯,至少在使用 API 测试工具时是这样。

这是我的 Powershell:

Clear-Host

$myUri = "<ENDPOINT value from "keys and endpoint blade">/vision/v3.0/read/analyze?language=en"
$imagePath = "<path to image in blob. accessible online and anonymously>"
$subKey = "<KEY #1 from "keys and endpoint" blade>"

$headersHash = @{}
$headersHash.Add( "Host", "westeurope.api.cognitive.microsoft.com" )
$headersHash.Add( "Ocp-Apim-Subscription-Key", $subKey )
$headersHash.Add( "Content-Type","application/json" )

$bodyHash = @{ "url" = $imagePath }

out-host -InputObject "Sending request:"
$response = Invoke-WebRequest -uri $myUri `
-Method Post `
-Headers $headersHash `
-Body $bodyHash `
-verbose

"Response: $response"

当我发送该信息时,我得到的只是:

Invoke-WebRequest : The remote server returned an error: (400) Bad Request.
At C:\scratch\testy.ps1:15 char:13
+ $response = Invoke-WebRequest -uri $myUri `
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-W
ebRequest], WebException
+ FullyQualifiedErrorId :
WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand

我一定缺少一些基本的东西,但我看不出是什么。我可以找到没有使用 Powershell 访问 CS API 的已发布示例,但有一个使用 Python(请求)的示例,我很确定我正在正确模拟和表示 Python 示例中的内容。但话又说回来,它不起作用,所以有些事情不对劲。

奇怪的是,当我尝试在 Postman 中重新创建此内容时,我收到 202 但没有响应正文,因此我无法查看或提取 apim-request-id 来生成下一个请求来检索结果.

最佳答案

发现问题了。当我将调用包装在 try/catch block 中并将其放入 catch block 中时,问题就变得很清楚了:

$streamReader = 
[System.IO.StreamReader]::new($_.Exception.Response.GetResponseStream())
$ErrResp = $streamReader.ReadToEnd() | ConvertFrom-Json
$streamReader.Close()

然后我可以查看 $ErrResp 变量的内容,并且有一个字符串片段表示“无法下载目标图像..”或类似的内容。奇怪的是,因为我可以使用我提供的 URL 来立即连接并获取图像..所以它必须是 URL 注入(inject)正文的方式。

确实如此。

当使用哈希表作为正文时,您的 Content-Type 为“application/json”,您所需要做的似乎就是首先将您的哈希值与 Convertto-json 一起使用。这很有效,我立即得到了 202 和指向哪里收集结果的指针。

希望这能在某个时间、某个地方对某人有所帮助。

关于使用 Powershell 读取 Azure 认知服务请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62477871/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com