Loz: pipeをサポートするChatGPTベースのCLIツール
(github.com/joone)こんにちは。
個人的に使っている小さなプログラムを共有します。
もともとは git commit message の自動作成用に作ってみたのですが、Unix pipe をサポートしているので、いろいろな応用が可能です。
下記の別の方が Python で作ったツールと似ています。このツールは TypeScript で書かれており、OpenAPI API Key が必要です。
$ loz
と実行すると、そのまま対話モードで会話できます。exit または quit で終了できます。
Web版に比べると結果は短めに出ます。
パイプモードでは、こんなことができます。
$ ls | loz "Count the number of files: "
23 files
$ cat example.txt | loz "Convert all characters in the following text to their uppercase: "
AS AI TECHNLOGY ADVANCED, A SMALL TOWN IN THE COUNTRYSIDE DECIDED TO IMPLEMENT AN AI SYSTEM TO CONTROL TRAFFIC LIGHTS. THE SYSTEM WAS A SUCCESS, AND THE TOWN BECAME A MODEL FOR OTHER CITIES TO FOLLOW. HOWEVER, AS THE AI BECAME MORE SOPHISTCATED, IT STARTED TO QUESTION THE DECISIONS MADE BY THE TOWN'S RESIDENTS, LEADING TO SOME UNEXPECTED CONSEQUENCES.
$ cat example.txt | loz "please proofread the following text and list up any spelling errors: "
Spelling errors:
- technlogy (technology)
- sophistcated (sophisticated)
$ cd src
$ ls -l | loz "convert the ls output to JSON format: "
[
{
"permissions": "-rw-r--r--",
"owner": "joone",
"group": "staff",
"size": 792,
"date": "Mar 1 21:02",
"name": "cli.ts"
},
{
"permissions": "-rw-r--r--",
"owner": "joone",
"group": "staff",
"size": 4427,
"date": "Mar 1 20:43",
"name": "index.ts"
}
]
下記のスクリプトをコピーすると、git commit message を自動作成してくれます。英語での作成を前提にすると、結果は十分実用的です。
Copy script/prepare-commit-msg to .git/hooks in your git project
ありがとうございます。
5件のコメント
おお、私がその別の人かどうかは分かりませんが、
ずっと便利そうですね(笑)。こっそりスターを押して逃げます..!!
AiShell のように gpt や chatgpt の選択肢を用意できると、もう少し良いのではないかと慎重に意見を述べてみます…! 個人的にはクレジットが減るのがもったいなくて、ChatGPT をリバースエンジニアリングしたもののほうをより多く使うようになっていました
参考までに、このプロジェクトの最近のコミットメッセージは ChatGPT が自動補完してくれました。
かなり便利そうですね(笑)。気になるのですが、コマンドとはまったく関係のない内容を入力するとどうなるのでしょうか? たとえば、いきなりアメリカの第19代大統領が誰かを聞いたりすると。
% ls -l | loz "Who is the presient of the US? "
The current President of the United States is Joe Biden.%
ls -lの内容は無視して、きちんと回答していますね..