Files
iiEsaywebUI/scripts/diagnose_search.sh

91 lines
3.4 KiB
Bash
Raw Normal View History

#!/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=<query>&format=json"
echo ""