s3labの記事一覧

AI

Firecrawlをつかってみる

Firecrawlとは?Firecrawlは、一言で言えば「ウェブ上の膨大な情報を、AIが即座に理解できる『言語』に翻訳して届けるゲートウェイ」です。従来のスクレイピングツール(BeautifulSoupやPuppeteerなど)が「エンジニアが手作業で解析するための道具」だったのに対し、Firecrawlは「AI(LLM)に食べさせるデータを作るための専用機」として、主に以下の用途で爆発的に普及しています。クラウド版に加えて、オープンソースも提供されているのは魅力です。主な用途1. RAG(検索拡張生成)のデータ基盤今、最も多い用途がこれです。 AIに自社独自の知識を持たせる「RAG」を作る際、自社の公式サイトやドキュメントを読み込ませる必要があります。Firecrawlはサイト全体を自動で巡回(クロール)し、不要な広告やメニューを排除して純粋な本文だけ」をMarkdown形式で抽出してくれるため、回答精度が劇的に上がります。2. インテリジェントな競合調査・価格モニタリングマーケティングチームが、競合他社のサイトを定

Python

pytestのおさらい

はじめにFASTAPIでAPIを実装するんですが、久々にpythonのコードを書くので、pytestの使い方をまとめます。pytest の基本Python のテストフレームワークです。test_で始まる関数を自動で見つけて実行します。最もシンプルなテスト# test_sample.pydef test_add(): assert 1 + 1 == 2def test_subtract(): assert 5 - 3 == 2実行pytest test_sample.pypytest のルールルール説明ファイル名test_*.pyまたは*_test.py関数名test_で始まるクラス名Testで始まる(任意)検証assert文を使うクラスでまとめる関連するテストをクラスでグループ化できます。# test_calculator.pyclass TestCalculator: def te

その他

SaaSに組み込むにはn8nが高価なのでLangFlowを試してみる

はじめに自社SaaSにワークフロー機能を組み込むにあたり、最初は高機能な「n8n」を検討しました。 しかし、SaaSの一部として提供(Embed)するには、ライセンス費用が高額になってしまうことが課題でした。そこで、より導入しやすい選択肢として「LangFlow」を試してみることにしました。 主な選定理由は以下の3点です。コストとライセンス: MITライセンスであり、SaaSへの組み込み(Embed)がしやすいこと技術スタック: ReactとPython製であるため、自社の開発環境と親和性が高いこと開発の活発さ: GitHub上の参加者が多く、大手DBベンダー(DataStax)が支援していることデスクトップアプリを試すダウンロードして、すぐに使い始められました。以下は、テンプレートにあったシンプルなAIエージェントのフローです。n8nよりも機能がすくないのか、使い方はわかりやすそうですが、n8nほどは洗練されてない印象です。内部では、LangChainを使っていますが、LangChainのコードを

n8n

n8nのTips

ノード名は一意である必要ありCodeノード内で$('node name') で別ノードの出力データにアクセスできるノード名を出力データの名前にしておくと後からわかりやすい$('node name')で複数の要素を取得する場合、現ノードの要素とキーでマッチングすべきワークフローを中断して途中から再実行するのは難しい前後のワークフローに分けるのが現実的Google driveノードからファイルをダウンロードしてもn8nホストのメモリに保存される多数のファイルをダウンロードするような重い処理はDBに保存する専門のワークフローにするGoogle driveノードへのアクセスを繰り返すとAPIコール上限超過エラーがでがちCodeノードのconsole.logはブラウザのコンソールに出力される古いバージョンのn8nでは、n8nのLogに出力されていたフローが分岐した場合、分岐したフローのどちらが先に実行されるか保証されていない合流する場合、Mergeノードを使って制御する必要がある

AI

AIエージェントの型とは?

AIエージェントの代表的な型1. ReAct型(Reason + Act)LLM が「考える → ツール呼び出し」を交互に行ういちばん古典的で、LangChain で普及途中で暴走しやすいが、柔軟例:ChatGPT Tool Calling / LangChain Agent2. Plan-and-Execute型最初に「計画(Plan)」を作る次に順番に「実行(Execute)」安定性が高く、ミスが少なめ例:LangGraph Planner-Executor、近年のOpenAI Agentsの一部3. モノリシック(One-shot)型1回の呼び出しでまとめて処理Agent というより「タスク指示」として使われる検証が楽だが複雑処理は苦手例:1ショットのGPT呼び出し4. Loop(自己改善)型 / AutoGPT系自分で「目標 → 反省 → 次のステップ」を繰り返す自律性が高いが、不安定になりがち例:AutoGP

AI

MCPプロトコルの理解 – AIと外部サービスの共通接続規格

MCPとはMCP(Model Context Protocol)は、AIアプリ(ChatGPTやClaudeなど)が外部システムとつながるための“共通の接続規格”です。これにより、AIは外部のデータ(ファイル・DBなど)やツール(検索・計算など)、ワークフローにアクセスし、作業をこなせるようになります。USB-C がデバイス同士を標準的につなぐのと同じように、MCP は AI と外部システムを標準的につなぐ“共通ポート”の役割を果たします。参考資料MCPとは https://modelcontextprotocol.io/docs/getting-started/introソース  https://github.com/modelcontextprotocol/modelcontextprotocolアーキテクチャ https://modelcontextprotocol.io/docs/learn/architecture仕様 https://modelcontextprotocol.io/specification/2025-06-1

その他

snowflake入門

snowflakeとは「データを集めて・分析して・共有するためのクラウドデータプラットフォーム」です。ただのデータベースではなく、データウェアハウス(DWH)+データレイク+AI分析基盤 の要素をすべて統合しています。snowflakeでできることのまとめ分野できること簡単な説明データ統合(Ingest)あらゆるデータをSnowflakeに集約CSV, JSON, API, S3, GCS, DBなどから一括取込データ分析(Query)SQLで超高速に分析BigQueryのように大量データを秒で集計BI連携(Visualization)Looker, Tableau, Power BIなどと接続グラフ・レポートを即可視化ETL / ELT処理Fivetran, Airbyte, dbtと連携データ加工・整形を自動化データ共有(Data Sharing)他社・他部門と安全にデータ共有ファイルを送らず、ビューで安全共有AI・機械学習連携(ML / LLM)Python / OpenAI / Vertex AI / SageMakerと連携Snowflake上のデー

Google

GCPでのインフラの理解

Firebase Hostingビルド済みの静的ファイル(HTML/CSS/JS/画像など)を Google のエッジに配って高速配信するグローバルCDNであり、静的オリジンです。静的サイト/SPA の高速配信:グローバル CDN、無料自動 SSL、HTTP/2/3シンプルなデプロイ:firebase deploy、ゼロダウンタイム、即ロールバックカスタムドメイン:Apex/WWW を簡単接続リダイレクト/ヘッダー/キャッシュ制御:firebase.json で宣言的に管理バックエンド連携(リライト):Cloud Functions / Cloud Run へ安全にプロキシプレビュー運用:Preview Channels(PR ごと短期 URL)Firebase App Hosting ビルドからアプリのサーバーをマネージドで管理してくれるフルスタックのウェブアプリ用の環境を提供します。Cloud Build → Artifact Registry → Cloud Run(サーバ実行)→ Cloud Loa

n8n

Cloud run上のn8nからFirestoreへの接続

はじめにn8nのワークフロー上に、Firestoreノードを配置し、クロールした商品情報を整形して、Firestoreへ格納するという機能の一部を紹介したいと思います。Firestoreデータベースの作成Standard edition (1MBまでのドキュメント)データベースID: xxxxx(default)のままにすると、この括弧つきの名前がそのままつかわれるロケーション: asia-northeast1モード:本番環境モードセキュリティの確認のためにはこちらである必要ありルール以下がデフォルトのルールで、すべてのドキュメントへのアクセスを禁止している{database}はすべてのデータベースにマッチする{document=**}はすべてのドキュメントにマッチする例えば、if falseを取ったら、すべてのドキュメントにアクセスできる注意:サービスアカウントは、このルールをバイパスするrules_version = '2';serv

n8n

n8nのホスティング – Google Cloud Runの使用

はじめに手順にしたがって、Google Cloud Runで、n8nをホスティングするまず、開発環境用の、メモリが保存されないEasy modeを説明するが、n8nようには、後述のDurable modeを使用しないと永続化できなかった。Durable modeの実行をおすすめする。手順Cloud Shell Access Settingsの有効化Google workspaceで、Cloud Shell Access Settingsを有効にするTerminalを開くOpen terminalボタンをクリックgcloudへログインする% gcloud auth loginYou are already authenticated with gcloud when runninginside the Cloud Shell and so do not need to run thiscommand. Do you wish to proceed anyway?Do you wa

Lang »