見出し画像

【実践】Claude CodeでAIライティングツールを構築し、このnote記事を書いてみた全プロセス

リード文

AIが文章を書く時代。私自身もその波に乗り、ついにAIライティングツールの自作に挑戦しました。しかも、驚くべきことに、そのツールを使って今あなたが読んでいるこの記事を執筆!「AIってどこまでできるの?」そんな疑問を抱えつつ、今回は、Claude Codeを核に、Python、Streamlit、そしてGemini APIを駆使してAIライティングツールを開発し、実際にnote記事を作成するまでの全プロセスを、実践者の視点から解説します。#AIとはじめてみた タグに興味がある方、AIの可能性を肌で感じたい方は、ぜひ最後までお読みください。
(これは鴨さんが DMM生成AIcampで学んで実践して作成したものです)

本文

1. なぜAIライティングツールを自作しようと思ったのか?

近年のAI技術の進化は目覚ましく、ChatGPTをはじめとする生成AIが日常に浸透してきました。私自身も日頃からAIを活用していますが、汎用ツールでは手の届かない「自分専用」のニーズを感じていました。特にnote記事の執筆において、アイデア出しから構成作成、下書き生成までを一貫してサポートしてくれるツールがあれば、執筆効率は劇的に向上するはず。

また、「#AIとはじめてみた」というハッシュタグに代表されるように、AI技術を「使う」だけでなく「作ってみる」ことへの関心が高まっています。AIを開発するプロセスを通じて、その仕組みや限界をより深く理解したいという探求心も、今回の挑戦の大きな動機となりました。

2. AIライティングツール作成の全体像と使用技術

今回開発したAIライティングツールは、ユーザーが入力したテーマに基づき、note記事のタイトル案、構成案、そして本文の草稿を生成することを目的としています。

このツールを開発するために採用した主要な技術スタックは以下の通りです。

  • AIモデル: Googleの高性能な大規模言語モデル「Gemini API

    • 自然言語処理能力を記事生成に活用します。

  • プログラミング言語: AI開発のデファクトスタンダード「Python

    • Gemini APIの呼び出し、データの処理など、ツールの中核を担います。

  • ユーザーインターフェース (UI): Pythonで手軽にWebアプリが作れる「Streamlit

    • テーマ入力フォームや生成結果の表示など、直感的な操作を実現します。

  • 開発アシスタント: プロンプト生成からコード生成までサポートする「Claude Code

    • 今回のキモ。効率的なプロンプト設計やPythonコードの記述を強力にアシストしてもらいました。

全体像としては、Streamlitで構築したWeb UIからテーマが入力され、PythonスクリプトがGemini APIを呼び出してコンテンツを生成。その結果が再びStreamlitを通じてユーザーに表示される、という流れです。

3. ステップ1: 企画・設計 — Claude Codeで青写真を引く

開発を始める前に、まずはツールの要件とアウトプットのイメージを明確にする必要があります。ここで大活躍したのがClaude Codeです。

  1. 要件定義とプロンプト設計の相談: 「note記事のタイトル案、構成案、本文の草稿を生成するAIツールを作りたいんだけど、Gemini APIに投げるプロンプトのテンプレートを考えてくれる?」とClaude Codeに相談。すると、以下のような具体的な要素を含むプロンプトの構成案を提案してくれました。

    • 役割の指定(「あなたはnote専門のAIライターです」)

    • 出力形式の指定(マークダウン、見出し、箇条書きなど)

    • 具体的な指示(文字数目安、トーン、ターゲット読者など)

    • 禁止事項(ファクトチェックの推奨、断定的な表現の回避など)

  2. Pythonコードの骨格作成: さらに、「PythonでGemini APIを呼び出して、StreamlitでWeb UIを作る基本的なコードを書いて」と依頼。Claude Codeは、必要なライブラリのインポートから、APIキーの設定、Gemini APIの呼び出し方、Streamlitでの入力フォームとボタン、出力表示までの基本的なコードスニペットを生成してくれました。これにより、開発の初期段階で迷うことなく、効率的にスタートを切ることができました。

4. ステップ2: 開発フェーズ — PythonとStreamlitで実装

Claude Codeが用意してくれた青写真とコードの骨格をもとに、いよいよ実装に入ります。

  1. Gemini APIのセットアップと呼び出し: Google AI StudioでAPIキーを取得し、Pythonのgoogle.generativeaiライブラリを使ってGemini APIに接続。Claude Codeが生成したプロンプトをPythonのf-stringなどで整形し、Geminiモデルに送信する関数を作成しました。

    1. import google.generativeai as genai import streamlit as st import os # APIキーの取得(環境変数から) genai.configure(api_key=os.environ.get("GEMINI_API_KEY")) def generate_note_article(theme): model = genai.GenerativeModel('gemini-pro') prompt = f"""
      あなたはnote記事専門のベテランAIライターです。
      以下のテーマでnote記事のタイトル案、構成案、そして本文の草稿を生成してください。
      トーンは論理的・解説系で、
      ターゲット読者はnote記事フォロワーと #AIとはじめてみた に興味ある方です。
      文字数は800〜1200字程度を目安とします。
      出力はマークダウン形式で、タイトル、リード文、本文(見出し付き)、まとめを含めてください。
      --- テーマ: {theme} --- """ response = model.generate_content(prompt) return response.text

  2. StreamlitでのUI構築: ユーザーがテーマを入力し、AIからの出力結果を確認できるシンプルなUIをStreamlitで構築しました。

    • st.titleでタイトル表示

    • st.text_inputでテーマ入力欄

    • st.buttonで生成実行ボタン

    • st.markdownで生成された記事を整形して表示

  3. Claude Codeによるデバッグと改善: コードを書いていく中で発生するエラーや、より効率的な記述方法についても、Claude Codeに相談しながら解決していきました。「このエラーは何が原因?」「もっとPythonicな書き方はない?」といった質問にも的確なアドバイスをもらえ、開発速度が格段に上がりました。

5. ステップ3: 実践!このnote記事をAIで書いてみた

いよいよ、完成した自作AIライティングツールを使って、このnote記事を書いてみる番です。

  1. テーマの入力: Streamlitアプリのテキストボックスに「claudecodeでAIライティングツールを作成して、note記事を書いてみた」と入力しました。

  2. 記事生成の実行: 「記事を生成」ボタンをクリック。数秒後、Gemini APIがテーマに基づいて生成した記事のタイトル案、リード文、本文の構成、そして本文の草稿がStreamlitの画面に表示されました。

    1. 生成された原稿は、論理的な構成、適切なトーン、ターゲット読者に響くキーワードが盛り込まれており、非常に質の高いものでした。特に驚いたのは、私が指定したClaude Code、Streamlit、Python、Gemini APIといった具体的な技術要素を適切に組み込み、解説系の記事として成立させていた点です。

  3. 人間による調整と加筆: もちろん、AIが生成した記事をそのまま公開するわけではありません。生成された草稿をベースに、以下の調整を行いました。

    • 情報の正確性の確認: 特に技術的な内容においては、生成された情報に誤りがないか、最新の情報と合致しているかを確認します。

    • 具体例の追加: 自身の体験談や具体的なコード例(上記で示したPythonコード)を加えることで、記事に深みと説得力を持たせました。

    • 表現の調整: よりnoteらしい親しみやすい表現や、読者の心に響く言葉遣いに調整。

    • SEO最適化: noteの記事特性に合わせて、見出しやキーワードの配置を微調整。

結果として、AIが全体の骨格と下書きを作成し、人間がそれに肉付けをして磨き上げる、という理想的な協業プロセスが実現しました。

6. AIライティングツールの可能性と今後の展望

今回の挑戦を通じて、AIライティングツールの大きな可能性を実感しました。

メリット:

  • 圧倒的な効率化: アイデア出しから構成、下書き作成までの時間を大幅に短縮できます。

  • 思考の補助: 複数のタイトル案や構成案を瞬時に生成することで、新たな視点や発想を得られます。

  • 執筆のハードル低下: 最初の一歩がなかなか踏み出せない時に、質の高い草稿は大きな助けになります。

課題と今後の展望:

  • ファクトチェックの重要性: AIは誤った情報を生成する可能性があるため、人間による事実確認は必須です。

  • 独自性の追求: AIが生成する文章は、時に紋切り型になりがちです。筆者の個性や深い洞察を加えることで、独自性の高い記事に昇華させる必要があります。

  • 機能拡張: 今後は、キーワード分析機能、SEO最適化アドバイス、画像生成AIとの連携、読者のフィードバックを元にした改善機能などを追加し、さらに高度なAIアシスタントを目指したいと考えています。

まとめ

Claude Code、Python、Streamlit、そしてGemini APIを組み合わせてAIライティングツールを自作し、このnote記事を執筆する──この一連のプロセスは、AIを「使う」から「作る」ことへの大きな一歩となりました。

AIは人間の仕事を奪うのではなく、創造性を拡張し、新たな可能性を切り開く強力なパートナーとなり得ます。今回の経験は、まさに「#AIとはじめてみた」というタグが象徴する、AIと共創する未来を肌で感じる貴重な体験でした。

あなたもぜひ、AIを単なるツールとして使うだけでなく、自分だけのAIアシスタントを開発してみてはいかがでしょうか? きっと新たな発見と驚きが待っているはずです。

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