Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

像 ChatGPT 一样在 Shell 中数据流式显示内容 #75

Open
woodongwong opened this issue Apr 9, 2023 · 0 comments
Open

像 ChatGPT 一样在 Shell 中数据流式显示内容 #75

woodongwong opened this issue Apr 9, 2023 · 0 comments

Comments

@woodongwong
Copy link
Owner

花了一些时间拼凑出了一个 shell 脚本:https://gist.github.com/woodongwong/7d186f164982ce483198bd384a005d72 ,效果如下:

chat-gpt-streaming-output.sh.2023-04-09.15-30-51.online-video-cutter.com.mp4

命令中使用到了一些平时不常用的选项,主要针对 buffer 的配置

  • curl 使用 -N 或 --no-buffer 来关闭缓冲

  • awk 使用 system("") 刷新输出,可能有更好的解决方式和更好的兼容性1

  • jq --unbuffered 也是关闭缓冲的意思

  • jq -R 'fromjson?' 是验证是不是 JSON 格式

  • jq -r 'select(. != null)' 过滤内容等于 null

  • 最后使用 awk '{printf "%s", $0}' 来去除换行符,没有使用 tr 的原因是 tr 无法关闭缓冲

参考:

Footnotes

  1. https://unix.stackexchange.com/q/33650

@woodongwong woodongwong changed the title 像 ChatGPT 一样在 Shell 中数据流式显示结果 像 ChatGPT 一样在 Shell 中数据流式显示内容 Apr 9, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant