🙄

【LLM活用事例】GPSの座標情報から地点情報を自動分類してくれるWebアプリ作ってみた(groq)

に公開

はじめに

地理データを使った業務や研究で、座標に対して「これは住宅街?交差点?橋の上?」といった分類を手作業で行っていませんか?

今回は、CSVで渡された緯度・経度情報をもとに、LLM(大規模言語モデル)とOpenStreetMapの情報を組み合わせて地理的特徴を自動分類するWebアプリを構築しました。

GroqのLLM(LLaMA 3)を使えば、無料・高速・商用利用OKで、OpenAI互換のAPIを使ってあっという間にこの仕組みが作れます!


アプリケーション紹介

webブラウザ上のアプリケーションです。地点情報を記述したcsvファイルをimportしたうえでAutoLabelボタンを押下すると地点にラベル情報が付与されます。githubからクローンしてご利用ください。
main_window.png

https://github.com/kttmu/MapAutoLabeling


このアプリでできること

📍 CSVで座標を読み込み
🗺️ Leaflet.jsで地図上にマーカー表示
🤖 Groq API(LLaMA 3)で地理的特徴をラベル付け
🌈 ラベルごとの色分け
🧭 ダブルクリックでGoogleストリートビューを即表示
🔍 ラベルで検索・フィルタリング
📤 ラベリング結果をCSVでエクスポート

map_screenshot


🤔 単純な「座標→特徴分類」じゃ上手くいかない話

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月時点)

  1. groqの公式サイトでアカウントを作成。
    https://console.groq.com
  2. 「API Keys」から新しいキーを発行
  3. キーを .env や groq_api_key.txt に保存してプロジェクトで利用
  4. Pythonから呼び出すときは openai.api_key にキーを設定

最後に

問題や修正提案があればgithubのissueやqiitaにコメントいただければデス。地点情報のラベリングに限らず研究/開発時にはデータのラベリングが必要なシーンはあるかと思うので今今後も活用していこうと思います。最後前読んでいただきありがとうございました。

Discussion