チャレンジGPT_7.TerminalでPythonでAPIでgpt-3.5-turbo
前回までに、HelloWorldをクリアした私。
GPT君がいれば、ウェブページは簡単に作れることはわかったので、
今回は、PythonでchatGPTを呼び出したいと思います。
で、紆余曲折あって、出来たコードがこちら!
出来上がったコード
import openai
# APIキーを設定してください。例: 'your-api-key'
api_key = "ここにAPIをコピペする"
openai.api_key = api_key
def generate_text(prompt, role, conversation_history):
# ユーザーの質問を会話履歴に追加
conversation_history.append({"role": "user", "content": prompt})
# GPT-3.5モデルを使用してテキストを生成
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "system", "content": f"You are a {role}."}] + conversation_history,
max_tokens=2000,
n=1,
temperature=0.8,
)
message = response.choices[0].message['content'].strip()
# アシスタントの回答を会話履歴に追加
conversation_history.append({"role": "assistant", "content": message})
return message
if __name__ == "__main__":
# ロールプレイのモデルをユーザーに入力してもらう
role = input("ロールプレイのモデルを指定してください。日本語でも大丈夫です(例: 偉い科学者): ")
# 会話履歴を格納するためのリストを初期化
conversation_history = []
while True:
# ユーザーに質問を入力してもら
input_prompt = input("=====================質問を入力してください。日本語でも大丈夫ですが、改行すると変になるので、改行しないほうがよさそうです(終了するには'q'を入力)===========================: ")
# 入力を受け付けたことを表示
print("====================================入力を受け付けました====================================")
# 終了条件の確認
if input_prompt.lower() == 'q':
break
# GPT-3.5からの回答を生成
generated_text = generate_text(input_prompt, role, conversation_history)
# 回答を表示
print("===========================GPT-3.5からの回答===========================:", generated_text)
これをターミナルでPythonすると動く。
動かし方
テキストエディタ Visual Studio Codeを開く
まだダウンロードしてない方はコチラ↓
いい感じのフォルダに新規ファイルを作成して、いい感じの名前をつける
例:「app.py」などと言う名前にする
でも、何回もテストで作ってると、何でもかんでもapp.pyになるので、ちゃんと考えてつけないといけない。
作成したファイルに、出来上がったコードを貼る
コピペ。
コピペだけの人生ですよ。
「ここにAPIをコピペする」のところに、APIキーをコピペして、上書き保存する
APIキーは、以下から取得しておく
ここはお金が絡むので、「Hard limit」の設定だけは、確実に。
Google翻訳の拡張機能がないと、詰むる。
人類の叡智大集合。
アカウントを新規で作成する(GPT4がつかえる月額の有料契約とは別)
作成しただけで、無料で18ドル分の課金枠が付与されてるはず
個人利用だと、この無料枠だけで結構なテストができる
ちなみに、これだけ「あーでもないこーでもない」している今時点でも↓くらい。無料枠も使い切ってない。
アカウントが用意できたら、Open AIにログイン
Open AIにログインしたら、右上のユーザーアイコンをクリック
「View API keys」をクリック
「Create new secret key」ボタンをクリックして、API keyを新規で作る
作成されたAPIキーの画面
「従量課金(使ったら使った分だけお金がかかるの)」なので、左のメニューから「Usage limits」を選択して、Hard limit(これに達すると使用できなくなる)と、「Soft limit」(これに達すると通知メールが来る)を設定する
ちなみに、私は英語がからっきしなので、全部Google翻訳に任せてる
「ターミナル」から、「New Terminal」を開く
「Visual Studio Code」を選択した状態で、モニタ画面の一番上を見るとある。
これがなかなか見つけられなくてググった。
なんでもかんでも上に情報を集約するの止めてほしい。
アプリの中に分かりやすく表示しておいてほしい。
「Python」と「半角スペース」と「いい感じにつけた名前」を打つ
例:
Python app.py
これを打っても動かないときは、大抵、ファイルの保管場所(フォルダのディレクトリ)が違うとこにある。
これを文字で指定しなきゃいけないのが、Windows世代の我々には辛いところ。
アイコンが表示されてて、それをダブルクリックして階層に辿り着きたい。
そんな面倒なことやらなくても、「Visual Studio Code」だったら、右クリックで起動できる
動かしたいファイルを右クリックで「ターミナルでPythonファイルを実行する」
今回の場合は、「app.py」を右クリック
右クリックがなかった頃のMacユーザーって、ホントに全部ショートカットキーでやってたの?
覚えるの大変
「ロールプレイのモデルを指定してください。日本語でも大丈夫です(例: 偉い科学者):」とターミナルに表示されたら成功
表示されなかったら、エラーメッセージをGPT4に入れて解決方法を聞く
ここまでは、APIキー入れてなくても動く
いつものように文章(プロンプト)を入れると、回答してくれるはずです
工夫したところ
単に GPTにコードを書いてもらうと、トークン数を少なく見積もられると思うので、一回あたりに使うトークン数を増やしとく
↓ここ
max_tokens=2000
2000トークンに変更してある。
たくさんトークン使った方がいい感じに会話してくれる気がする。
ユーザーの質問を会話履歴に追加
これはあまり推奨されないかもしれないけど、やり取りの内容を覚えて欲しいので、履歴も保管する
その分トークン量は増えると思うので、お金がかかるけど、つっても、2円とか、そう言うレベル
自分で使うだけなら1,000円も使わないと思う。
ロールプレイのモデルをユーザーに入力させる
「あなたは誰です」のプロンプトの部分を、半強制的に指定させることで、アウトプットの精度を保つ
なくても全然うごく。
入力を受け付けたことを表示
これがないと、プロンプトを打ったあとの沈黙の時間が耐えられない。
送信後、 GPTが回答するまで、少し待つ時間があるので
「あれ?送信されてる?エンターおしたらいいんだよね?え?シフト+エンターだった?あれ?コマンド?」
ってなるから、ちゃんとプロンプトが送られたよってことを表示してもらう。
まとめ
今回は、ターミナルでPythonを動かして、chat GPTの APIを使って実際にプロンプトを送って回答をもらうところまで、ローカルの環境でやることができました。
もう、これでよいのでは?
俺専用chatGPTができたってことで、よいのでは?
もう勉強終わりでいい?
ダメ?
だめだよね?
うん
次回は、HelloWorldのウェブページと、このPythonのチャット GPTとの連携(ウェブページで入力したプロンプトを元に、チャット GPTから答えを返す)をやってみたいと思います。
一歩一歩進んでる!
快感、、、、
※※※※注意※※※※
この記事が気に入ったらサポートをしてみませんか?