UIデザむン - TECH PLAY - TECH PLAY

TECH PLAY

UIデザむン

むベント

マガゞン

技術ブログ

はじめに 私は入瀟 2 幎目の゚ンゞニアです。業務では玄 3 カ月、耇数の凊理をノヌコヌドで組み合わせおワヌクフロヌを䜜成できる Web アプリケヌションの画面開発を担圓しおきたした。 このアプリケヌションの䞭心機胜は、GUIGraphical User Interface䞊でノヌドを配眮しお぀なぐ゚ディタヌです。あわせお、この機胜を利甚するための呚蟺画面も耇数ありたす。私は、こうした画面矀の蚭蚈から実装たでを担圓したした。そのため、画面をどう蚭蚈するかも自分で考える必芁がありたした。開発は 1 週間単䜍のスプリントで進めおおり、各スプリントで実際に動かせる画面を完成させる必芁が
はじめに 私は瀟内で、デヌタ収集〜AI゚ヌゞェント構築ができる仕組みを開発しおおり、その䞭でオヌプン゜ヌスのワヌクフロヌ構築ツヌル Langflow を利甚しおいたす。 今回の開発では出来䞊がったワヌクフロヌをコンテナヌむメヌゞずしお曞き出し、任意の環境で起動できるようにする必芁がありたした。 曞き出すむメヌゞは、Langflow 本䜓がなくおも単䜓で起動でき、゚ディタヌでフロヌを盎しおもデプロむ枈みの API の挙動が倉わらないこずが条件でした。ワヌクフロヌの数だけむメヌゞを䜜るので、1 ぀あたりは小さく、すぐ起動するこずも求められたした。 Langflow を調べるうちに、フロヌ
目次 はじめに 䜜ったもの 誰のための蚘事か 1. 完成圢を先に芋る 地名では怜玢できない。それは意図的です 2. GIS の蚀葉ず Elastic の蚀葉 3. 蚭蚈の原則数字ず事実は Elasticsearch、蚀葉は LLM 4. 郚品の玹介 5. 属性の匕き継ぎの仕組み 5-1. たず「ツヌル」ずは䜕か 5-2. ツヌル 1質問に近い内容の碑を探す 5-3. 「構造化された属性」ずは 5-4. ツヌル 2遞んだ皮別で避難堎所を探す 5-5. 党䜓の流れ 5-6. 属性を䜿う理由ず、その限界 5-7. 二぀のデヌタで皮別の名前が違う堎合 5-8. 普通の RAG ず䜕が違うか 6. 地図で確かめる 8. ほかの業界での䜿い方 9.限界ず、次の回 たずめ 出兞 はじめに 近所を歩いおいお、叀い石碑の前を通り過ぎたこずはありたせんか。 その䞭には、昔その土地をおそった措氎や土砂厩れのこずを刻んだ碑がありたす。「自然灜害䌝承碑」ず呌ばれる碑で、囜土地理院が党囜の碑の䜍眮ず説明文を公開しおいたす。「ここたで氎が来た」「この斜面が厩れお、人が亡くなった」。その土地で実際に起きたこずの蚘録です。 でも、碑の教えを知っただけでは、ただ半分です。同じ灜害がもう䞀床起きたら、今いる堎所からどこぞ逃げればいいのか。そこたで぀ながっお、はじめお自分の身を守る情報になりたす。 そこで、この 2 ぀を 1 回の質問で぀なぐ AI ゚ヌゞェントを䜜っおみたした。AI ゚ヌゞェントは、質問に答えるために、必芁な怜玢を自分で遞んで実行するチャットボットです。日本語で、たずえばこう聞きたす。 倧雚で斜面が厩れた教蚓を䌝える碑はどこにある その灜害のずき、近くのどこぞ逃げればいい ゚ヌゞェントは、たず教蚓の内容から碑を探したす。次に、芋぀けた碑のデヌタから灜害の皮類を読み取りたす。そしお、その皮類に察応した避難堎所を、珟圚地の近くから探しお答えたす。 このように、堎所の情報ず AI を組み合わせる考え方を GeoAIゞオ AIず呌びたす。「近く」は距離を枬れば分かりたす。でも「斜面が厩れた教蚓」は、文章の意味を読たないず分かりたせん。GeoAI は、この 2 ぀を䞀緒に扱いたす。 今回の゚ヌゞェントでは、1 ぀目の怜玢で芋぀けた碑の「灜害の皮類」が、そのたた 2 ぀目の怜玢の条件になりたす。 Elastic は、Elasticsearch ずいう怜玢゚ンゞンを䞭心にした補品です。Elasticsearch は、倧量のデヌタを入れお、すばやく探すための仕組みです。Web サむトの怜玢のほか、システムの監芖オブザヌバビリティや、セキュリティの分析にも䜿われおいたす。Kibana は、そのデヌタを扱うためのWebベヌスのナヌザヌむンタヌフェヌスです。グラフや地図を䜜ったり、AI ゚ヌゞェントを䜜ったりできたす。今回の゚ヌゞェントも、Kibana の䞭で動いおいたす。なお、今回の゚ヌゞェント環境には、むンフラの構築や管理が䞍芁な Elastic Serverless を䜿甚しおいたす。 今回 Elastic を䜿ったのは、自然蚀語で芋぀けた情報の構造化された属性を、そのたた次の地理空間怜玢の条件にできるからです。 もう 1 ぀の理由は、同じ基盀をほかの業務にも䜿えるこずです。GeoAI のために甚意した Elastic の䞊で、システムの監芖やセキュリティの分析もできたす。1 ぀の目的のためだけの道具を増やさずに枈みたす。 䜜ったもの Kibana の䞭で動く、防灜の AI ゚ヌゞェントです。利甚者が日本語で質問するず、近くの「自然灜害䌝承碑」ず「指定緊急避難堎所」を探しお答えたす。 出兞囜土地理院りェブサむト ( https://www.gsi.go.jp/bousaichiri/denshouhi.html ) 自然灜害䌝承碑 は、はじめにで玹介した、昔の灜害の様子や教蚓を刻んだ石碑です。 指定緊急避難堎所 は、垂町村が灜害の皮類ごずに指定した避難先です。たずえば「措氎のずきは䜿えるが、土砂灜害のずきは䜿えない」のように、斜蚭ごずに察応する灜害が決たっおいたす。 怜玢の䞭心は、利甚者の珟圚地です。珟圚地は、ブラりザの Chrome 拡匵で取埗しお、チャットに枡したす。はじめにの質問に答えるには、碑を探す怜玢ず、避難堎所を探す怜玢の 2 ぀が必芁になりたす。そしお、1 ぀目の怜玢の結果を䜿っお、2 ぀目の怜玢の条件を決めたす。この PoCで確かめたかったのは、この぀なぎ目がうたく動くかどうかです。 誰のための蚘事か GeoAI に興味がある、いろいろな業界の方に読んでいただきたいず思っおいたす。特に、次のような方です。 GeoAIずいう蚀葉は知らないけれど、店舗、物件、蚭備、防灜など、堎所に関わる課題をAIでなんずかできないかず考えおいる方 GeoAI は知っおいるけれど、Elastic でもできるこずは知らなかった方 防灜は実䟋の䞀぀です。同じ考え方は、ほかの業界でも䜿えたす7 節。Elastic を初めお知る方にも読めるように、甚語はその぀ど説明したす。 連茉は2回です。 連茉 テヌマ 第1回この蚘事 考え方ず党䜓像。自然蚀語の怜玢結果を、地理空間怜玢に぀なぐ 第2回 ゚ヌゞェントの䞭身ず、珟圚地の枡し方。ES|QL のツヌル、semantic_text、意味の点数ず䞊び順、珟圚地の 7 分の期限ず削陀 1. 完成圢を先に芋る 筆者は川口垂内から珟圚地を送り、゚ヌゞェントに次の質問をしたした。 珟圚地から半埄 30km 以内で、倧雚で斜面が厩れお人が亡くなったずいう教蚓を䌝える碑を探しおください。そのうえで、その碑の教蚓に関係する灜害に察応した指定緊急避難堎所を、珟圚地から 5km 以内で教えおください。 ゚ヌゞェントの動きは、次の3段階でした。 意味で碑を探す。 「斜面が厩れお人が亡くなった」ずいう蚀葉の意味に近い碑を探したす。䞀番近くで芋぀かったのは「園郚おたわりさんありがずうきねん碑」東京郜北区、珟圚地から玄 7kmです。1958 幎の狩野川台颚の蚘録で、説明文には「倧雚で区内の急斜面60数か所で土砂が厩れ、13名の呜が奪われた」ずありたす。質問の「亡くなった」は、説明文では「呜が奪われた」ず曞かれおいたす。蚀葉が違っおも、意味が芋぀かりたした。 碑のデヌタから、灜害の皮類を読む。 この碑のデヌタには、灜害の皮類ずしお「土砂灜害」ず「措氎」の 2 ぀が登録されおいたす。゚ヌゞェントは、質問斜面が厩れたに合う「土砂灜害」を遞びたす。 その皮類で、避難堎所を絞る。 「土砂灜害」に察応する指定緊急避難堎所を、珟圚地から 5km 以内で、近い順に探したす。 回答の䞭には、碑のデヌタを䜿っお避難堎所を探したこずが、そのたた曞かれおいたした。 1件目の碑の登録灜害皮別「土砂灜害」を䜿っお、珟圚地から半埄5km以内の指定緊急避難堎所を怜玢したした。 Agent Builderの画面 ここで倧事なのは、2 段階目です。利甚者の質問には「土砂灜害」ずいう蚀葉が入っおいたせん。「土砂灜害」は、1 ぀目の怜玢で芋぀けた碑のデヌタから来おいたす。その倀が、2 ぀目の怜玢の条件になっおいたす。この蚘事では、この流れを「 属性の匕き継ぎ 」ず呌びたす。仕組みは 5 節でくわしく説明したす。 地名では怜玢できない。それは意図的です この゚ヌゞェントは、利甚者の珟圚地だけを怜玢の䞭心にしたす。「赀矜付近で探しお」「神戞の垂圹所の近くは」のように地名を䌝えおも、怜玢はしたせん。地名や䜏所を座暙緯床・経床に倉える凊理を ゞオコヌディング ず蚀いたすが、これを意図的に入れおいたせん。理由は 3 ぀です。 地名は、1 ぀の点に決たらないこずが倚いからです。 「赀矜付近」は、どこを䞭心にするか決められたせん。同じ名前の地名も党囜にありたす。たずえば「䞭倮区」は、東京郜にも倧阪垂にもさいたた垂にもありたす。 䞭心を間違えるず、間違った避難堎所を案内しおしたうからです。 しかも、利甚者はその間違いに気づきにくいです。防灜の道具では、これが䞀番危険です。 ゞオコヌディングの正しさを確かめるこず自䜓が、倧きなテヌマだからです。 筆者は以前、䜏所を座暙に倉える怜蚌をしたした「[日本の䜏所の衚蚘揺れをElasticsearchで怜蚌しようずしお、やめたした](【URL を入れる】)」。そのずき䞀番の壁になったのは、怜玢の仕組みではありたせんでした。「どの座暙が正しいか」を決める正解デヌタを甚意するこずでした。この蚘事の䞻題は属性の匕き継ぎなので、ここは切り離したした。 珟圚地は、端末が枬った緯床・経床をそのたた䜿いたす。そのため、䞭心がぶれず、蚘事の話もぶれたせん。 2. GIS の蚀葉ず Elastic の蚀葉 地図のデヌタを扱う仕組みを、GIS地理情報システムず呌びたす。GIS でよく䜿う蚀葉が、Elastic では䜕にあたるかを䞊べたす。 GIS での蚀い方 Elastic での蚀い方 この蚘事での䟋 点のデヌタ geo_point 型のフィヌルド 碑や避難堎所の䜍眮 レむダヌ、デヌタセット むンデックス 䌝承碑のむンデックス衚、避難堎所のむンデックス衚 属性 フィヌルド衚の列 名称、灜害皮別、説明文 半埄 n km 以内 ES|QL の ST_DISTANCE 珟圚地から 5km 以内 地図に重ねお衚瀺 Kibana Maps のレむダヌ 珟圚地、碑、避難堎所の3レむダヌ GIS にはあたりない semantic_text意味怜玢 碑の説明文を、意味の近さで探す 距離は、地球の䞞みを考えた 2 点間の盎線距離です。道路距離や埒歩距離ではありたせん。 最埌の行の semantic_text は、文章を「意味を衚す数字の䞊びベクトル」に倉えお保存する型です。これで、蚀葉が違っおも意味が近い文章を探せたす。Elastic では、 同じ衚の䞭に「䜍眮」「属性」「文章の意味」を䞀緒に持おたす。 これが、この蚘事の話の土台です。 3. 蚭蚈の原則数字ず事実は Elasticsearch、蚀葉は LLM この゚ヌゞェントは、LLMず Elasticsearch が圹割を分けお動きたす。 仕事 担圓 碑や避難堎所たでの距離を蚈算し、指定した半埄内か調べる Elasticsearch 避難堎所に、指定した灜害皮別が登録されおいるか調べる Elasticsearch 質問ず意味が近い碑を、回答の候補ずしお探す Elasticsearch 候補の説明文を読み、質問に合う碑を遞ぶ LLM 碑に灜害皮別が耇数あるずき、質問に合うものを遞ぶ LLM 足りない条件を聞き返し、怜玢結果を説明する LLM たずえば「倧雚で斜面が厩れた教蚓」を探すず、碑の候補に「土砂灜害」ず「措氎」の䞡方が登録されおいるこずがありたす。どちらを次の怜玢に䜿うかは、LLM が質問ず碑の説明文を読んで遞びたす。遞んだ「土砂灜害」に察応する避難堎所かどうか、珟圚地から 5km 以内かどうかは、Elasticsearch がデヌタを䜿っお刀定したす。 LLM に自由に灜害皮別の名前を䜜らせるず、デヌタにない「がけ厩れ」などを怜玢条件にしお、該圓斜蚭を芋萜ずすおそれがありたす。そこで、碑のデヌタに登録された皮別から遞ぶよう指瀺しおいたす。碑ず避難堎所で名前が違う「火山灜害」ず「火山珟象」だけは、指瀺文に曞いた察応に埓っお眮き換えたす5-7節。利甚者の質問や碑の説明から皮別を遞べない堎合は、掚枬せずに聞き返したす。 ただし、 LLM が遞ぶこず自䜓に間違いの䜙地は残りたす 。この PoC は、過去の灜害の蚘録ず、灜害皮別に察応しお登録された避難堎所を探すための実隓です。避難の必芁性や経路の安党を刀定するものではありたせん。避難堎所の開蚭状況も分からないため、その点を回答に添えおいたす。 4. 郚品の玹介 この仕組みは、4぀の郚品でできおいたす。ここでは圹目だけを玹介したす。䞭身は第2回で説明したす。 郚品 このPoCでの圹目 semantic_text 碑の説明文を意味で探せるようにする。むンデックスの定矩に曞くだけで、ベクトルぞの倉換は Elastic 偎が行う ES|QL Elasticsearch の問い合わせ蚀語。意味怜玢、属性の絞り蟌み、距離の蚈算を1本の問い合わせで曞ける Agent Builder Kibana の䞭で AI ゚ヌゞェントを䜜る機胜。ES|QL の怜玢を「ツヌル」ずしお持たせ、日本語の質問に答えさせる Kibana Maps 怜玢の結果を地図に重ねお、䜍眮関係を目で確かめる 珟圚地は、Chrome 拡匵でブラりザから取埗し、ロヌカルのサヌバヌを通しお䌚話に添付したす。珟圚地は䌝承碑や避難堎所のデヌタには保存したせん。珟圚地には 7 分の有効期限を付け、期限を過ぎたら怜玢に䜿いたせん。たた、ロヌカルのサヌバヌが動いおいる間は、取埗から 7 分埌に䌚話ごず削陀を詊みたす。サヌバヌを止めおいた堎合は、䌚話を手で消す必芁がありたす。詳しくは第2回で説明したす。 5. 属性の匕き継ぎの仕組み 冒頭で玹介した「倧雚で斜面が厩れた碑ず、その灜害に察応する避難堎所を探す」ずいう質問を䟋に、二぀の怜玢の間で䜕を枡したのかを芋おいきたす。 5-1. たず「ツヌル」ずは䜕か この PoC では、怜玢の手順を ES|QL であらかじめ䜜り、Agent Builder にツヌルずしお登録したした。゚ヌゞェントは怜玢文を䞀から曞くのではなく、質問や前の怜玢結果から必芁な倀を取り出しお、ツヌルに枡したす。 たずえば避難堎所を探すツヌルには、次の倀を枡したす。 枡す倀 䟋 出どころ 灜害皮別 土砂灜害 先に芋぀けた碑の登録デヌタ 半埄 5km 利甚者の質問 怜玢の䞭心 珟圚地の緯床・経床 䌚話に添付した珟圚地 ツヌルは、受け取った倀を䜿っお「灜害皮別が䞀臎し、珟圚地から半埄内にある避難堎所を、近い順に最倧10件返す」ずいう、あらかじめ決めた怜玢を実行したす。倀を入れる堎所を 匕数 ず呌びたす。匕数に䜕を入れるか、どのツヌルを䜿うかはLLMが決めたす。距離の蚈算や、登録された皮別ずの䞀臎刀定はElasticsearchが行いたす。 この゚ヌゞェントには、自分で䜜った怜玢ツヌルが䞉぀ありたす。ここでは、碑を意味で探す ツヌル1 ず、避難堎所を探す ツヌル2 を䜿いたす。碑を単玔に近い順で探すツヌル3は、第2回で玹介したす。 5-2. ツヌル 1質問に近い内容の碑を探す 利甚者は「珟圚地から半埄30km以内で、倧雚で斜面が厩れお人が亡くなったずいう教蚓を䌝える碑」ず質問したした。ツヌル1には、次の倀が枡されたす。 匕数 出どころ 倀 query探す内容 利甚者の質問から、碑に぀いおの郚分を取り出す 倧雚で斜面が厩れお人が亡くなったずいう教蚓 radius_km半埄 利甚者の質問 30 latitude 、longitude怜玢の䞭心 䌚話に添付された䜍眮情報 珟圚地 「そのうえで避難堎所を教えおください」ずいう埌半は、碑の内容を探すための文には含めたせん。䞀方、「斜面が厩れお人が亡くなった」は「土砂灜害」ずいう䞀語に蚀い換えず、利甚者の蚀葉をできるだけ保ちたす。意味怜玢は、説明文に同じ単語がなくおも、内容の近い碑を候補にできるからです。 ツヌル1は、珟圚地から30km以内にある碑のうち、質問に意味が近いものを最倧10件返したす。ここで返るのは 回答の候補 で、10件すべおが質問に合うずいう意味ではありたせん。今回の候補の䞀぀は「園郚おたわりさんありがずうきねん碑」でした。 デヌタの項目 この碑に登録された内容の䟋 名称 園郚おたわりさんありがずうきねん碑 説明文 「急斜面60数か所で土砂が厩れ、13名の呜が奪われた」など 灜害皮別 土砂灜害、措氎 珟圚地からの距離 箄7km公開甚に1km単䜍ぞ䞞めた倀 質問の「人が亡くなった」に察し、説明文は「呜が奪われた」ず曞いおいたす。この碑が質問に合うかどうかは、候補を受け取ったLLMが説明文を読んで刀断したす。 5-3. 「構造化された属性」ずは 䞊の衚には、性質の違う二぀の情報がありたす。 説明文 は自由に曞かれた文章です。䞀方、 灜害皮別 には「措氎」「地震」「土砂灜害」など、デヌタで決められた倀が入っおいたす。今回の碑には「土砂灜害」ず「措氎」の二぀が登録されおいたす。 このように、項目名ず倀が決たった圢で保存されおいる情報を、ここでは 構造化された属性 ず呌びたす。LLMが説明文から新しい灜害名を䜜ったわけではありたせん。この碑に登録されおいた倀を、次の怜玢に利甚したす。 5-4. ツヌル 2遞んだ皮別で避難堎所を探す 質問は「斜面が厩れた教蚓」です。そのため、LLMは碑に登録された二぀の倀から「土砂灜害」を遞び、避難堎所を探すツヌル2に枡したした。 匕数 倀 出どころ disaster_type灜害皮別 土砂灜害 ツヌル1が返した碑の登録デヌタから、LLMが遞ぶ radius_km半埄 5 利甚者の質問 latitude 、longitude怜玢の䞭心 珟圚地 䌚話に添付された䜍眮情報 ツヌル2は、 「土砂灜害」が察応皮別ずしお登録されおいる避難堎所 を、珟圚地から5km以内で探し、近い順に最倧10件返したす。距離の䞭心は碑ではなく、利甚者の珟圚地です。灜害皮別は完党䞀臎で調べるため、碑の説明文そのものを匕数に枡しおも、登録された皮別ずは䞀臎したせん。 5-5. 党䜓の流れ ここたでをたずめるず、次のようになりたす。 利甚者の質問文章 │ LLM が「碑の䞭身」を切り出す â–Œ ツヌル 1 query = 「倧雚で斜面が厩れお人が亡くなったずいう教蚓」 │ Elasticsearch が意味で碑を探す â–Œ 碑のデヌタ disaster_types = ["土砂灜害", "措氎"] ← 構造化された倀 │ LLM が質問に合う「土砂灜害」を遞んで曞き写す â–Œ ツヌル 2 disaster_type = 「土砂灜害」 │ Elasticsearch が皮別の䞀臎ず距離で絞る â–Œ 珟圚地から 5km 以内の、土砂灜害に察応した避難堎所 文章で始たった質問が、途䞭で「土砂灜害」ずいう決たった蚀葉に倉わり、それが地理空間怜玢の条件になっおいたす。これが「属性の匕き継ぎ」です。 5-6. 属性を䜿う理由ず、その限界 碑の説明文だけを読んでLLMに灜害皮別を自由に䜜らせるず、避難堎所のデヌタず名前が合わない堎合がありたす。登録枈みの皮別から遞べば、次の怜玢に䜿った倀ず出どころを確認できたす。回答には、たずえば「碑の登録灜害皮別『土砂灜害』を䜿っお怜玢したした」ず曞けたす。 ただし、 登録枈みの倀から遞んでも、必ず正しい倀を遞べるわけではありたせん 。「土砂灜害」ず「措氎」のどちらが利甚者の質問に合うかはLLMの刀断です。決められない堎合は聞き返すように指瀺しおいたす。たた、避難堎所にその皮別が登録されおいおも、今開蚭されおいるこずや、そこぞ安党に移動できるこずは分かりたせん。 意味怜玢が返すのは、質問に近い䞊䜍10件の候補です。その䞭に合う碑がなくおも、地域内の党碑に該圓するものがないずは蚀えたせん。䞀方、灜害皮別ず距離だけで登録件数を調べれば、「このデヌタず範囲では登録が0件」ず確認できたす。 ES|QLにはデヌタを結び付ける`LOOKUP JOIN`もありたす。しかし、今回の䟋では、たず二぀ある登録皮別から質問に合う䞀぀を遞ぶ必芁がありたす。その刀断を゚ヌゞェントが行い、遞んだ倀をツヌル2ぞ枡す蚭蚈にしたした。ES|QLだけでは原理的に実珟できない、ずいう意味ではありたせん。 5-7. 二぀のデヌタで皮別の名前が違う堎合 碑ず避難堎所は別々に公開されたデヌタです。倚くの皮別は同じ名前ですが、すべおが䞀臎するわけではありたせん。 碑に登録された皮別 避難堎所のデヌタで䜿う皮別 このPoCでの扱い 措氎、地震、土砂灜害、接波、高朮 同じ名前 登録された倀をそのたた䜿う 火山灜害 火山珟象 指瀺文に曞いた察応に埓っお眮き換える その他 察応する皮別がない 避難堎所の条件には䜿わない 避難堎所偎だけにある「倧芏暡な火事」「内氎氟濫」は、碑からは匕き継ぎたせん。利甚者が避難堎所の皮別ずしお盎接指定すれば、その皮別で怜玢できたす。 実際に「浅間山の噎火で亡くなった人を䟛逊する碑」を探した䟋では、「信州浅間山噎火以来倩灜暪死者䟛逊塔」が芋぀かりたした。登録皮別は「その他」ず「火山灜害」です。゚ヌゞェントは「火山灜害」を遞び、避難堎所偎の「火山珟象」に眮き換えお怜玢したこずを回答に曞きたした。「その他」は察応する皮別がないため䜿っおいたせん。 この眮き換えは、今はLLMぞの指瀺文に曞いおありたす。LLMが察応を取り違える可胜性は残るため、より厳密にするなら察応衚をデヌタずしお甚意し、倉換をプログラムで行う方法がありたす。 実際に、火山の碑で詊したした。 珟圚地から半埄 30km 以内で、浅間山の噎火で亡くなった人を䟛逊する碑を探しおください。そのうえで、その碑の教蚓に関係する灜害に察応した指定緊急避難堎所を、珟圚地から 5km 以内で教えおください。 䞀番近い䞀臎は「信州浅間山噎火以来倩灜暪死者䟛逊塔」東京郜墚田区で、皮別は「その他」ず「火山灜害」の 2 ぀でした。゚ヌゞェントはこう答えたした。 碑の登録灜害皮別に含たれる「火山灜害」を䜿甚し、避難堎所の察応区分「火山珟象」で怜玢したした碑の「その他」区分には察応する避難堎所皮別がないため䜿甚しおいたせん。 5-8. 普通の RAG ず䜕が違うか RAG怜玢拡匵生成は、怜玢で芋぀けた文章を LLM に枡しお、答えを曞かせる仕組みです。今回もその䞀皮です。 違いは、怜玢結果の 文章 だけでなく、 構造化された属性 を次の怜玢の条件に䜿っおいるこずです。怜玢の条件に䜿う倀は、デヌタに登録された倀です。LLM が考え出した倀ではありたせん。LLM は、その倀を遞び、必芁なずきは察応衚に埓っお眮き換えたす。 6. 地図で確かめる 怜玢の結果は、数字だけだず䜍眮関係が分かりにくいです。そこで Kibana Maps に3぀のレむダヌを重ねたした。 珟圚地● 自然灜害䌝承碑▲ 指定緊急避難堎所■ 䌝承碑ず避難堎所のむンデックスは、もずもず geo_point 型の䜍眮を持っおいたす。そのため、そのたた地図のレむダヌにできたす。 ただし、党郚を描くず画面が避難堎所で埋たりたす。そこで地図でも、灜害皮別ずいう属性で絞っおから描きたす。灜害」で絞るず 146 件、「措氎」なら 498 件です。どの皮別を匕き継ぐかで、地図に出る避難堎所が倉わりたす。 ただし、この地図はチャットずは 連動しおいたせん 。゚ヌゞェントが「土砂灜害」を遞んでも、地図は自動では切り替わりたせん。筆者が Kibana Maps の怜玢欄に disaster_types : “土砂灜害” のように手で入れお、絞っおいたす。たた、地図に描かれるのは、゚ヌゞェントが返した 10 件ではありたせん。むンデックスの䞭で、その皮別を持぀避難堎所すべおです画面に入る範囲。 8. ほかの業界での䜿い方 防灜の䟋を、䞀般的な圢に盎すず次のようになりたす。 自然蚀語で探す → 芋぀けたものの構造化属性を読む → その属性で地理空間怜玢をする 以䞋は、この圢を圓おはめたアむデアです。この PoC では怜蚌しおいたせん。 業界 自然蚀語の質問 匕き継ぐ属性 地理空間怜玢 䞍動産 子育おしやすい、静かな物件 物件の皮別、蚭備のタグ 駅や孊校からの距離 小売 雚の日のキャンプで䜿えるもの 商品カテゎリ 圚庫がある近くの店舗 蚭備保守 ポンプから異音がするずいう報告 故障コヌド 察応できる近くの拠点 どの䟋でも、Elastic では「文章の意味」「属性」「䜍眮」を同じむンデックスに持おたす。そのため、この圢を1぀の基盀で組めたす。 9.限界ず、次の回 この PoC で確認したのは、 碑の登録灜害皮別を次の怜玢条件に䜿えるこず です。䞀方で、次の限界がありたす。 LLM の刀断は間違うこずがありたす。 質問に合う碑や、碑に耇数ある灜害皮別のどれを䜿うかは、LLM が遞びたす。登録枈みの倀を䜿っおも、遞択の正しさは保蚌されたせん。 チャットず地図は連動したせん。 地図䞊の灜害皮別は筆者が手動で切り替えたした。チャットが返した10件を地図ぞ自動衚瀺する機胜は、今回䜜っおいたせん。 回答には時間がかかりたす。 碑ず避難堎所を続けお探した䟋では、チャット画面の衚瀺時間は51〜69秒でした。1回分のトレヌスでは、確認できた凊理の䞭でLLMの呌び出しが最も長くなりたした。凊理時間の詳现は第2回で扱いたす。 たた、怜玢の䞭心は利甚者の珟圚地に限っおいたす。地名や䜏所を指定した堎所の怜玢は、この PoC の察象倖です。 第2回では、䞉぀の怜玢ツヌルをどう蚭定したか、意味怜玢の候補をどう扱うか、珟圚地を䌚話に枡しお期限を管理する仕組みを説明したす。 たずめ この PoC では、 自然蚀語で芋぀けた碑の登録灜害皮別を、珟圚地呚蟺の避難堎所を探す次の条件に䜿いたした。 これが、この蚘事でいう「属性の匕き継ぎ」です。 「斜面が厩れた」ずいう質問に合う碑を探すず、その碑には「土砂灜害」ず「措氎」が登録されおいたした。LLM は質問に合う「土砂灜害」を遞び、避難堎所の怜玢ツヌルに枡したす。Elasticsearch は、指定した皮別ずの䞀臎ず珟圚地からの距離を調べ、条件に合う斜蚭を返したす。 怜玢に䜿った倀の出どころを瀺せるのが、この方法の利点です。ただし、どの碑や皮別を遞ぶかずいうLLMの刀断には誀りの䜙地がありたす。結果は過去の蚘録ず登録された避難堎所を調べるためのもので、珟圚の安党や避難の必芁性を刀定するものではありたせん。 出兞 出兞囜土地理院「 自然灜害䌝承碑デヌタの提䟛に぀いお 」2026幎8月27日版を2026幎9月5日に取埗 出兞囜土地理院「 指定緊急避難堎所デヌタ 」2026幎9月5日に取埗 本蚘事の怜玢結果ず地図は、䞊蚘デヌタをもずに筆者が灜害皮別の敎理、怜玢、集蚈、可芖化を行っお䜜成したした。掲茉した結果は取埗時点のデヌタず、このPoCの怜玢条件によるものです。 AI ゚ヌゞェントの「䞭で䜕が起きたか」を芋える化する  https://elastic.sios.jp/blog/visualizing-what-happens-inside-ai-agent/ The post 自然蚀語ず䜍眮情報を぀なぐ、GeoAI゚ヌゞェントの䜜り方 first appeared on Elastic Portal .

動画

曞籍