1.定义JSON字符串变量

PS C:\WINDOWS\system32>  $body = @'
 {
    "Method":  "POST",
    "Body":  {
                 "model":  "deepseek-r1",
                 "messages":  [
                                  {
                                      "content":  "why is the sky blue?",
                                      "role":  "user"
                                  }
                              ]
             },
    "Uri":  "http://localhost:11434/api/generate"
}
'@

PS C:\WINDOWS\system32> $body
 {
    "Method":  "POST",
    "Body":  {
                 "model":  "deepseek-r1",
                 "messages":  [
                                  {
                                      "content":  "why is the sky blue?",
                                      "role":  "user"
                                  }
                              ]
             },
    "Uri":  "http://localhost:11434/api/generate"
}  
  1. 将 JSON 字符串转换为 PowerShell 对象

PS C:\WINDOWS\system32> $bodyObj = $body | ConvertFrom-Json

PS C:\WINDOWS\system32> $bodyObj.Body

model       messages                                    
-----       --------                                    
deepseek-r1 {@{content=why is the sky blue?; role=user}}



PS C:\WINDOWS\system32> $bodyObj.Body.messages

content              role
-------              ----

3.从 PowerShell 对象生成 JSON 字符串

PS C:\WINDOWS\system32> $bodyObj = @{
    Uri             = 'http://localhost:11434/api/generate'   
    Method          = 'POST'
    Body            = @{
	  model = "deepseek-r1"
	  messages = @(
		@{ 
			role = "user"
			content="why is the sky blue?" 
		}
	  )
	}
}

PS C:\WINDOWS\system32> $bodyObj | ConvertTo-Json -Depth 5
{
    "Method":  "POST",
    "Body":  {
                 "model":  "deepseek-r1",
                 "messages":  [
                                  {
                                      "content":  "why is the sky blue?",
                                      "role":  "user"
                                  }
                              ]
             },
    "Uri":  "http://localhost:11434/api/generate"
}
  1. Invoke-WebRequest的body参数支持中文
PS C:\Users\houyingshi> $body = @'                                              {
 "model": "deepseek-r1",
 "prompt": "天空为什么是蓝色的",
 "stream": false
}
'@

PS C:\Users\houyingshi> (Invoke-WebRequest -method POST -Body $body  -ContentType "application/json; charset=utf-8"   -uri http://localhost:11434/api/generate ).Content | ConvertFrom-json
Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐