【LLM活用事例】GPSの座標情報から地点情報を自動分類してくれるWebアプリ作ってみた(groq)
はじめに
地理データを使った業務や研究で、座標に対して「これは住宅街?交差点?橋の上?」といった分類を手作業で行っていませんか?
今回は、CSVで渡された緯度・経度情報をもとに、LLM(大規模言語モデル)とOpenStreetMapの情報を組み合わせて地理的特徴を自動分類するWebアプリを構築しました。
GroqのLLM(LLaMA 3)を使えば、無料・高速・商用利用OKで、OpenAI互換のAPIを使ってあっという間にこの仕組みが作れます!
アプリケーション紹介
webブラウザ上のアプリケーションです。地点情報を記述したcsvファイルをimportしたうえでAutoLabelボタンを押下すると地点にラベル情報が付与されます。githubからクローンしてご利用ください。
このアプリでできること
📍 CSVで座標を読み込み
🗺️ Leaflet.jsで地図上にマーカー表示
🤖 Groq API(LLaMA 3)で地理的特徴をラベル付け
🌈 ラベルごとの色分け
🧭 ダブルクリックでGoogleストリートビューを即表示
🔍 ラベルで検索・フィルタリング
📤 ラベリング結果をCSVでエクスポート
🤔 単純な「座標→特徴分類」じゃ上手くいかない話
LLMに「この座標は交差点ですか?」と聞いても正確な判断はできません。
そこで、OpenStreetMapの 逆ジオコーディング情報(住所・道路名・カテゴリなど)を取得し、それを含む詳細なプロンプトをGroqに渡すことで、
「道路名に"bridge"が含まれているのでラベルは'Bridge'」
「複数の交差する道路があるので'Intersection'もラベル付け」
といったようにOSMの文脈をLLMに理解させて分類できるようにしました。
なぜGroqを選んだか?:他のAIとの比較
比較軸 | GPT-4 (ChatGPT) | Claude 3 | Groq LLaMA 3 |
---|---|---|---|
日本語対応 | ◎ 非常に高精度 | ○ 自然さはやや不安定だが理解力は高い | ○ 改善中。理解力はあるが出力にややぎこちなさ |
商用利用 | ◎ ChatGPT APIやEnterpriseで明確に商用利用可 | ◎ Claude APIで商用利用可能(利用規約に準拠) | ◎ Meta LLaMA 3は商用ライセンス。GroqのAPIも商用利用OK |
モデル選択性 | ◎ ChatGPT(GPT-3.5, GPT-4o)やAPIでモデル指定可能 | △ Claude 3(Opus/Sonnet/Haiku)が選べるが環境限定 | ◎ LLaMA 3やMixtralなど複数選択肢を提供 |
レイテンシ(応答速度) | ○ GPT-4はやや遅いが、GPT-4oは高速 | ○ Claude 3も比較的高速 | ◎ Groqの独自ハードウェアにより超高速(数百ms〜) |
価格 | ○ 無料プランはGPT-3.5。GPT-4oは有料(月20ドル) | ○ 無料枠あり。Claude ProやAPIは有料 | ◎ 無料Web利用も多く、APIも安価・制限緩め |
ライブラリ互換性 | ◎ openai-python ライブラリが公式提供されている |
△ 独自API。OpenAI互換のSDKはない | ○ 一部OpenAI互換ラッパーありだが、完全互換ではない |
API料金 | 有料 | 有料 | 無料プランあり →重要 |
Groqの魅力は:
- OpenAI互換なので既存コードを流用できる
- かなり高速(筆者体感でOpenAIの3〜5倍速)
- LLaMA3-70Bのような大規模モデルが気軽に使える
Groq APIをPythonから呼び出すシンプルな実装例
import openai
openai.api_key = "your_groq_api_key"
openai.api_base = "https://api.groq.com/openai/v1"
response = openai.ChatCompletion.create(
model="llama3-70b-8192",
messages=[
{"role": "system", "content": "あなたは地理データの分類を行うAIです。"},
{"role": "user", "content": "この地点にどんな地理的特徴があるか分類してください。"}
]
)
print(response["choices"][0]["message"]["content"])
Groq APIの利用手順(2025年6月時点)
- groqの公式サイトでアカウントを作成。
https://console.groq.com - 「API Keys」から新しいキーを発行
- キーを .env や groq_api_key.txt に保存してプロジェクトで利用
- Pythonから呼び出すときは openai.api_key にキーを設定
最後に
問題や修正提案があればgithubのissueやqiitaにコメントいただければデス。地点情報のラベリングに限らず研究/開発時にはデータのラベリングが必要なシーンはあるかと思うので今今後も活用していこうと思います。最後前読んでいただきありがとうございました。
Discussion