【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


【無料】誰でも作れる Animated Drawings で手書き静止画が動き始める件

まず、絵を描きます。

以下からアップロードします。

👉 Animated Drawings hatena-bookmark

「NEXT」を押して進んでいきます。途中で、アクションを選んだり、簡単な調整ができます。

こんなのできました。



素晴らしすぎます。ほとんど絵を書いてアップロードするだけです。


👉 FAIR Animated Drawings: Home hatena-bookmark

Python です。GitHub で公開されています。

👉 facebookresearch/AnimatedDrawings: Code to accompany "A Method for Animating Children's Drawings of the Human Figure" hatena-bookmark


Android Studio Flamingo 🐦 で Retrofit が「r8 java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType」

はい、でました。


r8 java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType

開発環境が変化した時におこる minify / proguard まわりのエラーは面倒ですね😭

 

🐦 R8 full mode がデフォルトに

そのままで「R8 full mode」だそうです。

R8 full mode by default

The last behavior change: R8 is now in full mode by default, enabling app size reductions and performance improvement. You shouldn’t need to update anything for this change, but if you encounter build or runtime failures you should double-check that your keep rules are configured correctly. For guidance on how to configure the keep rules, see Shrink, obfuscate, and optimize your app.

👉 Shrink, obfuscate, and optimize your app  |  Android Studio  |  Android Developers hatena-bookmark
👉 5 ways to prepare your app build for Android Studio Flamingo release | by Boris Farber | Android Developers | Apr, 2023 | Medium hatena-bookmark

R8 がより強く広く効いて不具合を起こす、ってことか。

 

🐦 解決方法

以下を proguard-rules.pro に追加します。Retrofit 公式に載ってました。


# Keep generic signature of Call, Response (R8 full mode strips signatures from non-kept items). 
-keep,allowobfuscation,allowshrinking interface retrofit2.Call 
-keep,allowobfuscation,allowshrinking class retrofit2.Response 
  
# With R8 full mode generic signatures are stripped for classes that are not 
# kept. Suspend functions are wrapped in continuations where the type argument 
# is used. 
-keep,allowobfuscation,allowshrinking class kotlin.coroutines.Continuation

👉 After enable R8 full mode getting ParameterizedType error · Issue #3751 · square/retrofit hatena-bookmark

まずは、ひとつ解決できました。

いろいろありそうです、Flamingo。