#!/bin/sh # Диагностика проблемы с поиском в Open WebUI echo "=== ДИАГНОСТИКА ПОИСКА В OPEN WEBUI ===" echo "" # 1. Проверка SearXNG echo "1. Проверка SearXNG..." SEARXNG_STATUS=$(docker ps | grep searxng | awk '{print $7}') if [ "$SEARXNG_STATUS" = "healthy" ] || [ "$SEARXNG_STATUS" = "Up" ]; then echo "✓ SearXNG работает (статус: $SEARXNG_STATUS)" else echo "✗ SearXNG не работает (статус: $SEARXNG_STATUS)" fi # 2. Проверка JSON формата echo "" echo "2. Проверка JSON формата SearXNG..." JSON_TEST=$(docker exec open-webui curl -s "http://searxng:8080/search?q=test&format=json" 2>&1 | head -c 200) if echo "$JSON_TEST" | grep -q "results"; then echo "✓ JSON формат работает" else echo "✗ JSON формат не работает" echo " Ответ: $JSON_TEST" fi # 3. Проверка патча User-Agent echo "" echo "3. Проверка патча User-Agent..." RAG_BOT_FOUND=$(docker exec open-webui grep -r "RAG Bot" /app/backend/open_webui/routers/retrieval.py /app/backend/open_webui/utils/middleware.py 2>/dev/null | wc -l) if [ "$RAG_BOT_FOUND" -eq 0 ]; then echo "✓ Патч User-Agent применен (проблемная строка не найдена)" else echo "✗ Патч User-Agent НЕ применен (найдено вхождений: $RAG_BOT_FOUND)" echo " Нужно перезапустить Open WebUI для применения патча" fi # 4. Проверка логов Open WebUI на ошибки echo "" echo "4. Последние ошибки в логах Open WebUI..." docker logs open-webui --tail 50 2>&1 | grep -i "error\|user-agent\|invalid\|searxng" | tail -10 if [ $? -ne 0 ]; then echo " (Ошибок не найдено в последних 50 строках)" fi # 5. Проверка конфигурации docker-compose echo "" echo "5. Проверка конфигурации..." SEARXNG_URL=$(grep "SEARXNG_QUERY_URL" docker-compose.yml | head -1) echo " SEARXNG_QUERY_URL: $SEARXNG_URL" if echo "$SEARXNG_URL" | grep -q "format=json"; then echo "✓ URL содержит format=json" else echo "⚠ URL не содержит format=json явно" fi # 6. Проверка settings.yml echo "" echo "6. Проверка settings.yml SearXNG..." if grep -q "formats:" searxng/settings.yml && grep -q "json" searxng/settings.yml; then echo "✓ JSON формат включен в settings.yml" else echo "✗ JSON формат НЕ найден в settings.yml" fi if grep -q "limiter: false" searxng/settings.yml; then echo "✓ Лимитер отключен" else echo "⚠ Лимитер может быть включен" fi echo "" echo "=== РЕКОМЕНДАЦИИ ===" echo "" if [ "$RAG_BOT_FOUND" -gt 0 ]; then echo "1. Перезапустите Open WebUI для применения патча User-Agent:" echo " sudo docker restart open-webui" echo "" fi if ! echo "$JSON_TEST" | grep -q "results"; then echo "2. Исправьте конфигурацию SearXNG:" echo " sudo ./scripts/fix_searxng_config.sh" echo "" fi echo "3. Проверьте настройки в интерфейсе Open WebUI:" echo " Settings → Web Search" echo " URL должен быть: http://searxng:8080/search?q=&format=json" echo ""