xcd0 / easygpt

テキストファイルをchatgptのapiに投げる。
MIT License
0 stars 0 forks source link

easygpt

English readme translated by this program.

chatgptのapiを使ってテキストファイルをまとめて一括で処理させるプログラム。
翻訳や、ソースコードにコメントを付けさせたりと、使い方次第で色々できる。

install

go install github.com/xcd0/easygpt@latest

準備

OpenAIのAPIキーを環境変数OPENAI_API_KEYに設定する。
下記のAPIキーは例の為の無効なAPIキーなので、自分で有効なAPIキーを発行して、設定すること。
APIキーは https://platform.openai.com/account/api-keys から発行できる。 発行したAPIキーを.bashrcなどに設定する。

$ export OPENAI_API_KEY=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
$ echo export OPENAI_API_KEY=$OPENAI_API_KEY >> .bashrc

使用例1 : AIに文字列を与えて出力を得る

APIキーを環境変数で指定していれば、コマンドラインから直接実行できる。

$ easygpt -i "Say this is test."
this is test.
$ easygpt -i 自己紹介してください。
こんにちは、私はAIです。私はOpenAIが開発した自然言語処理モデルです。私の目的は、ユーザーが質問や要求をすると、最善の回答や応答を提供することです。私は様々なトピックについての情報を持っており、文法やスタイルの修正も行うことができます。どのようにお手伝いできますか?

使用例2 : D&D

与えたファイルとフォルダに含まれるファイル全てを一括でAIに与えて処理させる。
ファイルやフォルダを選択して実行ファイルにD&Dすることで、含まれるファイルをテキストとしてAIに処理させることができる。

使用例3 : 複数ファイル一括処理

AIに指定のディレクトリにある複数のテキストファイルを一括で処理させる。
これがメインの使い方。
この使い方は、すべて設定ファイルで動作を指定する。
使用例2よりも細かい制御ができる。

設定ファイルについて

設定ファイルの雛形を生成し、それを編集して設定ファイルを作成する。

key 必須か 説明
input-dir 必須 入力ディレクトリ。
AIに与えたいファイル群を格納するディレクトリ。
output-dir 必須 出力先ディレクトリ。
入力ディレクトリと同じディレクトリ構成になるようにディレクトリが作成される。
apikey 任意 APIキーの指定。環境変数に指定していれば不要。
設定ファイルで指定されていれば環境変数での指定を無視する。
prompt 任意 ここで指定した文字列を、全ての入力ファイルの先頭に付与する。
AIに対する支持などを記載する。
extension 任意 入力ディレクトリにおいて指定の拡張子で入力ファイルを制限する。
この指定が空の時、*を指定した時、無指定の時、拡張子によって制限しない。
concurrency 任意 平行して実行する数。APIのレート制限に注意。
temperature 任意 AIの変数temperatureを指定できる。
move 任意 正常に処理ができたファイルを指定したディレクトリに移動させる。
エラーやCtrl-Cなどで中断した際に、途中から再度実行しやすくなる。
tmp-dir 任意 基本的に指定する必要はない。一時ファイルを保持するディレクトリ。
postfix 任意 基本的に指定する必要はない。出力ファイル名の末尾に文字列を付与したいとき指定する。
ai-model 任意 基本的に指定する必要はない。使用したいAIのモデルを指定できる。
openai-url 任意 基本的に指定する必要はない。APIのURLを指定できる。
  1. 雛形の生成。

設定できる項目が多い為、設定ファイルの雛形を生成し、それを編集することを推奨。

以下のコマンドで、カレントディレクトリに eagygpt.hjson が生成できる。

$ easygpt --create-setting

easygpt -cでも良い。

  1. 設定ファイルの編集。
    • APIキーの設定
    • 設定ファイルにAPIキーを指定できる。環境変数OPENAI_API_KEYに設定していれば不要。

他の引数については、生成された設定ファイルのコメントを読み、必要に合わせて記述する。
基本的には、input-diroutput-dirが指定されていればよい。

  1. 設定ファイルの配置。

基本的にはカレントディレクトリに、easygpt.hjsonを配置すればよい。

以下の仕様に従って設定ファイルが探索される。

設定ファイルの名前の既定値は、

設定の既定の位置は、

引数による設定

コマンドライン引数が設定されていた場合、設定ファイルの値をコマンドライン引数の値で上書きする。
既定のパスにある設定ファイルに、設定されている値については、引数を省略できる。
設定できる引数が多い為、基本的に設定ファイルを使用する事をお勧めする。

引数には --key value 形式のフラグ引数と、そうでない非フラグ引数がある。

引数は順不同。
引数の詳細については ./easygpt --help で出力されるヘルプテキストを参照。

使用させていただいているOSSライブラリ

各OSSライブラリのライセンスは ./lisenses にコピーを保持している。

LICENSE

MIT License