LangChain、Cube と連携し LLM アプリ開発を簡素化
本文の状態
日本語全文を表示中
詳細モードで約6分の本文を読めます。
同じ出来事の情報源
この情報源を基点に整理
LangChain Blog
LangChain と Cube の共同発表により、LLM によるテキストから SQL を生成するアプリケーション開発において、セマンティックレイヤーをドキュメントローダーとして統合し、ハルシネーションの抑制とデータ整合性の向上を実現した。
AI深層分析を開く2026年8月26日 06:44
AI深層分析
キーポイント
LangChain と Cube の統合発表
LangChain が Cube セマンティックレイヤーとの連携を公式にサポートするドキュメントローダーとして公開された。
セマンティックレイヤーの役割強化
この統合により、LLM によるテキストから SQL を生成する際、メトリクス計算の一元化と AI ハルシネーションへの対抗策として機能する。
ベクトルデータベースとの連携
セマンティックレイヤーのデータモデルから埋め込みを生成し、ベクトルデータベースに格納することで、自然言語クエリとデータモデルのビューやメンバーを高精度にマッチングさせる。
開発者への利便性向上
Cube セマンティックレイヤーの上に AI アプリケーションを構築する際、統合により開発者が容易に開始できるようになる。
チャットベースのデモアプリケーションとリソース
GitHub上でソースコードやOpenAIのプロンプト例が公開されており、CubeのSQL APIを用いたクエリ構築の参考となる。
重要な引用
The semantic layer plays a key role in ensuring correctness and predictability when building text-to-sql LLM-based applications.
Cube not only centralizes metrics calculations but also serves an antidote to AI hallucinations.
If you wish to create an AI-powered conversational interface for the semantic layer, functioning similar to Delphi, these prompts can be a good starting point.
"views are considered the 'facade' of the data model"
編集コメントを表示
編集コメント
LLM の実用化において最も課題となるハルシネーション問題に対し、セマンティックレイヤーという構造化されたデータ層を介して解決を図るアプローチは、開発現場にとって極めて有効な手段となる。LangChain との公式連携により、この手法の導入ハードルが大幅に低下し、より多くの企業が信頼性の高い AI アプリケーションを構築できる環境が整ったと言える。
Source Article
元記事を日本語で読む
本文に関係しない購読案内、埋め込み通知、サイト内プロモーションは除いています。

*編集者注:本記事は、Cubeチームとの共同執筆です。テキストからSQLを生成するLLMベースのアプリケーション構築において、セマンティックレイヤー(意味層)は正確性と予測可能性を保証する上で重要な役割を果たします。LangChain と Cube を連携させることで、Cube のセマンティックレイヤーの上に AI アプリケーションを構築し始めることが非常に容易になります。
長年にわたり、私たちはデータ駆動型の世界に生きています。データを効率的にアクセスし、そこから洞察を引き出すことは何よりも重要です。今年に入り、技術の最新動向と広がりゆく可能性によって後押しされ、人工知能(AI)、特に大規模言語モデル(LLM)への関心が爆発的に高まっています。
LLM を扱うための包括的なツールキットである LangChain は、AI エクスペリエンスを開発するエンジニアにとって最も重要な構成要素の一つとなっています。Cube において私たちは、セマンティックレイヤーが AI アプリケーションの重要な構成要素であると認識しています。なぜなら Cube は単に指標計算を一元化するだけでなく、AI のハルシネーション(幻覚)に対する解毒剤 としても機能するからです。
セマンティック・ドキュメントローダー
本日、Cube と LangChain の連携を発表できることを嬉しく思います。これは、セマンティックレイヤーのデータモデルから導き出された埋め込み(embeddings)を用いてベクトルデータベースを構築するための ドキュメントローダー です。その後、このベクトルデータベースを検索することで、セマンティックレイヤーの最も関連性の高いエンティティを見つけることができます。これは、自然言語による自由な入力(例:クエリ)と、データモデル内のビューやそのメンバーを照合する際に非常に役立ちます。

また、Cube の SQL API に対してクエリを構築するための例となる OpenAI プロンプト を備えた、チャットベースのデモアプリケーションも提供しています(詳細は GitHub の ソースコード 参照)。セマンティックレイヤー向けに、Delphi と同様に機能する AI 搭載の対話型インターフェース を構築したい場合は、これらのプロンプトが優れた出発点となります。
チャットベースのデモアプリを分解する
LangChain の最新ドキュメントローダー、ベクトルデータベース、OpenAI の大規模言語モデル(LLM)、そしてユーザーインターフェースに Streamlit を組み合わせて構築できるものをご紹介します。
0:00/1×
LLM が生成した SQL クエリ内のテーブル、カラム、集計処理、フィルタリングが、人間の入力とどのように一致しているかをご覧ください。このデモアプリをローカル環境で実行する方法については、GitHub の README ファイル をご確認ください。あるいは、以下のハイライトポイントを確認するだけでも構いません。
Cube からメタデータを取得し、ベクトルデータベースに格納する。
ingest.py ファイル内の ingest_cube_meta 関数は、最新の CubeSemanticLoader を使用して Cube のデータモデルを読み込みます。なお、読み込まれるのは ビュー のみです。これは、データの「ファサード」と見なされているためです。
model](https://cube.dev/blog/complementing-data-graph-with-views?ref=blog.langchain.com)。読み込まれたドキュメントはエンベディングされ、FAISS ベクトルストアに保存された後、後で使用するためにピクル化されます。
def ingest_cube_meta():
...
loader = CubeSemanticLoader(api_url, api_token)
documents = loader.load()
...
with open("vectorstore.pkl", "wb") as f:
pickle.dump(vectorstore, f)LLM の設定。 main.py ファイルでは依存関係がインポートされ、環境変数が読み込まれます。OpenAI モデル(llm)は、指定された API キーを使用して初期化されます。
import ...
load_dotenv()
llm = OpenAI(
temperature=0,
openai_api_key=os.environ.get("OPENAI_API_KEY"),
verbose=True
)ユーザー入力とベクトルストアの初期化
同じファイル内で、Streamlit のプリミティブを使用してユーザーからの入力を取得します。
question = st.text_input(
"Your question: ",
placeholder="Ask me anything ...",
key="input"
)
if st.button("Submit", type="primary"):
check_input(question)
vectorstore = init_vectorstore()ベクトルストアへのクエリ実行
ベクトルストアに対して、ユーザーの質問に類似したドキュメントを検索します。最も一致度の高い結果からテーブル名を抽出し、これを最良の推測として、ベクトルストア内の列情報を用いたプロンプト作成に活用します。
docs = vectorstore.similarity_search(question)
# take the first document as the best guess
table_name = docs[0].metadata["table_name"]
# Columns
columns_question = "All available columns"
column_docs = vectorstore.similarity_search(
columns_question,
filter=dict(table_name=table_name),
k=15
)プロンプトの構築と OpenAI の呼び出し
構築したプロンプトを OpenAI の大規模言語モデル(LLM)に送信し、そのレスポンスを解析して SQL クエリおよび関連するフィルタ条件を抽出します。
# Construct the prompt
prompt = CUBE_SQL_API_PROMPT.format(
input_question=question,
table_info=table_name,
columns_info=columns,
top_k=1000,
no_answer_text=_NO_ANSWER_TEXT,
)
llm_answer = llm(prompt + PROMPT_POSTFIX)
まとめ
Cube と LangChain の連携により、自然言語を用いたデータクエリがシームレスに実現されます。SQL の複雑さを抽象化し、LLM の推論能力を活用することで、AI 体験を構築する開発者にとって、ユーザーフレンドリーかつエラーの少ないデータアクセス手法を提供しています。
企業が LLM の推論力を正しく活用するには、社内のナレッジを適切に統合することが不可欠です。Cube と LangChain を組み合わせたセマンティックレイヤーの連携は、多くのプロダクト会社が将来的に LLM 向けのスマートな統合を実装し、これらの推論エンジンをより強力なものにするための好例と言えます。
関連コンテンツ

パートナー
スケールするエージェント型コマース:LangChain エージェントが安全に取引を行う




S. Tangedipalli,
K. Singh,
N. Okoroafor,
M. Samhitha Vangara,
C. Shriyan
2026 年 8 月 17 日
10 分

パートナー
エージェントの呼び出しのうち、実際に最先端モデルが必要なのはどれくらいか?


S. Tangedipalli,
K. Singh
2026 年 8 月 11 日
11 分
ロゴとタイトル.png)
パートナー
金融サービスにおけるエージェント AI の ROI を証明する


K. Singh, D. Tepper
2026 年 7 月 17 日
14 分
エージェントが実際に何をしているかを確認する
エージェントエンジニアリングプラットフォームの LangSmith を使えば、開発者はすべてのエージェントの意思決定をデバッグし、変更の評価を行い、ワンクリックでデプロイすることが可能です。
関連記事
今日のまとめ
AIデイリーブリーフで今日の重要ニュースをまとめ読み