def cross_product(a, b):
if type(a) not in (list, tuple) or type(b) not in (list, tuple):
raise ValueError("vector.type")
if len(a) != 3 or len(b) != 3 or any(type(x) is not int for x in (*a, *b)):
raise ValueError("vector.components")
x, y, z = a
u, v, w = b
return (y*w-z*v, z*u-x*w, x*v-y*u)| 適用前に確認 | 実際の動作を期待する結果と比較します。検証に失敗した場合は、次の変更を加える前に原因を調べてください。 |
|---|---|
| モデル | OpenAI互換またはAnthropicのエンドポイントを、ベースURLと必要なAPIキーで設定し、接続をテストします。ローカルのモデルサーバーは起動が必要です。リモートツールは別途データを送信する場合があります。 |
| プロジェクト | 平行ベクトル、基底の順序、大きな座標を試し、入力を変更せず長さの誤りと整数以外の成分を拒否してください。 |
def cross_product(a, b):
if type(a) not in (list, tuple) or type(b) not in (list, tuple):
raise ValueError("vector.type")
if len(a) != 3 or len(b) != 3 or any(type(x) is not int for x in (*a, *b)):
raise ValueError("vector.components")
x, y, z = a
u, v, w = b
return (y*w-z*v, z*u-x*w, x*v-y*u)編集前に向きに関する前提を明らかにする
VectorAnvilは、ソースの確認、コーディングの会話、接続モデルによる変更提案のためのWindows作業環境を開発者に提供します。数値コードでは、まずアプリケーションの他の部分が依存する規約を確認しましょう。正しそうな式でも、呼び出し元が出力を別の座標系で解釈するなら適切な変更にはなりません。
一つの作業例は、整数3成分のベクトルで右手系の外積を計算する処理のレビューです。呼び出し元と型の前提を会話に持ち込み、入力順序が結果にどう影響するか尋ねてください。両入力を変更せずに保つ必要があるかも明示します。数学の例を内蔵機能として扱わずに、具体的な保守課題をモデルに提示できます。
自分のプロジェクトで基底ベクトルと平行ベクトルのテストデータを使って提案を評価します。入力順序を逆にし、向きが明示した規約に従うか確認してください。データ型に関係するなら大きな座標も含め、不正な入力の拒否経路も調べます。処理自体と同じくらい注意深く呼び出し箇所の変更をレビューしましょう。
対応するOpenAI互換またはAnthropicのエンドポイントを通じてモデルを選択します。接続先がフィルターなしのAIモデルを提供していれば、VectorAnvilは必要な認証情報を使って対応接続を利用できます。応答の制約、ツール、コンテキストの上限は選んだモデルとサーバーが決めます。結果の採用基準は、引き続きプロジェクトの規約です。
ベクトルコードのレビューに関する質問
依頼にはどの規約を書くべきですか?
アプリケーションで使う座標の規約、期待する入力順序、成分の型を明示してください。既存の仕様に基づく既知の結果を一つ含めます。議論の基準ができ、向きを黙って反転させる提案を見つけやすくなります。
入力を入れ替えて比較するのはなぜですか?
この例では2つのベクトルを入れ替えると外積の向きが逆になるはずです。意味のある確認にするため、ゼロではない結果になるデータを使ってください。実際の規約は呼び出し時の引数順序で決まるので、呼び出しコードも確認しましょう。
平行なベクトルはエラーにすべきですか?
提案に方針を作らせるのではなく、アプリケーションの方針を説明してください。ゼロという結果が処理には有効でも、後で使う側に特別な扱いが必要な場合があります。その動作が変更対象なら、利用側も含めてください。
他の数値型にも対応を広げられますか?
受け付ける型と検証ケースを明示した、別の仕様変更として扱ってください。整数ベクトルの例から、アプリケーションに適切な浮動小数点やオーバーフローの動作が確立するわけではありません。実際の型をレビューし、関連するプロジェクトのチェックを実行しましょう。
VectorAnvil · 更新日 2026-10-25