Blog›Guides

Wikiprompt Datasetを用いたAIアプリ構築

開発者向けウォークスルー:Wikipromptの公開55,000件以上のプロンプトデータセットを基に、プロンプト検索UI、プロンプト・オブ・ザ・デイボット、ブラウザ拡張機能、またはDiscordボットを構築する方法。取り込みコードと帰属に関する注意事項を含みます。

Wikiprompt Datasetを用いたAIアプリ構築

ウィキプロンプトデータセットでAIアプリを構築する

「プロンプトライブラリ」アプリを作ろうとしたインディーハッカーは誰でも、初日に同じ壁にぶつかります。シードコンテンツが必要で、スクレイピングは遅く、壊れやすく、アクセス先のサーバーに失礼です。ウィキプロンプトはその壁を取り除きました。カタログ全体、ChatGPT、Claude、Gemini、Midjourney、GPT Image、Veo、Kling、Seedance、Nano Banana、Grokなどを網羅する55,000以上のプロンプトが、公開一括データセットとして利用可能になりました。キー不要、レート制限の調整不要、スクレイピング不要。ただのJSONです。

この投稿はビルドログであり、プレスリリースではありません。今週末に出荷できる4つの小さなアプリと、そこに到達するための正確な配管についてです。

実際に扱うもの

まずマニフェストにアクセスします:

curl "https://www.wikiprompt.org/dataset"

これはtotal_prompts、各行で期待できるrecord_fields、そしてページネーション方式を返します。実際のデータは/dataset/promptsにあり、キーセットカーソルでページングされます。各ページはnext URLを渡し、nextがnullを返すまでそれを追跡します。1ページあたり最大500レコードです。

curl "https://www.wikiprompt.org/dataset/prompts?limit=500"

各レコードは小さくて便利なオブジェクトです:slug、url、title、description、content(モデルに貼り付ける実際のプロンプトテキスト)、category、tags、media(プロンプトが画像や動画を生成した場合のURL)、model(それが構築されたか実行されたモデル)、metadata(メディアタイプ、アスペクト比、スタイル、品質評価などの構造化フィールド)、author、original_source(元となったツイートや投稿)、そしてタイムスタンプ。これだけで、追加のAPI呼び出しなしに本格的なUIを構築できます。

Pythonでの完全な取り込みループはこちら、ローカルのSQLiteキャッシュへの約15行です:

import requests, sqlite3

db = sqlite3.connect("wikiprompt.db")

db.execute("""create table if not exists prompts(

slug text primary key, title text, description text,

content text, category text, model text, url text)""")

url = "https://www.wikiprompt.org/dataset/prompts?limit=500"

while url:

data = requests.get(url).json()

for p in data["records"]:

db.execute(

"insert or replace into prompts values (?,?,?,?,?,?,?)",

(p["slug"], p["title"], p["description"],

p["content"], p["category"], p.get("model"), p["url"]),

)

db.commit()

url = data.get("next")

これを一度実行すれば、カタログ全体のローカルでクエリ可能なコピーが手に入ります。CORSは完全にオープン(Access-Control-Allow-Origin: *)で、レスポンスはエッジキャッシュされているため、バックエンドジョブだけでなくブラウザからも実行しやすいです。

構築する価値のある4つのもの

プロンプト検索UI。 データセットはcategory、tags、model、metadataを無料で提供するため、ファセット検索は基本的にSQLのWHERE句一つで実現できます。「portraitタグ付きのMidjourneyプロンプト」や「Claude用のコーディングプロンプト」は、リサーチプロジェクトではなくフィルターに解決されます。自分でインデックスを構築したくない場合、ウィキプロンプトはすでに検索を実行しています:検索APIは?q=を受け取り、ランク付けされたJSONを返すため、検索ボックスのプロトタイプを検索コードを一行も書かずに作成できます。

「今日のプロンプト」ボット。 クロンジョブで、ローカルキャッシュからランダムな行を選び(またはテーマ別フィード用にcategory=creativeでフィルター)、title + content + urlを元の場所に投稿します。mediaフィールドにより、テキストだけでなく実際の出力画像や動画を投稿に添付できます。これは約40行のコードで、Slackボット、Telegramボット、またはXに投稿するクロンとして同様に機能します。

ブラウザ拡張機能。 任意のテキストフィールドを右クリックして「プロンプトを挿入」、カテゴリやモデルでローカルキャッシュを検索し、contentを貼り付けます。データは初期同期後にローカルにあるため、オフラインでも即座に動作し、キーストロークごとのネットワーク往復はありません。

Discordボット。 /prompt image midjourneyスラッシュコマンドで、categoryとmodelでキャッシュをフィルターし、title、content、メディアを埋め込みとして返します。オリジナルを見たい場合は、フッターにoriginal_sourceをリンクすれば、同じメッセージで帰属がカバーされます。

メタデータフィールドを実際に使う

metadataはメディア関連の面白い情報が詰まっています:アスペクト比、スタイルタグ、品質評価。プロンプトを単にリストするのではなく、ランク付けや推薦を行うものを構築している場合、これがシグナルです。「ポートレート用の最高のMidjourneyプロンプト、3:4アスペクト比、高品質スコア」というフィルターは、フィールドを取り込んだ後の追加のWHERE句数個で済み、別のスコアリングパイプラインは不要です。

良いプロンプトレコードの全体像を味わうには、いくつかのライブページを閲覧してください:データ物理化画像プロンプト、未来的なクモ類キャラクター変身、神秘的な遊牧民キャラクターデザイン。それぞれがデータセット内の完全なレコードでもあり、同じフィールド、モデルにコピーする同じcontentを持っています。

帰属は任意ではなく、難しいものでもない

ウィキプロンプトは元の著者による公開投稿からプロンプトを集約しており、ライセンス保持者ではなく図書館員です。アプリがプロンプトを表示する場合、original_sourceを一緒に表示し、カタログの入手元としてwikiprompt.orgをクレジットしてください。それが条件であり、データセットはoriginal_sourceがすべてのレコードにすでに存在するため、それを守るのを簡単にします。スキーマにまだ列がないからといって、取り込み中にそれを削除しないでください。

独自のインデックスを実行したくない場合

所有したいインフラストラクチャの量に応じて、3つのオプションがあります。完全な制御が必要なら、一括データセットを独自の検索・推薦レイヤーに通します。パイプラインではなく結果だけが必要なら、検索APIを直接呼び出します。または、アプリではなくエージェントを構築している場合、MCPサーバーを指し示すと、検索、カテゴリ、個々のプロンプトをClaudeや他のエージェントがネイティブに呼び出せるツールとして公開しています。llms.txtもあり、モデルが全体の表面積を一度のフェッチで理解できます。

ここから始める

curl "https://www.wikiprompt.org/dataset/prompts?limit=500" | head -c 2000

返ってくるものを見て、上記の4つのアイデアの1つを選べば、コーヒーが冷める前に動くものができます。難しい部分、つまり12以上のモデルにわたる55,000以上の厳選されたプロンプトは、すでに完了しています。それを使って何を構築するかが楽しい部分です。

Tags
open-data·dataset·api·developers·tutorial·discord-bot·ai-prompts