ChatGPTを使うとPythonでプログラミングするときに役立ちます。
「Chatgptとは」(Chatgptに聞いた答えを書いておきます)
ChatGPTは、OpenAIによって訓練された大規模な言語モデルです。このモデルは、自然言語処理タスクに使用され、文章の生成、翻訳、質問応答などを行うことができます。
というようにかなりまともな答えが返ってきます。(私は何言ってるか理解できませんが)
追記:
「Vプリカ ChatGPT」みたいなワードで検索してこちらに来た方は、VプリカでChatGPTが支払えるかの情報は、こちらの記事では分かりません。Googleが勝手に結びつけています。すいません。
またコードインタープリター等、有料向け機能のはなしはないです。私、クレカ登録してないので無料機能しか使っていません。Youtubeでいくつか使用例を見ましたが、確かに便利です。しかし細かい修正や意図を伝えるのが大変ではないかと思いました。出てきたコードをPythonが実行できる環境にコピペして自分で修正する感じになりそうです。となるとChatGpt3.5に聞いて自分で修正するのと変わらないからいいやと、お金がない私は自分に言い聞かせています😂。OCRや文字お越しなどもGoogleドキュメント、Windows搭載の音声入力機能なでで出てきたものをChatGpt無料版にコピペして処理したものをPythonにコピペするなど手間はかかりますが、できないことはないです。AIを活用しつつ、AIに全面的に頼るのではなく、いろいろな手段を身に着けていた方が、結局は効率が上がるのではないかなと思っています。
Googleで検索するより、ものによっては早く探したいものを見つけられます。プログラミング全般にGoogle検索より、まずはこっち使ったほうがいいと思います。Pythonで困ったことを実際に聞いた質問とChatGptの答えを紹介します。すごい便利でおすすめです。ただ過剰な期待は禁物!知りたいことによっては数分後に結局ググっていると思います。なんとなく答えがわかってることを確認するのに使えると思います。全く知らないことを質問して妄信して突き進むとドツボにはまるかも。エラーの原因とか聞く場合は自分で考えながら質問するといい答えが返ってきます。
ChatGPT
登録は無料(2023/1/27現在、いつかは有料になる?)。登録方法はChatGPTのHPにアクセスしたらTryChatGPTをクリック→Signupを押してあとは、よくある登録方法です。私はメールで登録しました。メール登録の場合SMSの確認があります。電話番号入力で+81のあとに090-****-****の場合は、最初の0を取って9から入力します。
混んでいると「chatgpt is at capacity right now」「ChatGPT is currently down」と表示される。間をおいてアクセスするとつながります。ちなみに詳細忘れたので「ChatGPTの登録方法」をChatGPTに聞いたら、APIキーがどうのこうのとか答えてきました。OpenAIのAPIの登録のはなしで聞きたかったことではなかったです。これ以上突っ込んでもらちがあかなそうです。どうやら学習しているデータは2021年までのものなので、それ以降のことは答えられないらしい。結局Google頼み😢
質問するときは先にメモ帳で作って貼り付け
入力中にEnterすると返答しだすのでShift+Enterを使うか、先に質問を作って張り付けるのがコツ。うまく聞けばかなりいい答えが返ってきます。「下のコードで~を教えてください。(実際のコード貼り付ける)」というのをメモ帳で作って張り付ける聞き方もできます。勢い余って個人情報や重要なコードを書かないように注意してください!
具体的質問と答え
Google検索で調べようと思ったことをChatGPTで質問してみました。コードも教えてくれます。
質問:pythonの正規表現を使って文字列の先頭の数字を抽出する方法は
Chatgptの答え:Pythonで文字列の先頭の数字を抽出するには、正規表現を使った文字列操作が便利です。具体的には、次のように re
モジュールを使用します。
import re
# 文字列
text = "12abc34def56ghi78jkl90"
# 正規表現で先頭の数字を抽出
match = re.match(r'\d+', text)
# match.group()で抽出した文字列を取得
print(match.group()) # "12"
質問:pythonのリスト内の文字にインデックスを追加する方法
Chatgptの答え:Pythonでリスト内の文字にインデックスを追加するには、enumerate関数を使用します。以下に使用例を示します。
# リストの作成
words = ['cat', 'dog', 'bird']
# enumerate関数を使用して、インデックスを追加
for index, word in enumerate(words):
print(index, word)
実行結果
0 cat
1 dog
2 bird
質問:pythonのリストの中身の文字列をint型に変える方法
ChatGptの答え:1.map()関数を使用する:
numbers = list(map(int, my_list))
2.リスト内包表記を使用する:
numbers = [int(i) for i in my_list]
あと2つ回答がありましたが略
質問:pythonの正規表現で行の先頭にある特定の文字列を抽出する方法
ChatGPT:Pythonの正規表現で行の先頭にある特定の文字列を抽出するには、「^」記号を使用します。 例えば、文字列「example text」から行の先頭に「ex」という文字列を抽出する場合は、以下のように記述します。
import re
text = "example text"
match = re.search("^ex", text)
if match:
print(match.group())
このコードでは、「^ex」という正規表現を使用して、「example text」の中から行の先頭に「ex」という文字列を抽出し、その結果を表示しています。
Google検索だと、ここまでたどり着くまで、ああでもないこうでもないとサンプルコードを実験しながら答えにたどり着くまでにかなり時間がかかるが、ChatGPTだとあっという間だった。丸ごとお任せでエラーとかを、これ使って出てきた答え信じてたらハマりそうな予感する。多分まともな答えは返ってこない。使いどころを判断して使えば、かなり便利だと思います。
上記の質問は、下の記事で作ったStreamlit側の処理で主に私が苦手な正規表現をChatGPTに聞いて利用しました。
かつて困った質問をしてみた
質問:CORS対策したDjangoでPOSTではプリフライトが飛ぶのはなぜですか
ChatGPT:CORS (Cross-Origin Resource Sharing) は、Webブラウザーが外部のドメインからのリソース(APIなど)アクセスを許可するためのセキュリティポリシーです。DjangoでCORS対策をした場合でも、POSTリクエストでは常にプリフライトリクエストが飛ぶ理由は、POSTリクエストは安全性が高いために、ブラウザーは事前にサーバーからアクセス許可を確認することを要求します。これは、CORSのセキュリティポリシーに基づいています。
質問:POSTで飛ばないようにするにはどうすればいいですか
ChatGPT:POSTリクエストでのCORSプリフライトリクエストを回避するには以下の方法があります:
答えは省略
うーん、わからん!それらしい答えは返ってくるものの実際どうすればいいのかわからん!質問が悪いと言われるかもしれませんが的確な質問ができる人は答えがわかっていると思うので、そもそもChatGPTに聞かないと思います。結局、勉強しないとダメなのは今後も同じ世の中だと思います。
目次へ
プログラミングの勉強で使えるか?
苦手な正規表現で少し勉強してみたが教えられたコードで動かしてもエラーが出る。プログラムの実行結果まで答えるが、実際に動かすとそうならないこともよくある。問い詰めたり、解説してくださいとやっていくと、まあまあ使える感じだが。やはり自信満々に間違ったこと言ってくるので、なかなか先に進まないしGoogleに聞きたくなる。プログラミングは実行すれば間違ったこと言ってるか、すぐ判断できるが、他の分野で、これで何かを教えてもらおうとするのは、どうなんでしょうか。
感想(ここの文章を、あとでChatGPTに要約してもらいます)
以下は次の章と整合性を取るため最初(2023/1/27)に書いたことを、そのまま残しています。なので間違っていることや、今、私が思っていることと違う内容が書かれています。
持ち上げたり、けなしたりの内容でしたが、結論としては用途によってはすごく便利。Pythonを勉強しなくてもいいかと言えば、そうではない。使う場面に適した質問文は、ある程度知らないと作れない。また答えをそのまま信じて使っていると結局ハマると思う。ひたすらChatGPTに質問しても解決しないことのほうが多いんじゃないかな。Google検索的な使い方で決して丸投げできるものではないと思う。
これいつまで無料でつかえるのか?ChatGPTのAPI(アプリに組み込んで使うもの)が有料で公開されるらしいが、そのお金で運営していってくれたらな~。でも無料のこっちがのこっていたら、みんなこっち来ちゃうから、API買う人にうまみがなくなって売れなくなる。どこかの段階で無料じゃなくなるのか?Googleみたいに画面に広告いっぱい貼りだすのか?マイクロソフトの検索のBingになるのか?検索ツールは激動の予感。しかし世の中的には特に激変は起こらないし、いつものごとくすぐ飽きられると思います。あのピコピコ出てくるから興味引くけど、一気に全文ドカンと出たら面倒くさくて読まないと思う。結局あまり聞きたいことがない。このブログもここまで読んでいる人はいないと思うが、ピコピコ表示するブログ作ろうかな~。
Pythonと関係ないがブログで何でもかんでもChatGPTに聞いた答えを張り付けて書いてたら多分Google検索の順位は下がるだろうな~と思った。でも投稿2日後の2023/1/29確認したら「python chatgpt」で検索すると5位以内に入っていた。まあすぐ陥落するだろう。
ついでに言っておくと私のブログ、広告収益月2千円ぐらい、下の収益源は1年前に初めて0円です。新しい技術が出てくると置いて行かれるのではないかと焦りを感じる人もいるかもしれませんが、世の中そんなにあまくはないことは実感してます。巨大IT企業もどっかの一人勝ちみたいなことはおこらないのではないかと妄想します。ただPythonは、いろんなことができるので趣味で始めることをおすすめします!
上の文章をChatGPTにわかりやすくしてもらった。
文章が苦手なのでChatGPTに上の「感想」を以下の質問の下に張り付けて聞いてみた。
質問:以下の文章をわかりやすく書き直してください。
(「感想」をコピペした。)
ChatGPT:「用途によっては便利なのに、Pythonの知識がないと使い方に困ることがある。ChatGPTに質問しても、常に正しい答えが得られないと思う。Google検索的に使うと上手くいかないかもしれない。ChatGPTのAPIは有料になるかもしれないが、無料だとAPIを買わない人が多くなり売れなくなるかもしれない。また、広告などを貼ってお金を稼ぐかもしれない。いずれにしても、すぐに飽きられるものにはならないと思われる。」
うーん、わからん!最後の1文、捻じ曲げてきたような・・・・
ポジティブにとらえれば、ちゃんと伝わる文章を書きましょうということ。
やはり結論は今後も勉強しないとダメってことです。
「感想」でふれた0円の収益源
↓↓
この記事を書いたイチゲを応援する
Vプリカでのお支払いがおすすめです。
MENTAやってます(ichige)
目次へ
Bingが新しくなったので試しました。
マイクロソフトがOpenAIに巨額投資したというニュースから期待して同じ質問してみました。
「pythonの正規表現を使って文字列の先頭の数字を抽出する方法は」と聞いたら
普通にGoogle検索みたいな検索結果が出てきました。
右に小さくAIチャットとあった。こっちかと思ってクリックして、質問したら返ってきた来た答えが
「わかんないけどばんめもみたい!!!」
君は、りんなちゃんというのか、聞いたおじさんがいけないね😢
さらに「順番待ちリストに参加」って何やねんと思いながら押してしまった。
よくある質問に以下が書いてあった。要するにまだ始まってないのか?
新しい Bing にアクセスにはどうすればいいですか?
アクセスを要求するには、[順番待ちリストに参加する] を選択します。順番待ちリストをクリアすると、Bing.com で新しい Bing にアクセスできることを知らせるメールが届きます。その後、通常の検索ボックスに入力を開始できます。新しい Bing は、検索結果の上部にあるチャット エクスペリエンスでも利用できます。
引用 https://www.bing.com/new?form=MD1A0E&OCID=MD1A0E
使用例の「コーディングを助けてほしいです。」をクリックするとChatGPT風の答え(コードも出る)と、今までのリスト形式の検索結果が同時に出る(これはChatGPTにはない)2023/02/12現在はオリジナルの先ほどの質問をしても、さっきと同じでChatGPT風の回答はない。ChatGPT風なのかChatGPTそのものなのかは不明。料金については送られてきたメールに何も書いてないから多分、今のところは無料なのだろう。
2023/2/14メールがきたのでbingにアクセスしたら「参加しました。新しいBingへようこそ。」となりました。しかし質問を書く欄が表示されません。何かサンプルの質問を押してページを移動しアドレスバーに質問を入れると動きます。早速、上で何度もしている質問してみました。
質問:「pythonの正規表現を使って文字列の先頭の数字を抽出する方法は
Bing:こんにちは、これはBingです。😊文字列の先頭の数字を抽出する方法は、正規表現を使うことができます。Pythonでは、reモジュールをインポートして、re.match関数を使って、文字列の先頭にマッチするパターンを指定します。例えば、以下のようなコードで、文字列の先頭の数字を取り出すことができます12。
import re
s = "123abc456def"
m = re.match("\d+", s) # \d+は1文字以上の数字にマッチする
if m: # マッチした場合
print(m.group()) # マッチした文字列を表示
else: # マッチしなかった場合
print("No match")
このコードを実行すると、以下のように出力されます。
123
もし、文字列の先頭に数字がない場合は、No matchと出力されます。
ちゃんと動く回答でした。答えは画面右側に表示され、中央部分は普通の検索結果のリストがでます。メールが英語だったので、「訳して」の後に英文貼り付けたら翻訳してくれました。
さらに「チャットしましょう」をクリックするとChatGPTみたいな画面になり、そのままチャットが続けられます。
1番簡単な方法は、適当な文を選択して右クリックすると「”****”についてはサイドバーでBingを検索してください」をクリック→サイドバーにBingの検索結果がでます。右上に「新しいタブでリンクを開く」アイコンがあります。それをクリックする。→検索結果が全面で表示されます。検索バーの下にある「チャット」をクリックするとチャットが始められます。
あれ、りんなちゃんは?リストラか。
Bingのチャットの答えに小さい数字123というのがあり、それをクリックすると答えと関連のあるHPが表示されます。これも便利だけど、ちょっと違うときもある。手掛かりはえられるので最後はGoogle検索。
BingとGoogleの併用が1番いいかなと思います。
かなり流動的です。ニュースがどんどん出てきます。このくらい無料で使えるのが続いてくれればありがたいです。1日の上限に達したらChatGPTを使えばいいし。
Microsoft、「新しいBing」でのチャットは1回につき5問答まで、1日50チャットまでに制限
2023/4/8 今はEdgeの右上にBingのロゴがあるので、それをクリックすればチャットできます。
詳細は以下の記事参照
ChatGPT月額20ドルで有料プランが始まった。無料プランもある。
2023/02/12 ChatGPTにログインすると以下のメッセージ
ChatGPT Plus is available in Japan
月額20ドルで有料版が始まったようです。
learn moreをクリックするとYour Account Free Plan となっていて私が現在、無料プランであることがわかります。また以下の説明が書いてありました。
Available when demand is low
Standard response speed
Regular model updates
ChatGPT Plus$20/moのほうは
Available even when demand is high
Faster response speed
Priority access to new features
違いは混んでいるときの待たされる時間、応答スピード、新しい機能(モデル)の更新が違う。
有料版がある以上、全然つながらないとか遅すぎるなど無料版のハンディは当然あるはずです。
無料版でも取り合えず使えそうでよかったです。でもBingも同じなのか分かりませんが、使ってみると同じ感じがします。個人的にはBingより、こっちのほうが使いやすいかも。
Google Bardも出た
まとめ
AI全般的な個人的意見ですが、過度な期待をせず自分なりの利用法をみつけるのがベストだと思います。
私は今のところ
- プログラムコードの調べ物はBingまたはChatGPTで質問、実際に動かすと聞き方の問題もあるが採用できるのは50%ぐらいかな。
- プログラム以外の調べ物はBingにとりあえず聞いてみる。(新しい使用法など発見できるかもしれないので)答えとして採用するのはGoogleで検索したもの。
- ブログ記事は自分で書く。(Bingの「作成」は下書きとして利用できる部分はあるが、私の書きたいことと違うと感じるのでほぼ使わない。)「チャット」の利用方法として自分で表現に困ったとき、思いついた文章を以下のようにChatGPTに添削してもらって修正したりしています。私の元の文章がよくないので主旨が変わってしまった答えが返ってくることも多いですが。
最初に考えた文章
「この辺もいろいろ試すと、これは使えるという方法が自分なりに見つけられるかもしれません。」
ChatGPTに正しい表現に直してほしいと聞いたら答えてきた文章
「自分でいろいろ試してみることで、自分に合った方法を見つけることができるかもしれない、という意味です。」
ChatGPTの答えを取り入れて最終的に私が採用した文章
「自分でいろいろ試してみることで、自分に合った方法を見つけることができるかもしれません。」
コメント