Skip to main content

概要

これは、Feishu Bitable を画像制作ラインに変える完全なワークフローです。運用担当者は1行に prompt と参照添付ファイルを入力し、添付ファイルは自動で OSS URL に変換され、その後 Coze ワークフローが Nano Banana Pro を呼び出し、最終的に生成された画像が添付ファイルとして再びその行に戻ります。ユーザー側のコード修正は一切不要です 作者の Shuaila1996 が、実運用での利用からこの構成を整理したもので、Feishu のフィールドショートカット、アリババクラウド Function Compute 関数、そして Coze プラグインという、独立しつつ連携する 3 つの要素で成り立っています。 Feishu Bitable AI画像生成アーキテクチャ
プロジェクト情報
  • 📦 形式: コードパッケージとして共有(GitHub では公開していません
  • 👤 作者: Shuaila1996
  • 🎯 利用シーン: Feishu Enterprise Bitable + アリババクラウド + Coze CN
  • 🔌 モデル: gemini-3-pro-image-preview (Nano Banana Pro, via APIYI)
  • 📝 Feishu ショートカットとアリババクラウド関数の完全なソースはこのドキュメント内に埋め込まれています。Coze プラグインのソースは Nano Banana Pro Coze プラグイン にあります

主な機能

Bitable を作業台として使用

オペレーターは Feishu Bitable で prompt を入力し、参考画像をアップロードします。コードもワークフローエディターも不要です

自動添付 → OSS

Feishu のカスタムフィールドショートカットがバイナリをダウンロードし、Aliyun FC に転送して圧縮し、OSS にアップロードします

ユーザーごとのマルチキー

Coze のワークフローには「ユーザーごとの API key」辞書があり、APIYI の key を呼び出し元ごとに振り分けます。利用集計をきれいに行えます

一括生成

Bitable の標準バッチ行操作 + フィールドショートカット = ワンクリックで数十〜数百枚の画像を生成できます

行への直接書き戻し

Coze から返された OSS URL は、Feishu の公式「URL → 添付」ショートカットで書き戻され、画像添付としてインライン表示されます

明確なエラー通知

モデレーション失敗、拒否、タイムアウトは行内にわかりやすいテキストとして返り、切り分けしやすいです

対応 APIYI モデル

アーキテクチャ

デプロイ手順

1

手順 1: Aliyun のインフラ

  1. OSS バケットを用意し、RAM サブアカウントに oss:PutObjectoss:ProcessObject の権限を付与します
  2. Function Compute (FC) を用意し、Node.js 18+ で HTTP トリガーの関数を作成します
  3. 依存関係をインストールします: ali-oss
  4. 環境変数を設定します(キーは絶対にハードコードしないでください):
Aliyun Function Compute の設定
2

手順 2: Aliyun FC 関数をデプロイする

著者の aliyun-fc-oss-upload.js を FC 関数に配置します。この関数は次を行います:
  • Feishu ショートカットから転送されたバイナリを受け取ります
  • client.put 経由で元ファイルをアップロードします
  • client.processObjectSave 経由で圧縮コピーを保存します(長辺 4500 / 品質 95)
  • 圧縮済みの公開 URL を、Feishu が解析できる feishuWrapper 構造でラップします
完了したら、この関数の公開トリガー URLを控えておきます。
3

手順 3: Feishu フィールドショートカットを作成する

Feishu フィールドショートカットフレームワーク を使って feishu-attachment-to-oss.ts をデプロイします。置き換えは 2 か所です:
Feishu のフィールドショートカットは Feishu 公式サンドボックス内で実行され、多くの Node.js ライブラリは利用できません。そのため、添付のアップロードは「ショートカットがバイナリをダウンロード → FC が OSS にアップロード」という 2 段階に分ける必要があります。ショートカットから OSS SDK を直接呼び出すことはできません。
パッケージ化して Feishu の公式チームに提出し、企業のショートカットライブラリへアップロードします。
4

手順 4: Feishu Bitable のフィールドを設定する

Bitable に次のフィールドを設定します:Merged prompt の数式例:
5

手順 5: Coze プラグインとワークフローをデプロイする

  1. Nano Banana Pro Coze Plugin に従って Python プラグインをデプロイします
  2. 著者の Coze ワークフロー書き出しをインポートします。内容は次のとおりです:
    • 画像と prompt を分割するコードノード
    • 「ユーザーごとの API key」辞書ノード(caller 名 → APIYI key)
    • Nano Banana Pro プラグインノード
    • 成功 / 失敗 / エラーの集約
  3. ワークフロー内の「ユーザーごとの API key」辞書を維持します
6

手順 6: Feishu の Coze ワークフローショートカットを接続する

Feishu 公式またはカスタムの「Coze ワークフロー呼び出し」フィールドショートカットを Bitable に追加し、以下のように設定します:Feishu Coze ワークフロー呼び出しの設定要点:
  • Coze からワークフロー token とワークフロー ID を入力します
  • リクエストテンプレート内のフィールド名は Coze ワークフローの入力名と完全に一致させる必要があります
  • 必須フィールドは Coze ワークフローの required フラグに従います
  • apichoice 列には apiyi を入れ、apiyi(0.35元/张) のような表示文字列は入れないでください。そうしないと辞書のルックアップに失敗します
7

手順 7: URL → 添付で結果をレンダリングする

最後の手順です。Coze が返す URL を Feishu の画像添付に変換します。選択肢は 2 つあります:
  1. 直接購入: 公式 Coze の「URL → 添付」フィールドショートカットを使います
  2. 自作する: Feishu のドキュメントに従って、カスタムの URL→添付フィールドショートカットを実装します

Bitable マージ式

Bitable の「マージ済み prompt」式:
CHAR(10) は改行で、Coze のコードノードが prompt と image URLs を \n で分割できるようにします.

Feishu フィールドショートカット完全ソース

以下は完全な feishu-attachment-to-oss.ts で、Feishu のフィールドショートカットフレームワークにそのまま差し込めます。デプロイ前に、feishu-service のプレースホルダー 2 つだけを Aliyun FC の公開ドメイン / URL に置き換えてください。
feishu-attachment-to-oss.ts

Aliyun Function Compute 完全ソース

以下は完全な aliyun-fc-oss-upload.js で、Aliyun Function Compute (Node.js 18+) にそのまま貼り付けられます。認証情報はすべて環境変数から読み込みます — 絶対にハードコードしないでください。
この関数は feishuWrapper(...) の二重構造を返します。HTTP レイヤーは常に 200 を返し(そのため Feishu の fetch は 2xx 以外で例外を投げません)、実際のステータスとペイロードは bodyJSON string)の中に入り、Feishu は JSON.parse(result.body) でこれを展開します。
aliyun-fc-oss-upload.js

Coze プラグインソース

Python プラグイン coze-nanobanana-pro.py は、Nano Banana Pro Coze プラグイン の「プラグイン完全ソース」セクションに完全に組み込まれており、別途ダウンロードする必要はありません。

セキュリティ注意事項

このスタックには API keys、Aliyun AccessKey、Feishu tokens、Coze tokens など、複数の認証情報が含まれます。常に次を守ってください。
  1. キーをハードコードしない: Aliyun FC では env vars を使い、Coze ではプラットフォームの暗号化設定を使い、Feishu のショートカットではコミット前に実URLを消去します
  2. OSS のサブアカウント、最小権限: 対象バケットには oss:PutObject + oss:ProcessObject のみを付与し、グローバル権限は付与しません
  3. APIYI キーは個人ごとに配布: ユーザー別の辞書を使うと、監査と失効が簡単です
  4. FC の公開トリガーに署名を付与: Function Compute トリガーで署名認証を有効にして、外部からの悪用を防ぎます

よくある質問

確認は 2 点です:
  1. FC の公開ドメインは basekit.addDomainList にありますか(https:// なしで)?
  2. context.fetch は完全な https:// URL を使っていますか?
Feishu のサンドボックスは、宣言していないドメインをすべてブロックします。
まず確認してください:
  • apichoice 列に apiyi が入っていますか(apiyi(0.35元/张) のような表示文字列ではなく)?
  • 呼び出し元は「per-user API key」辞書に登録されていますか?
  • 呼び出し元の名前は Bitable の人員フィールドと完全一致していますか(空白や簡体字・繁体字の違いも含めて)?
Coze はデフォルトでテキストの URL を返します。Feishu で表示するには、別の「URL → attachment」ショートカットが必要です。いずれかを選んでください:
  1. Coze の公式「URL → attachment」ショートカットを購入する(最も簡単)
  2. 独自の URL-to-attachment ショートカットを作成する
通常は processObjectSave パラメータかバケットリージョンの不一致です。確認してください:
  • バケットで画像処理が有効になっていますか?
  • process.env.OSS_REGION はバケットの実際のリージョンと一致していますか?
  • RAM サブアカウントに oss:ProcessObject 権限がありますか?
Nano Banana Pro 4K は遅いです。推奨は次のとおりです:
  • Coze ワークフローの入口で同時実行数制限を追加する
  • Bitable のトリガーフィールドショートカットを一度に 5〜10 行ずつバッチ実行する
  • APIYI の異なるキーを呼び出し元ごとに分散し、レート制限を分散させる
はい — すべての要素がドキュメント内に埋め込まれており(Shuaila1996 提供)、そのままコピペできます:
  • feishu-attachment-to-oss.ts(Feishu フィールドショートカット)→ このページ上部の「Feishu Field Shortcut 完全ソース」を参照してください
  • aliyun-fc-oss-upload.js(Aliyun FC)→ このページ上部の「Aliyun Function Compute 完全ソース」を参照してください
  • coze-nanobanana-pro.py(Coze プラグイン)→ Nano Banana Pro Coze Plugin の「プラグイン完全ソース」を参照してください

関連リソース

Nano Banana Pro Coze プラグイン

付属の Coze プラグインコードと詳細ガイド — Nano Banana Pro が必要なあらゆる Coze ワークフローでも単体で役立ちます

Nano Banana Pro Doc

完全な API ドキュメント、料金、生成サンプル

画像生成失敗 FAQ

Nano Banana の失敗トラブルシューティングガイド

APIYI Console

APIキーを管理し、利用状況と残高を確認します