Задать вопрос
@Reyfli

Возможно ли сделать так, чтобы Telegram GPT-Yandex.Cloud Бот отвечал не только на текстовые сообщения, но и на картинки? И если да, то как?

Появился вопрос: "А можно ли и как сделать так, чтобы GPT бот отвечал на полученные изображения? Сможет ли он их распознавать?" Вот мой нынешний код. Я, пока что, пробовал менять тип сообщения text на photo, но сам бот выдавал ошибки. Нужно ли подключать дополнительные библиотеки Yandex.Cloud и если да, то какие?

import requests
import telebot
from telebot import types

bot = telebot.TeleBot('АПИ КЛЮЧ БОТА ТГ')


@bot.message_handler(commands=['start'])
def start(message):
    markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
    with open('C:/Users/User/OneDrive/Рабочий стол/2.png', 'rb') as photo:
        bot.send_photo(message.from_user.id, photo, caption='Привет!', reply_markup=markup, parse_mode='Markdown')


@bot.message_handler(content_types=['text'])
def get_text_messages(message):
    prompt = {
        "modelUri": "gpt://и тут ещё писать надо/yandexgpt-lite",
        "completionOptions": {
            "stream": False,
            "temperature": 0.6,
            "maxTokens": "2000"
        },
        "messages": [
            {
                "role": "system",
                "text": "Ты ассистент робот, способный помочь человеку будущего!"
            },
            {
                "role": "user",
                "text": message.text
            }
        ]
    }

    url = "https://llm.api.cloud.yandex.net/foundationModels/v1/completion"
    headers = {
        "Content-Type": "application/json",
        "Authorization": "Api-Key МОЙ АПИ КЛЮЧ"
    }

    response = requests.post(url, headers=headers, json=prompt)
    result = response.json()
    text_response = result["result"]["alternatives"][0]["message"]["text"]

    bot.send_message(message.from_user.id, text_response,parse_mode='Markdown')

bot.polling(none_stop=True, interval=0)
  • Вопрос задан
  • 572 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Python-разработчик: расширенный курс + нейросети
    12 месяцев
    Далее
  • Академия Эдюсон
    Python-разработчик + ИИ
    9 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Python-разработчик + ИИ
    8 месяцев
    Далее
Решения вопроса 1
У yandex gpt нет функции для распознавания картинок - это чисто текстовая нейросетка
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@Drevn1y
Попробуй использовать Chat GPT 4.0 токен
Ответ написан
wturm
@wturm
Да, такую схему можно сделать, но обычная текстовая GPT-модель не начнёт понимать картинки только потому, что вы передали ей файл из Telegram. Нужна модель или API, которые умеют работать с изображениями.

Общая схема такая:

1. Бот получает `photo` или `document` от пользователя.
2. Через Telegram Bot API забираете `file_id`, затем получаете путь к файлу и скачиваете изображение.
3. Проверяете размер, формат, лимиты и тип содержимого.
4. Передаёте изображение в vision/multimodal API, если выбранная модель это поддерживает.
5. Полученный текстовый результат уже отправляете пользователю сообщением.

Если API принимает изображение в base64, значит перед отправкой нужно прочитать файл и закодировать его. Если API принимает ссылку, нужно дать ему доступный URL, но тут сразу появляются вопросы приватности и времени жизни файла.

Что проверить:

- поддерживает ли конкретная модель изображения;
- какие форматы разрешены: jpg, png, webp;
- максимальный размер файла;
- есть ли лимиты по токенам/запросам;
- что делать, если пользователь прислал не фото, а PDF, скрин плохого качества или несколько изображений.

Риск: не отправляйте в модель личные документы без предупреждения пользователя. Если бот публичный, добавьте ограничение размера файла, rate limit и понятную обработку ошибок, иначе расходы и очередь запросов быстро выйдут из-под контроля.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы