天天看點

指令行版 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