import math
def image_candidate(candidates, width, ratio):
if type(width) is not int or not 1 <= width <= 10000 or type(ratio) not in (int, float) or not 0.25 <= ratio <= 8 or not math.isfinite(ratio):
raise ValueError("image.viewport")
if type(candidates) is not list or not 1 <= len(candidates) <= 64:
raise ValueError("image.candidates")
sizes, seen = [], set()
for pair in candidates:
if type(pair) not in (list, tuple) or len(pair) != 2:
raise ValueError("image.pair")
url, pixels = pair
if type(url) is not str or not 1 <= len(url) <= 2048 or any(ord(c) < 32 or ord(c) == 127 for c in url):
raise ValueError("image.url")
if type(pixels) is not int or not 1 <= pixels <= 100000 or pixels in seen:
raise ValueError("image.size")
seen.add(pixels)
sizes.append((pixels, url))
sizes.sort()
target = width*ratio
return next((url for pixels, url in sizes if pixels >= target), sizes[-1][1])
- プロジェクト
- 閾値との一致と最大候補へのフォールバックを試し、選んだURLを取得せずに幅の重複や不正な数値を拒否します。
- 適用前に確認
- 実際の動作を期待する結果と比較します。検証に失敗した場合は、次の変更を加える前に原因を調べてください。
- モデル
- OpenAI互換またはAnthropicのエンドポイントを、ベースURLと必要なAPIキーで設定し、接続をテストします。ローカルのモデルサーバーは起動が必要です。リモートツールは別途データを送信する場合があります。
import math
def image_candidate(candidates, width, ratio):
if type(width) is not int or not 1 <= width <= 10000 or type(ratio) not in (int, float) or not 0.25 <= ratio <= 8 or not math.isfinite(ratio):
raise ValueError("image.viewport")
if type(candidates) is not list or not 1 <= len(candidates) <= 64:
raise ValueError("image.candidates")
sizes, seen = [], set()
for pair in candidates:
if type(pair) not in (list, tuple) or len(pair) != 2:
raise ValueError("image.pair")
url, pixels = pair
if type(url) is not str or not 1 <= len(url) <= 2048 or any(ord(c) < 32 or ord(c) == 127 for c in url):
raise ValueError("image.url")
if type(pixels) is not int or not 1 <= pixels <= 100000 or pixels in seen:
raise ValueError("image.size")
seen.add(pixels)
sizes.append((pixels, url))
sizes.sort()
target = width*ratio
return next((url for pixels, url in sizes if pixels >= target), sizes[-1][1])
選ばれた画像を要件までさかのぼる
予想外の画像URLは、素材の破損ではなく選択ロジックが原因のことがあります。PixelVerandaはその調査のためのWindows向けAIコーディング環境です。プロジェクトを開き、変更案の前に候補データ、ビューポート入力、選択URLを使う呼び出し側を接続したモデルに調べてもらいます。実際の選択と期待する選択を含めてください。
具体例として、要求する表示幅とピクセル比を満たす最初の画像を選ぶコードをレビューできます。十分に大きい候補がない場合の動作と、候補が整列して渡されるかを指定してください。都合のよい入力順に頼らず判断を明示する提案を求めます。
正確なURLの期待値で修正を確認します。幅のしきい値付近、代替選択の境界、不正な候補データでプロジェクトのテストを実行してください。ビューポート情報の取得と拒否処理を調べ、影響するページを自分で操作します。URL選択は画像配信の一部分であり、それだけで最終表示画像が全要件を満たすという意味の提案にしてはいけません。
PixelVerandaはOpenAI互換またはAnthropicのエンドポイント接続に対応します。サービスで利用可能なら無検閲AIモデルを選べますが、コンテキスト、制限、ツールは設定に依存します。選択要件を会話に残し、アプリケーションの結果で修正案を判断してください。
画像選択の変更をレビューする
誤った候補を説明するにはどの証拠が役立ちますか?
候補の幅とURL、要求する表示幅、ピクセル比、期待する選択を示し、それらを供給するコードも含めてください。選択ロジックと、誤った測定値や不十分な候補データを区別できます。
候補が整列していると仮定すべきですか?
入力仕様が順序を保証し、呼び出し側が守る場合だけです。リストの出所を調べてもらってください。保証されないなら未整列の例をテストし、修正で追加する並べ替えをレビューします。
十分に大きい候補がない場合は?
利用可能な最大候補の選択やエラー報告など、代替方針を明示し、そのケースをプロジェクトで検証してください。一つの分岐が書きやすいという理由だけでモデルに方針を選ばせてはいけません。
URLを選べばブラウザーでの配信品質も確認できますか?
いいえ。関数の戻り値だけでなく実際のページも検証してください。選択後にレイアウト、測定、素材の可用性が影響します。厳密なロジックには関数のテスト例、利用者が見る結果にはアプリケーションの検証を使います。
PixelVeranda · 更新日 2026-10-25