@thorikiriのてょりっき

@thorikiriの技術ネタや本を読んだブログです

Geminiを用いたAI駆動開発(1)

※この本文はGeminiに書かせています。記載内容はおおむね事実と思われますが、誤りが含まれている可能性が大きいです。

Geminiを用いたAI駆動開発(1)

最近、Gemini APIを用いて、個人のテキストアウトプットにおけるワークフローの自動化を試作している。 動機は、特定の外部プラットフォームに蓄積された非構造化データを、独自の文脈や定義済みのスキーマに基づいて再構成するプロセスの工数を削減したかったからである。

プロンプトエンジニアリングの限界とシステム化の必要性

当初はGeminiのチャットUIを介して、データの整形とドラフトの生成を試みた。しかし、単発のプロンプトでは、出力される内容が一般的なモデルの平均値に収束してしまい、過去の自身の記述が持つ論理構成や情報の重み付けといった「コンテキスト」を再現することが困難であった。

汎用的な指示だけでは、特定のドメインにおける記述の「精度」を担保できない。

この課題を解決するためには、単なるプロンプトの調整ではなく、自身の過去のテキスト資産を構造化データとして保持し、それをAIのコンテキストに動的に注入する「仕組み」が必要であるとの結論に至った。

システム構成と技術的アプローチ

今回、技術検証を兼ねて以下の機能を備えたプロトタイプを構築している。

  • データインジェクション: 過去の膨大なテキストデータ(MT形式等)をパースし、検索可能な状態でDBに格納。
  • 構造化パイプライン: 外部URLから取得したHTMLなどの非構造化データをGemini APIに渡し、あらかじめ定義したJSONスキーマに変換・抽出。
  • コンテキスト注入: 抽出されたデータと、DBから検索された過去の思考パターンを組み合わせ、特定の出力形式に最適化されたプロンプトを生成。

技術スタック

本プロジェクトでは、開発スピードとポータビリティを重視し、以下の構成を選択した。

  • Framework: Nuxt 3 (Nitroを用いたサーバーサイドロジックの構築)
  • Database: SQLite + Drizzle ORM (スキーマ管理と型安全性の両立)
  • AI: Gemini API (1.5 Pro)

今後の展望:AI駆動開発(AIDD)の実践

本システムの開発プロセス自体も、Geminiと対話しながら進めている。 具体的には、抽象化のレイヤー設計や、Drizzleのスキーマ定義、あるいは正規表現によるパーサーの実装などにおいて、AIを単なる補完ツールではなく、設計の意思決定を支援するパートナーとして配置している。

この「AIと共にある開発プロセス」をAI駆動開発(AIDD)と定義し、どこまで設計の抽象度を保ちつつ自動化の精度を上げられるか、引き続き検証を進めたい。

まずは、データの構造化パイプラインの安定稼働が当面の課題である。