s3labの記事一覧

AI

ChatGPT API ハック – EC営業AIの構築 – プロンプトと商品情報の連携

フェーズ1:プロンプトと商品情報の連携数件の商品(3〜5点)をJSONで用意system + user に商品情報を埋め込んで 呼び出し「人気・おすすめ」などの表現のトーンを制御レスポンスフォーマットをJSONに制御Shopifyから商品情報を取得store=access_token=curl -X GET "https://${store}.myshopify.com/admin/api/2025-01/products.json" \-H "X-Shopify-Access-Token: ${access_token}" > products.json必要な商品情報のみ取得import jsonwith open("products.json", "r", encoding="utf-8") as f: data = json.load(f)simplified_products =

AI

ChatGPT API ハック – ①どこまでできるのか

はじめにいまさらですが、ChatGPT APIで何ができるのか、使いながら試していきます。ChatGPT API を使って何が実現できるか?ChatGPT APIは「単に質問に答えるAI」ではなく、あなたのサービスや業務の中で、“対話可能な脳”を好きな形で埋め込めるインターフェースです。想像を超える使い方一覧主に、私のようにSaaSを作る人・ECを運営する人・AIを実装する人向けに、「ChatGPT APIを使えばここまでできる」という事例・構想を、段階別に紹介します。【レベル1】よくある使い方ユースケース内容ECサイトのチャットボット「この商品は何?」「返品できる?」などに答えるお問い合わせ自動応答営業時間・料金・手順などFAQ対応メール・文章生成カスタマー返信文を生成/修正レビュー要約商品レビューを要約/感情分類【レベル2】中級者向け(現場レベルの自動化)ユースケース内容APIログの分析&アラートlogから異常トラフィックを発見し、Slackに通知Shopifyの商品説明を自動生成商品メタ情報から自然な説明

その他 未分類

マルチテナントアーキテクチャの理解

マルチテナントアーキテクチャとは?「マルチテナントアーキテクチャ」とは、ひとつのソフトウェアやインフラを複数の利用者(テナント)が共有して使う仕組みのことを指します。たとえばクラウドサービスでは、1つのアプリケーションを何社ものお客さんが同時に使っていても、それぞれのデータや設定はしっかり分かれています。一般的には、データベースを共通したり、スキーマをどう分けるのか、といった技術的な話が多いですが、今回は、ユーザーからみた機能として、どのようなテナントアーキテクチャにすることがよいのか、有名なSaaSがどういう戦略をとっているのかを理解していきたいと思います。テナントとは?法人の管理者がSaaSとサービス利用の契約して管理者が社員や関係者を招待してその単位でデータや権限が管理されるそんな「組織としての利用の入れ物」です。SaaSの比較Slackビジネス向けのチームコミュニケーション(チャット)SaaS。チャンネル中心で会話・ファイル共有・通知連携を行う。テナントまわりテナント:ワーク

その他

Firestoreの特徴と基本的な使い方

Firestoreとは?Cloud Firestoreは、FirebaseとGoogle Cloudが提供する柔軟でスケーラブルなNoSQLドキュメントデータベースです。Web、モバイル、サーバー開発向けに設計されており、リアルタイム同期とオフラインサポートが特徴です。主なコンセプトは以下の通りです。ドキュメントとコレクション: Firestoreのデータは「ドキュメント」として保存されます。ドキュメントはキーと値のペアで構成されるデータの集合です。これらのドキュメントは「コレクション」にまとめられます。コレクションはドキュメントの集まりであり、さらにその中にサブコレクションとして別のコレクションを含めることもできます。これにより、データを階層的に整理できます。データ操作:追加 (Add/Set): コレクションに新しいドキュメントを追加したり、特定のIDでドキュメントを保存したりします。読み取り (Get): ドキュメントのIDを指定してデータを取得したり、コレクションから複数のドキュメン

未分類

Google AppSheetを久しぶりにつかってみたら、結構使いやすかった話

はじめに以前、ノーコードでモバイルアプリを作成できる Google AppSheet を評価しました。簡単にアプリを作れる一方で、ユーザーごとの課金体系が本番運用には適さず、導入には至りませんでした。しかし今回、Shopify 用の商品マスタや仕入ロットを Google Sheets で管理し、それを Shopify に一括登録する機能が必要となりました。調べたところ、2023 年から Google Workspace プランに AppSheet Core が含まれることが分かり、改めて利用してみることにしました。AppSheetで実現する機能Google Sheet(商品マスタ、仕入ロット)をデータソースとするSKUを自動生成、2テーブルをSKUでJOIN商品一覧、登録・編集ページ仕入ロット一覧、登録・編集ページ商品検索機能Shopify登録用の商品マスタ、仕入ロットデータ生成所感Google AppSheetがGoogle Workspaceに組み込まれたことで、メンバーは無料で使

その他

Monorepoでの設定例 – NestJS, Next.js

はじめにmonorepoは設定が決まるまで、かなり大変な作業ですが、一度うまくいけば、まとめて管理できるメリットがあり、少人数のプロジェクトにはむいていると思います。うまくいった設定を以下にメモし、今後の設定の見直しなどに利用しようと思います。アプリ全体の設定 ルートで、pnpm build, pnpm devで開発できるように設定./package.json{ "name": "my-app", "private": true, "packageManager": "pnpm@9.4.0", "scripts": { "dev": "turbo run dev --parallel", "build": "turbo run build", "lint": "tur

その他

Firebaseによる認証機能の実装

Firebaseプロジェクトの設定Firebaseプロジェクトを作成するFirebase 構築 > Authenticationを開くプロバイダから「匿名」を選択し、有効にする次に、プロバイダの追加で、「Google」を選択し、有効にするGCPサービスアカウントの所得Firebaseプロジェクトと同名で、GCPプロジェクトが作成されているIAMには、Firebase管理用のサービスアカウントが作成されているprivate keyを作成する、これは、後述のfirebase-adminの初期化に使用するNext.jsアプリの構築Next.jsアプリを生成する% npx create-next-app@latest apps/web✔ Would you like to use TypeScript? … No / Yes✔ Which linter would you like to use? › ESLint✔ Would you like to use Ta

その他

NestJS – LLMアダプタを抽象化するようにリファクタリング

はじめにDIを使っているのに、OpenAIとの結びつきが強いので、先に抽象化したコードを検討するLLM 抽象化アーキテクチャ1. LLMの抽象インターフェースを定義libにadaptersを生成する% npx nest g lib adapters✔ What prefix would you like to use for the library (default: @app or 'defaultLibraryPrefix' setting value)? CREATE libs/adapters/tsconfig.lib.json (222 bytes)CREATE libs/adapters/src/index.ts (71 bytes)CREATE libs/adapters/src/adapters.module.ts (202 bytes)CREATE libs/adapters/src/adapters.service.spec.ts (474 bytes)CREATE libs/adapters/

その他

NestJSとは – バックエンド用フレームワークでチャットAPIを実装してみる

NestJSとは?NestJSは、効率的でスケーラブルなサーバーサイドアプリケーションを構築するための、プログレッシブなNode.jsフレームワークです。TypeScriptをベースにしており、クリーンで整理されたコードを書くための構造を提供します。NestJSは、ただのライブラリではなく、アプリケーション全体の骨組み(フレームワーク)を提供することで、大規模なプロジェクトでも一貫性を保ち、開発を効率化することができます。本家の情報は、こちらを参照してください。NestJSの主な特徴1. TypeScriptファーストNestJSはTypeScriptを完全にサポートしています。これにより、静的型付け、インターフェース、デコレーターといったTypeScriptの強力な機能を利用でき、エラーを早期に発見し、保守しやすいコードを書くことができます。2. モジュール化されたアーキテクチャアプリケーションを再利用可能なモジュールに分割して構築します。これにより、コードの管理がしやすくなり、チーム開発や大規模なプロジェクトでも一貫性を保つことがで

その他

n8n – Community nodeの作り方

はじめにこちらのドキュメントを参考にします。n8n のコミュニティノードリポジトリに自作ノードを公開するための手順は以下の通りです:パッケージ名n8n-nodes- または @<scope>/n8n-nodes- で始める。例: n8n-nodes-weather。キーワードn8n-community-node-package を package.json の keywords に含める。package.json の設定n8n 属性の中に自作ノードと認証情報を追加する(starter node の例を参照)。動作確認Linter でチェックし、ローカルでテストして問題がないか確認する。公開npm レジストリにパッケージを登録・公開する(詳細は npm の公式ドキュメント参照)。👉 要するに、命名規則・package.json 設定・テスト・npm 公開が必須です。手順スターターノードをテンプレートレポジトリとして用意されています。このスターターリポジトリを基に、自分用のノードを開発し、npm に

Lang »