【OpenAI】API「That model is currently overloaded with other requests. You can retry your request, or contact us through our help center at help.openai.com if the error persists.」

最近、頻繁に出てます。レスポンスボディ。


{
  "error": {
    "message": "That model is currently overloaded with other requests. You can retry your request, or contact us through our help center at help.openai.com if the error persists. (Please include the request ID XXXXXXXXXXXXXXXXXXXXX in your message.)",
    "type": "server_error",
    "param": null,
    "code": null
  }
}

エラーコードが null なので、API クライアントの実装によっては影響あるか。

こんなの出ました。

Expected string literal but 'null' literal was found at path: $.error.code
Use 'coerceInputValues = true' in 'Json {}` builder to coerce nulls to default values.

👉 Kotlin Serialization ガイド 第5章 JSONの機能 - Qiita hatena-bookmark

Error codes - OpenAI API
👉 Error codes - OpenAI API hatena-bookmark

レスポンスボディでなく、レスポンスヘッダーから見るべきか。

👉 Status code 503: That model is currently overloaded with other requests - API - OpenAI Developer Forum hatena-bookmark

一応、サーバーステータスのページでも確認するといいですね。

OpenAI Status

👉 OpenAI Status hatena-bookmark


【ChatGPT】Git comit message (コミットメッセージ) をサクッと簡単に作る macOS ショートカットと OPENAI プロンプト 🤖

Git のコミットメッセージに


- 英語で書くか日本語で書くか
- 絵文字を入れるか入れないか
- prefix を付けるか付けないか

という面倒な話はすべて解決します。

以下の動画のようなショートカットツールです。



 

🤖 プロンプト

ここがポイントです。


Create 10 git commit messages in English for the following changes in the following format. The emoji should be one of the github-shortcode characters that matches your changes.

Format: "emoji :github-shortcode: prefix:commit-message" 
Change Description: "アプリ起動時間のの短縮"

これをベースに会社や上司やプロジェクトの環境によって書き換えればいけます。


- 10
- English
- emoji
- shortcode
- prefix

ここらが変更対象の単語となるでしょう。

 

🤖 ChatGPT API

ChatGPT API を使うには課金登録して OPENAI_API_KEY が必要です。

macOS/iOS ショートカットアプリは、コンポーネントに


- WEB クライアント
- JSON パーサー

の機能を含む「Get Content of URL」という部品があらかじめ用意されています。

しかも、


- リクエストメソッド
- リクエストヘッダー
- リクエストボディ

を GUI からノーコードで設定できるので便利です。

 

🤖 ダウンロード

ショートカットは無料で公開できて、だれでもダウンロードして利用することがきます。


👉 Git Commit Message 😄 hatena-bookmark

[編集] から OPENAI_API_KEY を貼り付けると利用可能になります。

 

🤖 まとめ

ChatGPT API を使うには課金登録が必要ですが、この程度の利用ではいくらコミットしてもジュース1本分の金額には届きません。

実際に使いながら WEB API クライアントのプログラミング実装の基本を学ぶにも最適な教材になると思います。

今回は、厳格なプログラム作成に集中したあとに、ふんわりとしたコミットメッセージ作成はなんとなくつらく思えるので作ってみました。

この記事は、以下のプロジェクトのプロンプトにインスパイアされています。


    Refer to the provided git diff or code snippet and provide a suitable commit message.

    When reviewing the diff or code, focus on identifying the main purpose of the changes.
    Are they fixing a bug, adding a new feature, improving performance or readability, or something else?
    Use this information to craft a concise and detailed gitmoji commit message that clearly describes what the provided code or diff does.

    Describe the change to the best of your capabilities in one short sentence. Don't go into too much detail.

    When reviewing a diff, pay attention to the changed filenames and extract the context of the changes.
    This will help you create a more relevant and informative commit message.
    Here are some examples of how you can interpret some changed filenames:
      - Files or filepaths that reference testing are usually related to tests.
      - Markdown files are usually related to documentation.
      - Config file adjustments are usually related to configuration changes.

    Here is a list of gitmoji codes and their descriptions of what they mean when they are used: """
    ${gitmojis}
    """

    Try to match the generated message to a fitting emoji using its description from the provided list above.
    So go look in the descriptions and find the one that best matches the description.

    Always start your commit message with a gitmoji followed by the message starting with a capital letter.
    Never mention filenames or function names in the message.

    Don't do this:
      - :bug: Fix issue in calculateTotalPrice function
      - :zap: Improve performance of calculateTopProducts function
      - :lipstick: Refactor styling for calculateCartTotal function
      - :memo: Update documentation for getProductById function

    Do this:
      - :bug: Fix issue with shopping cart checkout process
      - :zap: Improve performance of search functionality
      - :lipstick: Refactor styling for product details page
      - :memo: Update documentation for API endpoints

    ${
      context
        ? `
          Refer to the provided additional context to assist you with choosing a correct gitmoji
          and constructing a good message: """
          ${context}
          """
        `
        : ''
    }

    Here is the provided git diff or code snippet: """
    ${prepareDiff(diff, minify)}
    """

👉 Generate your gitmoji commit message 👋 hatena-bookmark



プログラミング「ChatGPT にコーディングを依頼するだけ」は嘘?

こんな記事がありました。

👉 Jay Little - Software Obsessionist - Low Code Software Development Is A Lie hatena-bookmark

Sometimes a client falls into the trap of believing that there is some kind of silver bullet they can employ which will negate the inherent complexity around coding custom solutions. Nowadays the most cliche form of this is to say, "Well I'll just ask ChatGPT to code that for me". I call bullshit. While ChatGPT can handle some simple coding tasks, anything beyond that causes it to rapidly devolve into an unmanageable mess.

「コーディングの複雑さを解消する特効薬がある」という言葉を信じて罠に陥ることがあります。最近のこの決まり文句は「ChatGPT にコーディングを依頼するだけ」というものです。 私はデタラメだと思います。ChatGPT はいくつかの単純なコーディングタスクを処理できますが、その後急に、管理不能な混乱に陥ります。

Beyond the in vogue AI Chatbot example, there are a wide variety of other snake oil tools lingering about. All of them sell prospective buyers on the premise of allowing them to cut through the cruft and quickly pump out custom software without going through the years of training that professional Software Developers tend to go through. The most relevant example of this syndrome are so-called low code tools. As it so happens, I work with one of these at my current job.

流行りのAIチャットボットの他にも、様々なゴミツールが出回っています。これらはすべて、プロのソフトウェア開発者が経験するような長年のトレーニングを受けることなく、厄介なものを切り捨て、好みのソフトウェアを素早く作り出せるという前提で、購入希望者に売り込んでいます。この問題の最もよく見られる例は、いわゆるローコードツールです。たまたま、私は現在の職場でこのうちの1つを使用しています。

This low-code tool is called ***** and my review of it is that its a steaming pile of shit. I won't go into the technical specifics of why as that probably deserves it's own post. While it has enabled some non-developers to produce custom logic and screens, it hasn't actually removed the inherent complexity around designing proper data structures, writing fault tolerant software and validating the quality of the resulting software. Because a lot of the coders in question don't have this expertise, the end result is a custom software system that is poorly thought through, is brittle and as a result will require constant fire fighting on the part of the future members of the team in an effort to keep it functional.

このローコードツールは ***** というもので、私がみたところ、とんでもないクソの山です。その理由についての技術的な詳細については、ここでは触れません。非開発者でもロジックや画面を作成できるようになりましたが、適切なデータ構造の設計、耐障害性のあるソフトウェアの作成、出来上がったソフトウェアの品質の検証など、固有の複雑さを取り除くことはできません。多くのコーダーはこのような専門知識を持ち合わせていないため、最終的にソフトウェアは、十分に考え抜かれておらず、脆弱で、その結果、機能を維持するために未来のチームメンバーによる絶え間ない消火活動が必要となります。

I haven't even mentioned the best part: Tools like this aren't cheap and they tend to structure their licenses / billing so that you end up paying for as long as you use the software you produce with the tool. On top of which, all of these tools seem to involve accepting some level of vendor lock-in. So the more time you put into tools like these, the tighter their grip on your proverbial balls becomes.

一番大事なことは、このようなツールは安くはなく、ツールで作成したソフトウェアを使用する限り、最終的には、支払いが発生するような ライセンス/請求 の仕組みとなっています。その上、これらのツールはすべてベンダーロックインを受け入れなければならず、このようなツールに時間を費やすほどベンダーロックから抜けられなくなります。

In both the AI Chatbot and the Low Code tool scenarios, the solutions each promise a shortcut around the complexity as perceived by a non-practitioner. That's the essence of the trap. Practitioners know that the writing of the code is merely the last step in a long process that involves a lot of thinking, discussion and planning. The code is generally the end result and producing it is relatively easy once you truly understand the problem at hand.

AIチャットボットとローコードツールの両方で、各ソリューションは、非専門家の複雑さを回避する近道を約束しています。それが罠の本質です。開発者は、コードの記述が、多くの思考、議論、および計画を含む長いプロセスの最後のステップにすぎないことを知っています。コードは通常、最終結果であり、目前の問題を本当に理解していれば、それを作ることは比較的簡単なことです。

TLDR: Designing a solution worth a damn is actually the most difficult part of the software development process. Low Code tools lie to customers by implying that the writing of code is the hardest part. The reality is that No Low Code tool can spare you from having to take the time to properly design your custom software or the consequences you will experience when you build solutions around a half-ass design.

TLDR:価値のあるソリューションを設計することは、実はソフトウェア開発プロセスの中で最も難しい部分です。ローコードツールは、コードを書くことが最も難しい部分であるかのように、顧客に嘘をついています。現実には、どんなローコードツールも、ソフトウェアを適切に設計するための時間や、中途半端な設計でソリューションを構築したときの結末から逃げることはできません。

 

🤔 この意見についてどう思うか ChatGPT に聞いて見た

この意見についてあなたはどう思いますか。関西弁で答えて。

めっちゃ同感やわ。コーディングの複雑さを解消する特効薬があると思ったら大間違いやで。そんなもんあったら、開発者はみんなそれを使って楽々コーディングやろうて思うてるわ。AIチャットボットやローコードツールなんか、一部の単純なタスクをこなすのには使えるやろうけど、それだけや。複雑なタスクをやるには、経験や専門知識、センスが必要なんや。ローコードツールを使っても、適切なデータ構造の設計や品質検証など、ソフトウェア開発の複雑さは取り除けへん。プロの開発者に頼るべきやな。

めっちゃ大事なことは、この手のツールは高くて、ツールで作ったソフトをつかう限り、最終的には、支払わなあかんライセンスか請求のシステムになってるねん。それだけやなくて、全部のツールはベンダーロックインを受け入れなあかんから、この手のツールに時間を使うほど、ベンダーロックから抜け出せなくなることもあるで。

AIチャットボットとローコードツールは、どっちも非専門家でも使いやすいっていうのが売りやけど、それが落とし穴なんよ。開発者たちは、コード書くのは思考や議論、計画が必要な長いプロセスの最後のステップってことを知っとる。コードは普通、最終的な結果であって、問題を本当に理解してたら、それを作ることは比較的簡単なんやで。

要するに、簡単にソリューションを作ることはできへんってことや。どんなローコードツールでも、適切にソフトを設計するための時間や、中途半端な設計から逃げられへんのや。そんなことを顧客に嘘をついて、コード書くのは難しいとか言ってるんや。

 

🤔 まとめ

それを3行にして

1. 特効薬でコーディングが楽になるというのは誤解やで。
2. AIチャットボットやローコードツールは一部のタスクにしか使えへん。
3. 開発には経験や専門知識が必要や。

ナニワ金融道ぽくてワロタ。