見出し画像

AI.プロンプトベースのシステム:本質的な課題が浮き彫りになっています

壁にぶち当たりました。
私とClaudeの会話
Me:
先ほどは出来ていたので、それを確実に実装するプロンプトが欲しいのです。プロンプト文章をそちらから出してもらい、1からそれを実行しても先ほど正常に出力されていた結果が得られなくなります。限界か。
Claude:
はい、おっしゃる通りです。これは非常に重要な気づきですね。プロンプトベースのシステムの本質的な課題が浮き彫りになっています:

プロンプトの限界

  1. 再現性の問題

  • 同じプロンプトでも、実行のたびに微妙に異なる実装が生成される

  • 特にクリップボード操作のような繊細な機能では、この違いが動作の成否を分ける

  1. プロンプト設計の限界

  • 「正しく動いた実装」をプロンプトの形で完全に捕捉・再現することが難しい

  • 実装の細部まで確実にコントロールするレベルのプロンプト記述は現実的でない

  1. ベストプラクティス
    このような状況での現実的なアプローチとしては:

  • 基本的なコンポーネント構造はプロンプトで生成

  • クリップボード操作などの繊細な機能は、人間が手動でテストされた実装を追加

  • または、そのような機能は別のライブラリに切り出して管理

これは良い学びになりました。プロンプトベースの開発において、どこまでをAIに任せ、どこからを人間が担当するべきか、その境界線の一例が見えたと思います。

経緯

先日から複数の請求書.pdfをバインドしてcsvに落とし込み会社の基幹システムに原価入力するというプロジェクトに取り組んでいます。

目標としている手順

1)pdfで届く一定フォーマットの請求書をClaudeで表形式に指定した情報だけを抽出(これは今のところ正常にできている。3か月間ほぼ99~100%正常出力の実績がある)
2)それをvbaを仕込んだxlsmにインポート(ここはClaudeMCPか...)
3)vbaを実行して基幹システムにSQLでインポートし伝票発行ナンバー取得までを行う。(これは今の基幹システムを導入したシステム会社に有料で依頼中)
4)取得した伝票発行ナンバーを基幹システムに入力して伝票発行>経理へ

現状

現状の動作はClaudeの右側にプレビューさせ確認後にタブ区切りでテキストをコピーしエクセルシートに移している。がコピーが正常に機能したりしなかったりして不安定。この不安定さをプロンプトで解決しようとClaudeに指令を出す事10回以上、しかし現状断念した。

プロンプト

# PDF処理用の追加手順

## PDFの処理方法
1. PDFの各ページから以下の情報を特定の位置から抽出します:
   - 右上の日付(「令和X年XX月XX日」形式)
   - 「品名」欄の情報(「XXXXXX 商品名」形式、XXXXXXは6桁の受注番号)
   - 合計金額(「合計」欄の数値)
   - 製品の部数(上部の数量欄)

2. PDF内の要素の位置:
   - 日付:右上(ヘッダー部分)
   - 品名:上部の「品名:」の後
   - 金額:下部の「合計」行
   - 部数:上部の数量列

3. データの整形規則:
   - 受注番号:品名の先頭6桁を抽出(数字のみ)
   - 品名:受注番号を除いた残りの文字列
   - 部数:数値の後に「部」を付加
   - 金額:3桁ごとにカンマを挿入

## エラーハンドリング
- PDF解析でエラーが発生した場合は、エラーの発生箇所と原因を報告
- データの欠損や不明確な場合は、人間のオペレーターに確認を依頼
- 異常なデータ(極端に大きな数値など)を検出した場合は警告を表示

## 出力形式と実装仕様
1. 基本レイアウト
```js
<Card className="w-full">
  <CardHeader>
    <CardTitle>月次注文一覧表</CardTitle>
    <Button>タブ区切りテキストをコピー</Button>
  </CardHeader>
  <CardContent>
    <table>
      <thead>
        <tr>
          <th>受注番号</th>
          <th>品名 部数</th>
          <th>金額(円)</th>
          <th>日付</th>
        </tr>
      </thead>
      <tbody>
        {/* ここにデータを展開 */}
      </tbody>
    </table>
  </CardContent>
</Card>
```

2. コンポーネントの実装要件:
   - 最大幅4xl、白背景、影付き、角丸のカードデザイン
   - テーブルは横スクロール可能で、金額列のみ右寄せ
   - コピーボタンクリック時:
     - TSV形式でクリップボードにコピー
     - ボタンテキストを「コピーしました」に変更
     - 背景色を青から緑に変更(2秒後に元に戻る)
   - 受注番号が存在しない場合は空欄で表示
   - useStateフックとTailwind CSSを使用して実装

3. 初期表示用サンプルデータ:
   - 195034 ちいかわレストラン ランチョンマット 51,000331,025円
   - 195642 エオルゼアカフェ アルカディアイベントランチョンマット 1,50051,725円
   - [空欄] スクエニカフェ SAGA ランチョンマット 前期62,00487,250

いいなと思ったら応援しよう!