Gishは、UNIXコンベンションに続き、フラグを介して豊富な特徴を提供するOpenai GPTと相互作用するコマンドラインインターフェイス(CLI)です。 Gishを使用するには、有料のOpenAIアカウントとAPIキーが必要であることに注意することが重要です。
Gishは次の機能を提供します。
#import
ステートメントを使用して、ファイルをプロンプトに統合します#diff
ステートメントまたは-d
フラグを使用して、オリジナルを使用して生成されたファイルを拡散します npx gish-gpt
または
npm install gish-gpt
node_modules/.bin/gish
代替、ステップ3をnpm devに置き換えて、コードを変更します
dist/index.js
を実行しますdist/index.js
へのシンボリックリンクを作成します。または、エイリアスを作成します。 # gish tell me a joke
Why was the math book sad? Because it had too many problems.
# gish "What is the population of the city of London?".
The population of the City of London is approximately9 million, as of 2021.
引用符なしで、シェルは2番目の要求で疑問符を解釈し、エラーを引き起こします。
パイプ入力:
#echo "What is the population of the city of London?" | gish
The estimated population of the city of London is around 9 million people.
# gish.
> tell me a joke
Why did the tomato turn red? Because it saw the salad dressing!
これは、コマンドラインで「Python」または「ノード」を入力することに似ています。
gist < foo
Fooのコンテンツはどこにありますか
tell me a joke
gish --help
すべての異なるオプションを示していますgish tell me a joke
リクエストを送るだけですgish "what is the population of San Francisco?".
シェルエラーを避けるために引用符が必要です。gish -e
あなたを編集者に入れ、完了したらコンテンツを送信します。中止するには、ファイルを作成したり空にしたりしないでくださいgish -e foo.txt
同じことを行いますが、既存のファイルで動作します。gish -h [num]
あなたに歴史を示します。 numはオプションで、デフォルトは20です。gish -i foo
fooのコンテンツを送信します。 cat foo | gish
。gish -m gpt-4
モデルを指定しますgish -p foo
チャットでFooをプロンプトとして使用します。他のフラグや引数は実際の要求を渡すために使用されますが、これは背景です。 https://platform.openai.com/docs/guides/chatを参照してください。 Gishは、このプロンプトを「システム」の役割とのチャットの最初のものとして設定します。gish -s foo.ts
出力をfoo.tsに保存します。コードを生成するとき、ユーザーは適切な出力を生成するプロンプトを使用する必要があります。例については、プロンプト/コーディングを参照してください。gish -d foo.ts
このファイルで結果を差し引きます。 -sが必要です。gish -c [num]
チャットモードをアクティブにし、numリクエストを参照します。デフォルトは前のものです。詳細については、チャットセクションを参照してください。gish -g
は複数のファイルを生成して完全なアプリケーションを作成します。詳細については、生成セクションを参照してください。gish -x
。例:-x '"温度" = 0.5: "max_tokens" = 500'。 あなたのシェルのように-hまたは - 歴史はあなたの要求の履歴を示しています。オプションのnumparamは、要素の数を指定します。デフォルトは20です。
チャットモードは、以前のリクエストを参照できるhttps://platform.openai.com/chatに同様のエクスペリエンスを提供します。
# gish what is the capital of japan
The capital of Japan is Tokyo.
# gish -c population
The estimated population of Tokyo, Japan as of2021 is approximately 13.9 million people.
履歴機能を使用して、履歴のリクエストの位置を確認し、-Cパラメーターに渡すことができます。
# gish tell me a joke
Why did the tomato turn red ? Because it saw the salad dressing !
# gish tell me a one line story
She found love in the most unexpected place.
# gish -h 2
892: tell me a joke
893: tell me a one line story
# gish -c 892 another
Why did the bicycle fall over ? Because it was two-tired !
使用できるFlagasのリストについては、[Chat API docs](https://platform.openai.com/docs/api-reference/chat)を参照してください。この機能は高度なユーザー向けですが、サポートされていないフラグを渡すと、APIは通常エラーになります。
警告あなたが渡す文字列は有効なJSONである必要があります。具体的には、「:」の両側の二重引用符で文字列が囲まれていることを確認してください。これはJSONであり、JavaScriptではありません!例:
# gish -x '"temperature":0.5,"max_tokens":5' tell me a joke
Why did the tomato turn
5トークンの後に応答を刻みました。
chat
を入力し、チャットモードに入るリクエストを入力します。出口を入力して、チャットモードを去ります。 履歴を表示するオプションの番号で履歴を入力します。デフォルトは20です。
チャットモードは、以前のリクエストを参照できるhttps://platform.openai.com/chatに同様のエクスペリエンスを提供します。
> 10 miles to km
16.0934 km.
> chat how about 40
40 miles is equal to64.3736 kilometers.
Chat > how about 50
50 miles is equal to80.4672 kilometers.
Chat > exit
> how about 30
30 is a positive integer that comes after29 and before 31.
chat 876 another
入力ファイルの#import
ステートメントを使用して、chatgptに反応したいプロンプトまたはコメント/テキストを含めます。例
#import ~/work/gish/tasks/coding.txt
The above program prints hello world. Change it to print goodbye world.
#import hello.ts
これがtasks/coding.txt
のコンテンツです:
I want you to act as a coding collaborator. I will ask you software questions and you will answer with code.
Your response for this request needs to be code and nothing else.
Only provide comments if they provide important extra information and they should be brief and to the point. The contents should be in the code as comments at the top of the file.
---
これは、CodingにGishを使用する場合の典型的なワークフローです。
gptにファイルに変更を加えて差し止めるときに#diff
オプションを使用してください。
#import ~/work/gish/tasks/coding.txt
In the following file, document the code better
#diff settings.ts
このプロセスは#import
に似ていますが、ユーザーがファイルを変更していることをアプリに通知することもできます。コードが生成されると、 settings.ts
で定義されたdiffコマンドが元のファイルと生成されたファイルで起動されます。複雑な変化のために、副操縦士はよりうまく機能するかもしれません。
[Web Application](Tasks/WebApp.txt)などの適切なプロンプトを使用すると、LLMを取得できます。これにはGPT-4が推奨されますが、実験して、何が機能するかを確認します。入力ファイルを作成するだけです
#import tasks/webapp.txt
Generate Conway's game of life.
Include on the page, the instructions on how to play the game.
そして、実行します
gish -m gpt-4 -g life -i /input
その結果、「Life」ディレクトリで人生のゲームが生まれました。
警告
このアプローチを使用すると、特にGPT-4を使用すると、多くのトークンを使いやすいので、コストが合計される可能性があることに注意してください。
Gishを使用する方法については、[例](例)dirを参照してください。
これは、GISHを使用してGit Commitメッセージを生成し、メッセージを事前に設定してエディターにユーザーをドロップするシェルスクリプトの例です。
#! /bin/bash
out= " The following is the output of git diff "
out+= ` git diff $* `
out+= " ----------------------------- "
out+= " The following is the output of git status "
out+= ` git status --untracked-files=no $* `
out+= " ----------------------------- "
out+= " based on the above provide a commit message "
git commit -e -m " ` echo $out | gish --no-stats ` " $*
ログファイル、〜/.gish/history.jsonは、chatgptとの会話のログとして動作します。標準ファイルであるため、エディターまたはポケットベルを使用して、chatgptとのやり取りの履歴を確認できます。
CatやEchoのようなLinuxコマンドと同様に、以下は、Gishがどのように引数とフラグを優先したかです。
デフォルトでは、Gishはリクエストの統計を表示します。
gish tell me a joke --no-stream
Why don't scientists trust atoms?
Because they make up everything.
Tokens: 26 Cost: $0.00005 Elapsed: 1.198 Seconds
コストは、1000トークンあたり0.02ドルでGPT3.5を使用しているという仮定に基づいています。 *頼る前に数値を再確認します。ストリーミングを使用する場合、APIはトークンの数を提供しないため、これらを独自に計算する必要があります。