天天看点

命令行版 ChatGPT,支持代码高亮,流式输出

开源地址: https://github.com/evilpan/gptcli

前两天 OpenAI 公开了

gpt-3.5-turbo

的接口,于是想着能不能用命令行实现一个简单的版本。一方面是对于程序员而言命令行非常常用,另一方面也是因为 Web 版本的比较难部署,需要额外的服务器。

于是周末撸了两天,先是实现了一个简单的版本,可以请求 OpenAI api 并获取结果,然后把结果用 markdown 在终端上渲染出来。后来网友建议加上流式的输出,于是又调研了以下,发现确实可以实现。不过这期间有个小坑就是 openai 的流式 api 使用了

aiohttp

这个库,这个库本身支持 HTTP/HTTPS proxy,但是不支持 socks,所以后来通过一个三方的拓展去间接改造了以下。

总而言之,目前支持的功能如下:

  • 流式输出
  • Markdown/代码高亮
  • 支持对话上下文
  • 支持科学访问 api.openat.com
  • 支持输入多行(通过

    <

    命令)

一些内置的命令:

Input: help
options:
  <        输入多行
  reset    清空会话,删除上下文
  help	   帮助
  exit     退出
           

实现效果: https://asciinema.org/a/564585

ChatGPT 命令行版本

彩蛋:

命令行版 ChatGPT,支持代码高亮,流式输出

开源地址: https://github.com/evilpan/gptcli