Files
iiEsaywebUI/scripts/test_direct_vision.sh

69 lines
3.2 KiB
Bash
Raw Permalink Normal View History

#!/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