91 lines
3.4 KiB
Bash
91 lines
3.4 KiB
Bash
|
|
#!/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 ""
|