Skip to main content

Обзор

Это полноценный рабочий процесс уровня превратить-Feishu-Bitable-в-линию-генерации-изображений: операторы заполняют prompt и прикрепляют референсные файлы в строке, вложения автоматически конвертируются в OSS URL, затем workflow Coze вызывает Nano Banana Pro, а в итоге сгенерированное изображение возвращается в строку как вложение — пользователю не нужно вносить изменения в код. Автор (Shuaila1996) собрал это на основе реального боевого использования; решение включает 3 независимых, но работающих вместе части: шорткат поля Feishu, функцию Aliyun Function Compute и плагин Coze. Архитектура генерации изображений Feishu Bitable AI
Информация о проекте
  • 📦 Формат: распространяется как пакет кода (не опубликован на GitHub)
  • 👤 Автор: Shuaila1996
  • 🎯 Сценарий использования: Feishu Enterprise Bitable + Aliyun + Coze CN
  • 🔌 Модель: gemini-3-pro-image-preview (Nano Banana Pro, через APIYI)
  • 📝 Полный исходный код для шортката Feishu и функции Aliyun встроен в этот документ; исходный код плагина Coze находится в Nano Banana Pro Coze Plugin

Основные возможности

Bitable как рабочая среда

Операторы заполняют prompt и загружают эталонные изображения в Feishu Bitable — без кода и без редактора workflow

Автоматическое вложение → OSS

Пользовательский ярлык поля Feishu загружает бинарный файл, пересылает его в Aliyun FC, где он сжимается и отправляется в OSS

Мультиключ для каждого пользователя

В workflow Coze есть словарь «API key для каждого пользователя», который направляет ключи APIYI по каждому вызывающему — для прозрачного учета использования

Пакетная генерация

Нативные пакетные операции со строками в Bitable + ярлык поля = один клик для генерации от десятков до сотен изображений

Прямая запись обратно в строку

OSS URL, возвращенный из Coze, записывается обратно через официальный ярлык Feishu «URL → attachment» и отображается встроенно как вложение изображения

Понятная обработка ошибок

Ошибки модерации, отказы и тайм-ауты возвращаются в строку в виде понятного текста, их легко отсортировать и обработать

Поддерживаемые модели APIYI

Архитектура

Шаги развертывания

1

Шаг 1: инфраструктура Aliyun

  1. Подготовьте OSS bucket; создайте под-аккаунт RAM с разрешениями oss:PutObject и oss:ProcessObject
  2. Подготовьте Function Compute (FC); создайте функцию с HTTP-триггером на Node.js 18+
  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 в структуру feishuWrapper, которую Feishu может разобрать
После завершения обратите внимание на публичный URL триггера функции.
3

Шаг 3: создайте ярлык поля Feishu

Используйте фреймворк ярлыков полей Feishu, чтобы развернуть feishu-attachment-to-oss.ts. Две замены:
Ярлыки полей Feishu работают в официальной песочнице Feishu, где многие библиотеки Node.js недоступны, поэтому загрузку вложений нужно разделить на «ярлык загружает бинарные данные → FC загружает в OSS». Вы не можете вызывать OSS SDK напрямую из ярлыка.
Соберите пакет и отправьте его официальной команде Feishu, чтобы загрузить в вашу корпоративную библиотеку ярлыков.
4

Шаг 4: настройте поля Feishu Bitable

Настройте следующие поля в вашем Bitable:Пример формулы для Merged prompt:
5

Шаг 5: разверните плагин и workflow Coze

  1. Разверните Python-плагин согласно Nano Banana Pro Coze Plugin
  2. Импортируйте экспорт workflow Coze от автора, который включает:
    • Узел кода для разбиения изображений и prompt
    • Узел словаря «API key для каждого пользователя» (имя вызывающего → ключ APIYI)
    • Узел плагина Nano Banana Pro
    • Агрегацию успеха / сбоя / ошибки
  3. Поддерживайте словарь «API key для каждого пользователя» внутри workflow
6

Шаг 6: подключите ярлык workflow Coze Feishu

Добавьте в Bitable либо официальный, либо собственный ярлык поля «Coze workflow call», настроенный как показано ниже:Конфигурация вызова workflow Coze FeishuКлючевые моменты:
  • Укажите workflow token и workflow ID из Coze
  • Имена полей в шаблоне запроса должны точно совпадать с именами входных данных workflow Coze
  • Обязательные поля следуют флагу required workflow Coze
  • В столбце apichoice должно храниться apiyi, а не отображаемые строки вроде apiyi(0.35元/张) — иначе поиск в словаре не сработает
7

Шаг 7: URL → вложение для рендеринга результатов

Последний шаг: преобразуйте URL, который возвращает Coze, в изображение-вложение Feishu. Два варианта:
  1. Купить напрямую: используйте официальный ярлык поля Coze «URL → attachment»
  2. Сделать самостоятельно: реализуйте собственный ярлык поля URL-to-attachment, следуя документации Feishu

Формула объединенного prompt

Формула «Merged prompt» в Bitable:
CHAR(10) — это перевод строки, позволяющий узлу кода Coze разделять prompt и URL изображений по \n.

Полный исходный код Feishu Field Shortcut

Ниже приведен полный feishu-attachment-to-oss.ts, готовый для вставки в фреймворк Feishu Field Shortcut. Перед развертыванием нужно заменить только два feishu-service плейсхолдера на ваш публичный домен / URL Aliyun FC.
feishu-attachment-to-oss.ts

Полный исходный код для Aliyun Function Compute

Ниже приведен полный aliyun-fc-oss-upload.js, готовый к вставке в Aliyun Function Compute (Node.js 18+). Все учётные данные читаются из переменных окружения — никогда не задавайте их в коде вручную.
Функция возвращает feishuWrapper(...) двухуровневую структуру: слой HTTP всегда возвращает 200 (так что Feishu’s fetch не вызывает ошибку при non-2xx); реальный статус и полезная нагрузка находятся внутри body (это строка JSON), которую 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 перед commit
  2. OSS-подаккаунт, минимальные права: только oss:PutObject + oss:ProcessObject для целевого bucket, никогда глобально
  3. Выдавайте APIYI keys отдельно для каждого пользователя: используйте словарь на пользователя, его легко проверять и отзывать
  4. Подписывайте публичный trigger FC: включите signature auth на trigger Function Compute, чтобы блокировать внешнее злоупотребление

Частые вопросы

Проверьте два момента:
  1. Публичный домен FC указан в basekit.addDomainList (без https://)?
  2. context.fetch использует полный URL https://?
Песочница Feishu блокирует любой домен, который вы не объявили.
Сначала проверьте:
  • Содержит ли столбец apichoice apiyi (а не отображаемые строки вроде apiyi(0.35元/张))?
  • Включен ли вызывающий в словарь «per-user API key»?
  • Точно ли имя вызывающего совпадает с полем person в Bitable (пробелы, упрощенное и традиционное написание)?
По умолчанию Coze возвращает текстовый URL; для отображения Feishu нужен еще один шорткат «URL → attachment». Можно:
  1. Купить официальный шорткат Coze «URL → attachment» (проще всего)
  2. Сделать свой шорткат URL-to-attachment
Обычно проблема в параметре processObjectSave или несоответствии региона bucket. Проверьте:
  • Включена ли на bucket обработка изображений?
  • Совпадает ли process.env.OSS_REGION с фактическим регионом bucket?
  • Есть ли у RAM-субаккаунта разрешение oss:ProcessObject?
Nano Banana Pro 4K работает медленно. Рекомендуется:
  • Добавить ограничения на параллельные запросы на входе workflow в Coze
  • Запускать шорткаты полей в Bitable партиями по 5–10 строк за раз
  • Распределять разные ключи APIYI между вызывающими, чтобы распределить лимиты запросов
Да — все фрагменты встроены в документацию (предоставлено Shuaila1996), готовы к копированию и вставке:
  • feishu-attachment-to-oss.ts (шорткат поля Feishu) → см. «Полный исходный код шортката поля Feishu» выше на этой странице
  • aliyun-fc-oss-upload.js (Aliyun FC) → см. «Полный исходный код Aliyun Function Compute» выше на этой странице
  • coze-nanobanana-pro.py (плагин Coze) → см. «Полный исходный код плагина» в Плагин Coze для Nano Banana Pro

Связанные ресурсы

Nano Banana Pro Coze Plugin

Код плагина Coze и подробное руководство — также полезно отдельно для любого рабочего процесса Coze, которому нужен Nano Banana Pro

Nano Banana Pro Doc

Полная документация API, цены и примеры генерации

FAQ по сбоям генерации изображений

Руководство по устранению неполадок Nano Banana

APIYI Console

Управляйте ключами API, просматривайте использование и баланс