fix: improve maintenance and synchronize live conversations

This commit is contained in:
WangShen007 committed 2026-10-29 09:46:21 +08:00
1 parent bb541bd212
commit ef86a5d3af
297 files changed
+2983 -1274

No files matched your search

@@ -262,7 +262,6 @@ class Crawl4AIFallback:
# Always use a separate thread for running Crawl4AI to avoid conflicts
logger.debug("Event loop running, creating new loop in separate thread")
import concurrent.futures
import threading
result = [None, None, None]
+1 -2
View File
@@ -14,9 +14,8 @@ See the License for the specific language governing permissions and
limitations under the License.
"""
from typing import Any, Dict, Iterator, List, Optional
from typing import Any, Dict, Optional
from agno.knowledge.pdf import PDFKnowledgeBase
from agno.document import Document
from app.core.logger import get_logger
logger = get_logger(__name__)
+1 -1
View File
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License.
"""
from typing import Any, Dict, Iterator, List, Optional, Union
from typing import Any, Dict, Iterator, List, Optional
import time
from datetime import datetime
from concurrent.futures import ThreadPoolExecutor, as_completed
@@ -14,7 +14,6 @@ See the License for the specific language governing permissions and
limitations under the License.
"""
import random
import re
import socket
import threading
@@ -22,13 +21,12 @@ import time
from copy import deepcopy
from datetime import datetime
from dataclasses import dataclass, field
from typing import Dict, List, Set, Tuple, Optional, Callable
from typing import Dict, List, Tuple, Optional, Callable
from urllib.parse import urljoin, urlparse, urldefrag, urlunparse
from app.knowledge.crawler_identity import CRAWLER_USER_AGENT
from app.knowledge.url_safety import BlockedHostError
from app.knowledge.deadline import Deadline
from app.knowledge.page_fetch import NotAPage, fetch_page_text
import concurrent.futures
from concurrent.futures import ThreadPoolExecutor, as_completed
from bs4 import BeautifulSoup, Tag
@@ -47,7 +45,7 @@ from app.knowledge.crawl_scope import (
url_scheme,
)
from app.knowledge.domains import registrable_domain
from app.knowledge.failure_advice import FAILURE_ADVICE, FailureCause
from app.knowledge.failure_advice import FAILURE_ADVICE as FAILURE_ADVICE, FailureCause
from app.knowledge.main_content import select_main_node
# Initialize logger for this module
@@ -1330,4 +1328,4 @@ class EnhancedWebsiteReader(WebsiteReader):
duration = end_time - start_time
logger.info(f"[{datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] Completed reading from {url} - Created {len(documents)} documents (Total time: {duration:.2f}s)")
return documents
return documents
+3 -9
View File
@@ -14,8 +14,8 @@ See the License for the specific language governing permissions and
limitations under the License.
"""
from agno.knowledge.pdf import PDFKnowledgeBase, PDFImageReader, PDFReader
from agno.vectordb.pgvector import PgVector, SearchType
from agno.knowledge.pdf import PDFImageReader, PDFReader
from agno.vectordb.pgvector import SearchType
from app.knowledge.optimized_pgvector import OptimizedPgVector
from app.core.config import settings
from app.core.logger import get_logger
@@ -31,7 +31,6 @@ from app.knowledge.pdf_limits import PdfRefused, check_page_count
from app.models.knowledge import Knowledge, SourceType
from app.models.knowledge_to_agent import KnowledgeToAgent
from app.models.knowledge_queue import ProcessingStage, QueueStatus
from app.repositories.ai_config import AIConfigRepository
from app.database import SessionLocal
from app.repositories.knowledge_to_agent import KnowledgeToAgentRepository
from app.repositories.knowledge import KnowledgeRepository
@@ -47,7 +46,7 @@ from app.knowledge.embedder import get_embedder
# Try to import enterprise modules
try:
from app.enterprise.repositories.subscription import SubscriptionRepository
from app.enterprise.repositories.subscription import SubscriptionRepository # noqa: F401 - class presence selects enterprise knowledge behavior
HAS_ENTERPRISE = True
except ImportError:
HAS_ENTERPRISE = False
@@ -81,11 +80,6 @@ class KnowledgeManager:
self.org_id = org_id
self.agent_id = agent_id
# Get API key from AI config using context manager
with SessionLocal() as db:
ai_config_repo = AIConfigRepository(db)
ai_config = ai_config_repo.get_active_config(org_id)
# Default to SentenceTransformer embedder if no AI config is found
embedder = None
table_name = f"d_{org_id}"
+1 -1
View File
@@ -20,7 +20,7 @@ from hashlib import md5
from agno.document import Document
from agno.embedder import Embedder
from agno.reranker.base import Reranker
from agno.utils.log import log_debug, log_info, logger
from agno.utils.log import logger
from agno.vectordb.pgvector.pgvector import PgVector
from agno.vectordb.distance import Distance
from agno.vectordb.pgvector.index import HNSW, Ivfflat