
News Observation Lab for Future
中世の墓石『シュテチ』をAIで探求するStećak Oracleプロジェクトの概要

概要
本稿では、ボスニア・ヘルツェゴビナ周辺に残る中世の墓石「シュテチ」に焦点を当て、構造化データとAIを組み合わせた小規模Webアプリケーション「Stećak Oracle」の開発経緯と技術構成を紹介します。
プロジェクトの目的と背景
正気度チャレンジの一環として、歴史的情報を単なる静的ページではなく、検索可能な知識ベースとして活用したいという思いから本プロジェクトが生まれました。
技術スタック
フロントエンドは Next.js と TypeScript、コンテンツ管理は Sanity、AI 対話は Google Gemini(@google/genai)を使用しています。
データモデル
Sanity 上に三つの主要ドキュメントタイプを作成し、ステチャク、モチーフ、ソース を相互参照させています。ステチャクには名前、スラッグ、場所、地域、歴史的時代、説明、碑文、モチーフ、歴史的背景、ソースといった項目が含まれます。
AI との統合方法
ユーザーが質問すると、Next.js の API ルートがまず Sanity から関連データを取得し、取得した知識ベースを Gemini のプロンプトに組み込みます。これにより、AI が生成する回答は構造化された裏付け情報に基づき、解釈と事実を区別した形で提示されます。
実装例
例として「ラディムリャのステチャクの剣のモチーフは何を意味していますか?」という質問に対し、Sanity に保存されたモチーフ情報と解釈注意フィールドを参照し、解釈が絶対的事実でないことを明示した回答が得られました。
学びと今後の課題
- 構造化データの重要性:コンテンツとソースを明示的に管理することで、AI の出力を制御できる。
- AI の限界設定:解釈注意フィールドにより、モデルが事実と解釈を混同しないようにした。
- 小規模データでも概念実証は可能:2件のステチャク記録と関連モチーフ・ソースでパイプライン全体を検証した。
将来的には、質問に関連するドキュメントのみを抽出する検索最適化、ソースのインライン表示、画像メタデータの追加、場所・時代・モチーフによるフィルタリング機能の実装を計画しています。
リポジトリ情報
ソースコードは GitHub(https://github.com/dkljaj/Ste-ak-Oracle-frontend-and-Gemini-integration)で公開されています。
結論
Stećak Oracle は、構造化された歴史知識と生成系AIを組み合わせたシンプルなプロトタイプです。CMS が提供する根拠情報と Gemini が生成する自然言語回答の連携が、信頼性の高いAIアプリケーションの土台になることを示しました。