#!/bin/bash # Прямой тест vision через Ollama API (минуя Open WebUI) set -e CONTAINER_OLLAMA="ollama" MODEL="gemma3n:e4b-it-fp16" IMAGE_FILE="/home/its/iiEasyWeb/test_images/test_image.jpg" echo "=== Прямой тест Vision через Ollama API ===" echo "" # Проверка файла изображения if [ ! -f "$IMAGE_FILE" ]; then echo "✗ Файл изображения не найден: $IMAGE_FILE" echo "Скачайте изображение сначала" exit 1 fi echo "1. Кодирование изображения в base64..." IMAGE_B64=$(base64 -w 0 "$IMAGE_FILE" 2>/dev/null || base64 "$IMAGE_FILE" | tr -d '\n') echo " ✓ Изображение закодировано (${#IMAGE_B64} символов)" echo "" echo "2. Отправка запроса к Ollama API..." echo " Модель: $MODEL" echo " Промпт: Опиши это изображение на русском языке. Что ты видишь?" echo "" # Определяем команду docker DOCKER_CMD="docker" if ! docker ps >/dev/null 2>&1; then DOCKER_CMD="sudo docker" fi # Отправляем запрос RESPONSE=$($DOCKER_CMD exec $CONTAINER_OLLAMA curl -s --max-time 120 -X POST http://localhost:11434/api/generate \ -H 'Content-Type: application/json' \ -d "{ \"model\": \"$MODEL\", \"prompt\": \"Опиши это изображение на русском языке. Что ты видишь на картинке?\", \"images\": [\"$IMAGE_B64\"], \"stream\": false }" 2>&1) echo "" if echo "$RESPONSE" | grep -q '"response"'; then echo "✓ Успешно! Ответ модели:" echo "" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "$RESPONSE" | python3 -c "import sys, json; data=json.load(sys.stdin); print(data.get('response', ''))" 2>/dev/null || \ echo "$RESPONSE" | grep -o '"response":"[^"]*"' | sed 's/"response":"\(.*\)"/\1/' | sed 's/\\n/\n/g' | sed 's/\\"/"/g' echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "" echo "=== ✓ Vision работает напрямую через Ollama API! ===" echo "" echo "Если это работает, значит проблема в Open WebUI, а не в Ollama." echo "Возможные причины:" echo " 1. Open WebUI v0.8.3 не поддерживает vision для gemma3n" echo " 2. Модель не помечена как vision-модель в настройках" echo " 3. Нужно обновить Open WebUI до более новой версии" elif echo "$RESPONSE" | grep -q "error\|Error"; then echo "✗ Ошибка:" echo "$RESPONSE" | grep -i error || echo "$RESPONSE" else echo "⚠ Неожиданный ответ:" echo "$RESPONSE" | head -20 fi