fix: improve maintenance and synchronize live conversations
This commit is contained in:
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]
|
||||
|
||||
@@ -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__)
|
||||
|
||||
@@ -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
|
||||
@@ -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}"
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in new issue
Block a user