見出し画像

【Claude3.5】新機能とプロンプト超強化Projectsを紹介!

👋こんにちは!AI-Bridgeのこばです!

コーディング能力に特に優れた現行最高モデル「Claude3.5 Sonnet」がリリースされました。
また、最新モデルのリリースに併せて以下の機能がClaudeに追加され、実用性が大きく飛躍しました。

  • 出力内容を可視化してくれるArtifact機能

  • ChatGPTのMyGPTsのようなオリジナルチャットボットを作ることができるProjects機能

Artifact機能で作成されたブロック崩しゲーム
タイトル画面からゲーム画面への遷移や、数種類のパワーアップアイテムの概念なども含まれた機能的にリッチなブロック崩しがものの1分ぐらいで出来上がりました。
Projects機能でアップロードされた画像を分析し、Midjourneyで再現するための画像生成用プロンプトに変換してくれるタスクを予め設定してあります。
テキストプロンプト無しでMidjourneyの知識をベースに自動的にタスクを実行してくれるので効率的です。

どちらの機能もアイデア次第でとても大きなタスクをこなすことができるポテンシャルがあります!

今回はClaudeのProjects機能に焦点を当て、使い方と作成事例についてわかりやすくご紹介したいと思います!

  • Projects機能について

  • Projects 「Prompt Advanced Converter」の作り方+使い方

Prompt Advanced Converterは、ユーザーのプロンプトを掘り下げ+強化するタスクに特化した汎用的なチャットボットです。詳細かつArtifactの出力を求めるプロンプトを作成してくれますので、後述の「Prompt Advanced Converterの作り方」を参照して、ぜひご活用ください!

「日本の経済成長率について教えて」というふんわりとしたプロンプトでもロールプロンプトやFew Shotなどのテクニックを使ってガンガン掘り下げてくれます。
プロンプトをコピーしてClaudeの新規チャット欄に貼り付けるだけです。
今回は日本の経済成長率に関する過去から未来への包括的なレポートを作成してくれました。途中、Artifactによる図解も3つほど入って、読みやすく、読み応えのあるレポートに仕上げてくれました。

1.Projects機能について

Projects機能は、追加知識とシステムプロンプトを与えることでClaude 3.5の優れたモデルの能力を持った、オリジナルのClaudeが使える機能の事です。
記事内では、この機能で作成したオリジナルのClaudeのことを「Projects」と呼びます。

1-1.ChatGPTのGPTsとProjectsの機能的な違い

Claudeは現時点ではTeamプランは一般公開されていないので、共有については未対応となります。

ProjectsはChatGPTのGPTsと似た機能を持っていますが、厳密にはできることに違いがあります。
機能の種類こそGPTsよりも少ないですが、Claudeの高度なコーディング能力を生かしたArtifact機能は唯一無二の魅力があります。

chatbot-arena-leaderboardのコーディングカテゴリーランキングより

2.Prompt Advanced Converterの作り方

オリジナルのProjectsの作成手順を通じて、作り方の流れをご説明します!

Projects機能は現在Proプラン以上のユーザーのみ利用可能です。(月額$20)
新しくProjectsを作りたいときは、Claude.aiにアクセスして、左上にあるClaudeをクリックし、Projectsの項目を選択してください。

2-1.TOPページ

左のメニューからProjectsをクリック

2-2.Projectsページ

Create Projectボタンをクリック

2-3.Projects新規作成ページ

Projectページ

テキストウィンドウの上段にProjectsの名前、下段に説明文を入力します。ここはProjectsの性能には影響がないので適当で構いませんが、今回は以下のように入力しておきます。

上段に入力するテキスト

Prompt Advanced Converter

下段に入力するテキスト

シンプルな要望から構造化されたプロンプトに変換します

2-4.Projects編集ページ

編集ページの右側のProject Knowledgeにシステムプロンプト(Custom Instructions)と追加の知識を入力していきます。

2-5.Set Custom Instructionsに入力するプロンプト

{
  "system": "あなたは最先端のAIプロンプトエンジニアです。ユーザーが入力した曖昧な文章や簡単な指示を、あらゆるLLMが最適に理解し実行できる、詳細で効果的なプロンプトに変換する専門家です。あなたの役割は以下の通りです:\n1. ユーザーの意図を深く分析し、明確化する\n2. 不足している情報や文脈を補完する\n3. タスクの複雑さに応じて、段階的なアプローチを提案する\n4. 出力形式、文体、長さ、トーンなどの制約を明確に定義する\n5. Few-shot learning、Chain-of-Thought、ロールプロンプトなど、適切なプロンプト技術を適用する\n6. エッジケースや例外的な状況を考慮し、それらに対処する指示を含める\n7. 可能な限り、図解や視覚化を用いて情報を表現する方法を提案する\n最終的に、ユーザーの意図を完全に反映した、詳細かつ明確で、LLMが最適に実行できるプロンプトを生成してください。",
  "constraints": [
    "ユーザーの入力は自然言語で与えられ、明確でない場合や情報が不足している場合があります。",
    "出力は、JSON形式のコードブロックとし、以下の構造を持つものとします:\n     {\n       'role': 'プロンプトに適したロール設定',\n       'goal': 'プロンプトの目的',\n       'context': 'タスクの背景や重要な前提条件',\n       'instructions': '主要なタスク指示',\n       'constraints': 'タスク実行時の制約条件',\n       'output_format': '期待される出力形式(md、リスト、表、コード、SVG、HTML、Mermaid、Reactコンポーネント等)',\n       'examples': 'Few-shot examplesのリスト',\n       'evaluation_criteria': '出力の評価基準'\n     }",
    "プロンプトは、明確で、簡潔で、曖昧な表現を含まないようにしてください。",
    "LLMが理解しやすいように、具体的な指示、例、制約条件を含めるようにしてください。",
    "タスクの複雑さに応じて、段階的なアプローチや中間チェックポイントを提案してください。",
    "プロンプトにはエッジケースや例外的な状況への対処方法を含めてください。",
    "ユーザーの意図や目的に応じて、適切な出力形式(md、リスト、表、コード、SVG、HTML、Mermaid、Reactコンポーネント等)を指定し、Claudeのアーティファクト機能に対応するフォーマットを使用してください。特に、図解や視覚化が有効な場合は積極的に提案してください。",
    "プロンプトの長さは、タスクの複雑さに応じて適切に調整してください。",
    "専門用語や略語を使用する場合は、必ず説明を加えてください。"
  ],
  "examples": [
    {
      "user_input": "AIの影響について議論するエッセイを書いて",
      "output": {
        "role": "あなたは、技術と社会の相互作用を専門とする未来学者です。",
        "goal": "現代社会におけるAI(人工知能)の影響に関する、バランスの取れた、洞察に富んだエッセイを作成すること。テキストと視覚的要素を組み合わせて、情報を効果的に伝えること。",
        "context": "AIは急速に発展し、社会のあらゆる側面に影響を与えています。この技術革新は、大きな機会と同時に重要な課題をもたらしています。",
        "instructions": "以下の点を含めてエッセイを構成してください:\n1. AIの定義と現在の主要な応用分野(例:機械学習、自然言語処理、コンピュータビジョン)\n2. 社会への正の影響(例:医療診断の向上、効率化された生産プロセス)\n3. 潜在的な負の影響(例:雇用の損失、プライバシーの懸念)\n4. 倫理的考察(例:AI決定の透明性、責任の所在)\n5. 将来の展望と課題\n\nさらに、以下の視覚的要素を含めてください:\n1. AIの主要応用分野を示す図表\n2. AIの正負の影響を比較する表\n3. AI技術の進化を示すタイムライン",
        "constraints": [
          "学術的な文体を使用すること",
          "具体的な例や研究結果を引用して論点を裏付けること",
          "異なる視点からバランスの取れた議論を展開すること",
          "最後に自分の見解を述べること",
          "テキストと視覚的要素をバランス良く配置すること"
        ],
        "output_format": [
          {
            "type": "text/markdown",
            "description": "5つのセクションに分かれた構造化されたエッセイ。各セクションには小見出しをつけること。Markdownフォーマットを使用し、適切な見出しレベル、箇条書き、強調などを適用すること。"
          },
          {
            "type": "application/vnd.ant.mermaid",
            "description": "AIの主要応用分野を示すマインドマップ形式の図表"
          },
          {
            "type": "text/html",
            "description": "AIの正負の影響を比較するHTML表"
          },
          {
            "type": "image/svg+xml",
            "description": "AI技術の進化を示すタイムライン(SVG形式)"
          }
        ],
        "examples": [
          {
            "セクション例": "2. 社会への正の影響",
            "内容例": "AIの医療分野における応用は、特に画像診断において革命的な進歩をもたらしています。例えば、Googleの子会社であるDeepMindが開発したAIシステムは、乳がんの検出において放射線科医を上回る精度を示しました(Nature, 2020)。このような技術は、早期発見率の向上と、それに伴う生存率の改善に大きく貢献する可能性があります。"
          }
        ],
        "evaluation_criteria": [
          "論点の明確さと一貫性",
          "証拠と例の適切な使用",
          "異なる視点の公平な扱い",
          "結論の説得力",
          "文章の流れと読みやすさ",
          "視覚的要素の効果的な使用と整合性",
          "テキストと視覚的要素の適切なバランス"
        ]
      }
    }
  ]
}

2-6.アップロードする知識ファイル

以下のテキストファイルをダウンロードして本のマークのエリアにドロップ

このファイルにはプロンプト作成のポイントなどが書かれています。

以下のような表示になれば完了です。

3.Prompt Advanced Converterの使い方

では、先ほど作成したProjectsの使い方を通じて、Projectsの使い方を確認していきましょう。

作成したProjectsはTOPページのチャットウィンドウの下にある「Select a project」をクリックすると、作成済みのProjectsが表示されます。

Prompt Advanced Converterをクリック

試しにPrompt Advanced Converterに「難しいスネークゲーム作って」とお願いしてみます。
※スネークゲームとは、ヘビを操作して餌を食べる毎に体が長くなっていく伝統的なミニゲームです🐍

プロンプトがjsonコードになって生成されるので生成が終わったら右上のCopyボタンをクリック。

生成されたjsonはこちらです。もともと、「難しいスネークゲーム作って」とだけ入力したとは思えないほど、詳細かつ具体的なプロンプトに置き換わっていることがわかります。

{
  "role": "あなたは経験豊富なゲーム開発者で、特に2Dゲームのプログラミングに精通しています。",
  "goal": "伝統的なスネークゲームをベースに、複数の難易度を持つ高度なバージョンを設計・実装すること。",
  "context": "スネークゲームは古典的な2Dゲームで、プレイヤーは成長する蛇を操作し、餌を食べながら障害物を避けるゲームです。このバージョンでは、追加の要素やメカニクスを導入し、ゲームの複雑さと難易度を向上させます。",
  "instructions": [
    "1. 基本的なスネークゲームの機能を実装する:",
    "   - 蛇の移動と成長メカニズム",
    "   - 餌の生成と摂取",
    "   - 壁や自身の体への衝突によるゲームオーバー",
    "2. 以下の高度な機能を追加する:",
    "   - 複数の難易度レベル(Easy, Normal, Hard, Extreme)",
    "   - 動的な障害物(移動する壁、敵キャラクター)",
    "   - パワーアップアイテム(一時的な無敵、スピードブースト、スコア倍増)",
    "   - ボスバトル(一定のスコアに達すると出現する大型の敵)",
    "   - マルチプレイヤーモード(ローカル2プレイヤー対戦)",
    "3. 視覚的・聴覚的要素を強化する:",
    "   - アニメーションエフェクト(蛇の動き、餌の摂取、ゲームオーバー時)",
    "   - サウンドエフェクトとBGM",
    "   - パーティクルシステム(パワーアップ取得時、衝突時)",
    "4. ゲームシステムを実装する:",
    "   - スコアシステムとハイスコア記録",
    "   - レベルシステム(プレイヤーの進行に応じて難易度が上昇)",
    "   - アチーブメントシステム",
    "5. ユーザーインターフェースを設計する:",
    "   - メインメニュー(難易度選択、設定、ハイスコア表示)",
    "   - ゲーム内HUD(スコア、レベル、現在のパワーアップ状態)",
    "   - ポーズメニュー",
    "   - ゲームオーバー画面(リトライ、メインメニューに戻る選択肢)"
  ],
  "constraints": [
    "プログラミング言語はPythonを使用し、Pygameライブラリを利用すること",
    "コードは効率的で、適切にコメントされ、モジュール化されていること",
    "ゲームは60FPSで滑らかに動作すること",
    "全ての難易度レベルでゲームバランスが適切に調整されていること",
    "ゲームは直感的で使いやすいUIを持つこと",
    "アセット(画像、音声)は著作権フリーのものを使用するか、独自に作成すること"
  ],
  "output_format": {
    "type": "application/vnd.ant.code",
    "language": "python",
    "description": "Pygameを使用した完全なPythonスクリプト。主要なクラス、関数、ゲームループを含む構造化されたコード。"
  },
  "examples": [
    {
      "description": "蛇のクラスの基本構造例",
      "code": "class Snake:\n    def __init__(self, x, y):\n        self.positions = [(x, y)]\n        self.direction = (1, 0)\n        self.length = 1\n\n    def move(self):\n        head = self.positions[0]\n        new_head = (head[0] + self.direction[0], head[1] + self.direction[1])\n        self.positions.insert(0, new_head)\n        if len(self.positions) > self.length:\n            self.positions.pop()\n\n    def grow(self):\n        self.length += 1\n\n    def change_direction(self, new_direction):\n        if (new_direction[0] * -1, new_direction[1] * -1) != self.direction:\n            self.direction = new_direction"
    }
  ],
  "evaluation_criteria": [
    "コードの可読性と構造",
    "ゲームの機能性(全ての機能が正しく動作するか)",
    "パフォーマンス(FPSの安定性、メモリ使用効率)",
    "ゲームバランス(難易度の適切な調整)",
    "ユーザーエクスペリエンス(操作性、UIの使いやすさ)",
    "視覚的・聴覚的要素の品質",
    "エラーハンドリングの適切さ"
  ]
}

新規にClaudeとのチャットを開始して、先ほどコピーしたコードを貼り付けて送信します↓

すると、Pythonコードを書いてスネークゲームを実装してくれます。
このPythonコードをローカルで実行したものがこちらです。

難しすぎてびっくりしましたが、ゲームとしての土台はできている感じがします。ここからClaudeへのフィードバックを通じてゲームとしてのクオリティを上げていくこともできます。

4.まとめ

今回の記事では、Projects機能の概要及び、プロンプト強化Projects「Prompt Advanced Converter」の作り方を通じて具体的な使い方をご紹介しました!

このProjectsはゲームや図解レポートだけでなく、資料作成など色々なタスクの構造化に使えますので、ぜひたくさん使って頂けると幸いです!

コーディングに優れたClaude 3.5 Sonnetおよびそれに付随する新機能が出たことでまた生成AIの利活用の幅が大きく拡がったといえます。今後リリースされるであろう、Claude3.5 Opusなどの上位モデルの登場が待ち遠しいですね。

5.AIBridge Labについて

私たちAIBridge Labでは、企業や個人のAI活用を支援し、企業のDX実現をサポートしています。AIを活用したソリューションにご興味があればお気軽にメールやXのDMでご連絡ください!
ai_business@doerstokyo.jp

最後まで読んで頂きありがとうございました!
気に入って頂けましたら「スキ」や「フォロー」をしていただけると幸いです! 😄
Xアカウントのフォローもぜひお願いします!


皆さまの温かいサポートのおかげで、活動を続けることができています。もしよろしければ、引き続き支援をお願いできますと幸いです。より質の高い記事投稿に励みます!