Обзор
Это полноценный рабочий процесс уровня превратить-Feishu-Bitable-в-линию-генерации-изображений: операторы заполняют prompt и прикрепляют референсные файлы в строке, вложения автоматически конвертируются в OSS URL, затем workflow Coze вызывает Nano Banana Pro, а в итоге сгенерированное изображение возвращается в строку как вложение — пользователю не нужно вносить изменения в код. Автор (Shuaila1996) собрал это на основе реального боевого использования; решение включает 3 независимых, но работающих вместе части: шорткат поля Feishu, функцию Aliyun Function Compute и плагин Coze.
- 📦 Формат: распространяется как пакет кода (не опубликован на 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 как рабочая среда
Автоматическое вложение → OSS
Мультиключ для каждого пользователя
Пакетная генерация
Прямая запись обратно в строку
Понятная обработка ошибок
Поддерживаемые модели APIYI
Архитектура
Шаги развертывания
Шаг 1: инфраструктура Aliyun
- Подготовьте OSS bucket; создайте под-аккаунт RAM с разрешениями
oss:PutObjectиoss:ProcessObject - Подготовьте Function Compute (FC); создайте функцию с HTTP-триггером на Node.js 18+
- Установите зависимость:
ali-oss - Настройте переменные окружения (никогда не встраивайте ключи в код):

Шаг 2: разверните функцию Aliyun FC
aliyun-fc-oss-upload.js в вашей FC-функции. Функция:- Получает бинарные данные, переданные из ярлыка Feishu
- Загружает оригинал через
client.put - Сохраняет сжатую копию через
client.processObjectSave(длинная сторона 4500 / качество 95) - Оборачивает сжатый публичный URL в структуру
feishuWrapper, которую Feishu может разобрать
Шаг 3: создайте ярлык поля Feishu
feishu-attachment-to-oss.ts. Две замены:Шаг 4: настройте поля Feishu Bitable
Merged prompt:Шаг 5: разверните плагин и workflow Coze
- Разверните Python-плагин согласно Nano Banana Pro Coze Plugin
- Импортируйте экспорт workflow Coze от автора, который включает:
- Узел кода для разбиения изображений и prompt
- Узел словаря «API key для каждого пользователя» (имя вызывающего → ключ APIYI)
- Узел плагина Nano Banana Pro
- Агрегацию успеха / сбоя / ошибки
- Поддерживайте словарь «API key для каждого пользователя» внутри workflow
Шаг 6: подключите ярлык workflow Coze Feishu

- Укажите workflow token и workflow ID из Coze
- Имена полей в шаблоне запроса должны точно совпадать с именами входных данных workflow Coze
- Обязательные поля следуют флагу required workflow Coze
- В столбце
apichoiceдолжно хранитьсяapiyi, а не отображаемые строки вродеapiyi(0.35元/张)— иначе поиск в словаре не сработает
Шаг 7: URL → вложение для рендеринга результатов
- Купить напрямую: используйте официальный ярлык поля Coze «URL → attachment»
- Сделать самостоятельно: реализуйте собственный ярлык поля 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.
Полный исходный код для Aliyun Function Compute
Ниже приведен полныйaliyun-fc-oss-upload.js, готовый к вставке в Aliyun Function Compute (Node.js 18+). Все учётные данные читаются из переменных окружения — никогда не задавайте их в коде вручную.
Исходный код Coze-плагина
Python-плагинcoze-nanobanana-pro.py полностью встроен в Nano Banana Pro Coze плагин в разделе «Полный исходный код плагина» — просто скопируйте и вставьте, отдельная загрузка не нужна.
Примечания по безопасности
Частые вопросы
Шорткат Feishu не может достучаться до Aliyun FC
Шорткат Feishu не может достучаться до Aliyun FC
- Публичный домен FC указан в
basekit.addDomainList(без https://)? context.fetchиспользует полный URLhttps://?
workflow Coze сообщает об ошибке аккаунта или конфигурации
workflow Coze сообщает об ошибке аккаунта или конфигурации
- Содержит ли столбец
apichoiceapiyi(а не отображаемые строки вродеapiyi(0.35元/张))? - Включен ли вызывающий в словарь «per-user API key»?
- Точно ли имя вызывающего совпадает с полем person в Bitable (пробелы, упрощенное и традиционное написание)?
Изображение сгенерировано, но Feishu его не показывает
Изображение сгенерировано, но Feishu его не показывает
- Купить официальный шорткат Coze «URL → attachment» (проще всего)
- Сделать свой шорткат URL-to-attachment
Aliyun FC возвращает 500, но загрузка в OSS прошла успешно
Aliyun FC возвращает 500, но загрузка в OSS прошла успешно
processObjectSave или несоответствии региона bucket. Проверьте:- Включена ли на bucket обработка изображений?
- Совпадает ли
process.env.OSS_REGIONс фактическим регионом bucket? - Есть ли у RAM-субаккаунта разрешение
oss:ProcessObject?
Как ограничить массовую генерацию?
Как ограничить массовую генерацию?
- Добавить ограничения на параллельные запросы на входе workflow в Coze
- Запускать шорткаты полей в Bitable партиями по 5–10 строк за раз
- Распределять разные ключи APIYI между вызывающими, чтобы распределить лимиты запросов
Где полный код? Можно ли скопировать его напрямую?
Где полный код? Можно ли скопировать его напрямую?
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