Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Snowflake ✕ LangChain でできること

Toru Hiyama
March 10, 2025
140

Snowflake ✕ LangChain でできること

Toru Hiyama

March 10, 2025
Tweet

Transcript

  1. © 2025 NTT DATA Japan Corporation © 2025 NTT DATA

    Japan Corporation Snowflake ✕ LangChain でできること SnowVillage Data Heroes Talk ~ SnowflakeのAI/LLMについて語ろう! 2025年3月10日 株式会社NTTデータ Snowflakeビジネス推進室 檜山 徹 1
  2. © 2025 NTT DATA Japan Corporation 2 Snowflake Cortex Agents

    … 爆誕! https://www.snowflake.com/en/blog/ai-data-agents-snowflake-cortex/ Cortex Agentsについては、解説ブログも書いたので、もしよかったら見てみてください!
  3. © 2025 NTT DATA Japan Corporation 4 Snowflake ✕ LangChain

    でできること ここ一ヶ月で、Snowflakeで使えるLangChainのバージョンもv0.1からv0.3に 上がっています(=LangChainの波動を感じる…!) ▪ 2025年1月30日の私のつぶやき(v0.1) ▪ 2025年3月10日時点のライブラリ(v0.3) https://repo.anaconda.com/pkgs/snowflake/ LangChainについて、 は後ほど
  4. © 2025 NTT DATA Japan Corporation 6 自己紹介 檜山 徹(ひやま

    とおる) 株式会社NTTデータ Snowflakeビジネス推進室 所属 X(Twitter) @toru_data
  5. © 2025 NTT DATA Japan Corporation 7 【2025年最新】 Snowflake ✕

    LangChain でできること 本日はSnowflake上で動作させられるLangChain機能をいくつかご紹介します。 • Python UDFでドキュメント取り込み by Snowpark&LangChain • LangChain Agent on Snowflake(Snowflake Anacondaライブラリ) • LLMツール • RAGツール • SQLツール • LangGraph on Snowflake(持ち込みライブラリ) これにより、 Snowflake ✕ LangChain の世界観を理解し、 LangChain on Snowflake を今すぐ始められるようになることを目指します 他にも色々あると思うよ! 今回は一例ということで。
  6. © 2025 NTT DATA Japan Corporation 8 LangChain とは? LLMを統合することで、様々なLLMアプリケーションを構築するためのOSS

    モデル メッセージ Chain エージェント チャットボット ドキュメントの要約 データ分析
  7. © 2025 NTT DATA Japan Corporation 10 Python UDF でドキュメント取り込み

    Snowpark Python UDF と LangChain の DocumentLoader を使って、 スケーラブルに様々なドキュメントの取り込みを行います。 Loader.load() UDF File Path PDF Text aa.pdf bb.xlsx このドキュメントは、~~ ユーザー名 ユーザーID ・・・ xx.docx 概要 XXシステムは、~~ 出力テキスト … … File Path aa.pdf bb.xlsx xx.docx … 入力ドキュメント Loader.load() Loader.load()
  8. © 2025 NTT DATA Japan Corporation 11 Python UDF でドキュメント取り込み

    試しに、PDF を読み込むドキュメントローダーを作成します。 ▪ UDF実装(load_pdf 関数) ▪ UDF呼び出し 今回の検証コードはまとめて GitHubに上げているので、 まったりと御覧ください。
  9. © 2025 NTT DATA Japan Corporation 12 Python UDF でドキュメント取り込み

    実行した結果、12個のPDFファイルを10秒でテキストに変換できました PDFだけでなく、オフィス(パワポ、Wordなど)・Webページなども取り込める ストリームを使った差分更新もでき、効率的
  10. © 2025 NTT DATA Japan Corporation 14 LangChain エージェントとは? 様々なツールを活用して、入力されたプロンプトに対する回答を出力できるLLM機能

    ➢ 今回は、組み込みの Zero Shot ReAct エージェントを利用した動的なツール選択により、 いい感じの出力を生成することを期待します。 ユーザー入力 出力 エージェント ツール LLM RAG SQL …
  11. © 2025 NTT DATA Japan Corporation 15 LangChain エージェント ツール(LLM)

    LangChainのLLMクラスを継承し、 Snowflake Cortex用のLLMモデルを 作成しています。 コードでは、モデルの指定やセッションの 入力、Complete関数の呼び出しを 行っているだけで、実は簡素です。
  12. © 2025 NTT DATA Japan Corporation 16 LangChain エージェント ツール(RAG)

    次の2つのクラスを継承して、RAGを ツール化しています。 • Snowflake: CortexSearchRetriever • LangChain:BaseTool
  13. © 2025 NTT DATA Japan Corporation 17 LangChain エージェント ツール(SQL)

    Snowflakeの任意のテーブルにクエリを 実行できるツールです。 どんなテーブル・カラムがあるかを調査し たり、エラー内容を自己解決したりする ように構成しています。 参考:https://medium.com/snowflake/just-the-gist-developing-a-custom-langchain-tool-that-uses-snowpark-session-6dd86316c464
  14. © 2025 NTT DATA Japan Corporation 19 LangChain エージェント 実行の様子

    その1 ▪ 与えたツールを使って情報収集… ▪ 失敗したら自分でやり直し
  15. © 2025 NTT DATA Japan Corporation 20 LangChain エージェント 実行の様子

    その2 SQLクエリで取得した結果と、RAGで取得した結果を組み合わせて、 最終的なインサイトをエージェント自ら生成できた。(すごくない…?)
  16. © 2025 NTT DATA Japan Corporation 22 LangGraph LangGraphは、LangChainよりも柔軟にLLM実行グラフを構築できるOSS from

    langgraph.graph import END, START, StateGraph from langgraph.graph.message import add_messages from langgraph.prebuilt import ToolNode, tools_condition class State(TypedDict): messages: Annotated[list, add_messages] graph_builder = StateGraph(State) graph_builder.add_node("chatbot", chatbot) tool_node = ToolNode(tools=[tool]) graph_builder.add_node("tools", tool_node) graph_builder.add_conditional_edges("chatbot", tools_condition) graph_builder.add_edge("tools", "chatbot") graph_builder.add_edge(START, "chatbot") https://langchain-ai.github.io/langgraph/tutorials/introduction/#part-3-adding-memory-to-the-chatbot
  17. © 2025 NTT DATA Japan Corporation 23 LangGraph の環境準備 2025年3月10時点ではLangGraphがSnowflake

    Anacondaパッケージに 存在しないため、パッケージアップロードを実施し、SiSで使えることを確認する。 といっても、アップロード自体は、天下のSnowflake CLI様により2コマンドだけ。
  18. © 2025 NTT DATA Japan Corporation 24 LangGraph を実行してみる SiS上でLangGraphが動く!

    今回はここまでですが、もっと 複雑なグラフを組んでいくことも できそうです!
  19. © 2025 NTT DATA Japan Corporation 25 おわりに Snowflake ✕

    LangChain により、Snowflakeに蓄積されたデータを使って、 LLMで自律的に分析させることの未来が垣間見えました! どこまで実用できるのか?は正直私も分かってません( ここ重要!)が、 Snowflakeで様々なLangChainの機能が「動くこと」は確認できました。 • https://github.com/THiyama/LangChain-Snowflake-Test • 現地参加の方は、実際に動いている様子を見ながら話しましょう! 今後、Snowflakeもこの領域をどんどん強めていくと思うので、 我々もしっかり追従(むしろ追い越し)していきましょう