> 自媒体 > (AI)人工智能 > 在PowerShell 中实现流式传输 - OpenAI completions 或 chat
在PowerShell 中实现流式传输 - OpenAI completions 或 chat
来源:opendotnet
2023-08-17 16:42:31
554
管理

我们都知道,由于OpenAI 服务的原理,他在做文本或代码补全时,如果内容较多,实际上是一点一点推测后续内容和补全的。这种情况下,如果你要等到所有的内容都准备好,则可能在客户端看到很长时间的空白页面。所以,OpenAI的API在设计时提供了一个stream的参数,以便实现流式传输,这也就是我们已经早就在很多地方(不管是官方的ChatGPT,还是很多第三方应用)已经看到的“打字机”效果。

Python 和 Nodejs 都默认支持了流式传输,例如下面是Python的做法。

在Javascript中则可以如下实现。

而到了IT 攻城狮或程序猿傍身的PowerShell,由于先天设计的不同,默认(Invoke-Webrequest 或 Invoke-RestMethod)并不支持这类骚操作。感谢胖老师的研究,咱们在PowerShell中也可以轻松实现类似的效果,请参考下文。

https://mp.weixin.qq.com/s/swBdYJBCQSYKO9peQ6kkNA

我做了一个简化的版本,可以快速验证效果。【请注意,替换RequestUri和 api_key】

$client = New-Object System.Net.Http.HttpClient$body = @{ prompt = "write a poem about happiness, less than 2000 words" max_tokens = 2000 stream = $true}$request = [System.Net.Http.HttpRequestMessage]::new$request.Method = "POST"$request.RequestUri = "https://chenxizhang-azure-openai.openai.azure.com/openai/deployments/text-davinci-003/completions?api-version=2022-12-01"$request.Content = [System.Net.Http.StringContent]::new(($body | ConvertTo-Json), [System.Text.Encoding]::UTF8)$request.Content.Headers.Clear$request.Content.Headers.Add("Content-Type", "application/json;charset=utf-8")$request.Headers.Add("api-key", $env:OPENAI_API_KEY)$task = $client.SendAsync($request)$result = $task.Result$streamTask = $result.Content.ReadAsStreamAsync$stream = $streamTask.Result$reader = [System.IO.StreamReader]::new($stream)while ($true) { $line = $reader.ReadLine if(($line -eq $) -or ($line -eq "data: [DONE]")) { break } Write-Host (($line -replace "data: ", "") | ConvertFrom-Json).choices.text -NoNewline}$reader.Close$reader.Dispose$stream.Close

周末手艺人卷一篇,其实不管用什么平台,都差不多的。关键是心,希望大家喜欢。

1
点赞
赏礼
赏钱
0
收藏
免责声明:本文仅代表作者个人观点,与本站无关。其原创性以及文中陈述文字和内容未经本网证实,对本文以及其中全部或者 部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。 凡本网注明 “来源:XXX(非本站)”的作品,均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对 其真实性负责。 如因作品内容、版权和其它问题需要同本网联系的,请在一周内进行,以便我们及时处理。 QQ:617470285 邮箱:617470285@qq.com
相关文章
国产车方向盘“断臂”倒计时?2027年起半幅式彻底消失?..
东北一哥们儿在零下二十几度的停车场,对着理想新车门把手猛按三分钟——..
买车选国产还是合资?别听销售瞎吹,5个维度对比,答案一目了然..
现在买车,绕不开一个灵魂拷问:同样预算,到底选国产还是合资?有人说合..
一年零62天,我与问界M9的“日常”,让我看清了国产车的“狠活”..
#问界M9祝您新年手到福来#曾经的我,几乎每天都在生意的路上,开着酷路泽..
三代同堂!是轩逸是产品力太强?还是国产车太弱?
在中国,你想找到一款三代同堂的燃油车,并不容易了。按照一辆燃油车6~8..
国产车造出四电机轿车,发动机只发电不驱动,这车真能原地掉头?..
比亚迪推出高端品牌仰望的旗舰轿车,这台车用2.0T发动机给电池充电,不直..
修车12年,我想跟纠结国产车质量的普通人说句实在话..
我是心心念念,每天跟大家聊点实在的用车、选车干货,更新不赶趟、但每回..
国产车卖得越来越猛,价格战快打不动了,华为悄悄成了幕后推手..
2025年卖车最多的还是比亚迪,卖出460多万辆,差一点就突破500万,上汽紧..
揭秘中国最能打的6款SUV,各个都是国货之,国产车的骄傲!..
想要买SUV的兄弟们注意了,国产最能打的6款SUV车型,无论是动力、配置、..
国产车越做越大,德系豪华也低头,中国用户说了算
北京奔驰最近申报了一款纯电GLC,它用的电池是宁德时代生产的,容量有89..
关于作者
赶海的老阿姨..(普通会员)
文章
2086
关注
0
粉丝
0
点击领取今天的签到奖励!
签到排行

成员 网址收录40418 企业收录2986 印章生成263660 电子证书1157 电子名片68 自媒体109272

1
0
分享
请选择要切换的马甲:

个人中心

每日签到

我的消息

内容搜索