mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-07-22 23:31:12 +02:00
fix: break circular import in llm_service and kb_sync_service files
This commit is contained in:
parent
45b72de481
commit
739345671b
10 changed files with 38 additions and 10 deletions
|
|
@ -5,7 +5,6 @@ from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
|
|
||||||
from app.connectors.confluence_history import ConfluenceHistoryConnector
|
from app.connectors.confluence_history import ConfluenceHistoryConnector
|
||||||
from app.db import Document, DocumentType
|
from app.db import Document, DocumentType
|
||||||
from app.services.llm_service import get_user_long_context_llm
|
|
||||||
from app.utils.document_converters import (
|
from app.utils.document_converters import (
|
||||||
create_document_chunks,
|
create_document_chunks,
|
||||||
embed_text,
|
embed_text,
|
||||||
|
|
@ -66,6 +65,8 @@ class ConfluenceKBSyncService:
|
||||||
if dup:
|
if dup:
|
||||||
content_hash = unique_hash
|
content_hash = unique_hash
|
||||||
|
|
||||||
|
from app.services.llm_service import get_user_long_context_llm
|
||||||
|
|
||||||
user_llm = await get_user_long_context_llm(
|
user_llm = await get_user_long_context_llm(
|
||||||
self.db_session,
|
self.db_session,
|
||||||
user_id,
|
user_id,
|
||||||
|
|
@ -184,6 +185,8 @@ class ConfluenceKBSyncService:
|
||||||
|
|
||||||
space_id = (document.document_metadata or {}).get("space_id", "")
|
space_id = (document.document_metadata or {}).get("space_id", "")
|
||||||
|
|
||||||
|
from app.services.llm_service import get_user_long_context_llm
|
||||||
|
|
||||||
user_llm = await get_user_long_context_llm(
|
user_llm = await get_user_long_context_llm(
|
||||||
self.db_session, user_id, search_space_id, disable_streaming=True
|
self.db_session, user_id, search_space_id, disable_streaming=True
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,6 @@ from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
|
|
||||||
from app.db import Document, DocumentType
|
from app.db import Document, DocumentType
|
||||||
from app.indexing_pipeline.document_hashing import compute_identifier_hash
|
from app.indexing_pipeline.document_hashing import compute_identifier_hash
|
||||||
from app.services.llm_service import get_user_long_context_llm
|
|
||||||
from app.utils.document_converters import (
|
from app.utils.document_converters import (
|
||||||
create_document_chunks,
|
create_document_chunks,
|
||||||
embed_text,
|
embed_text,
|
||||||
|
|
@ -73,6 +72,8 @@ class DropboxKBSyncService:
|
||||||
)
|
)
|
||||||
content_hash = unique_hash
|
content_hash = unique_hash
|
||||||
|
|
||||||
|
from app.services.llm_service import get_user_long_context_llm
|
||||||
|
|
||||||
user_llm = await get_user_long_context_llm(
|
user_llm = await get_user_long_context_llm(
|
||||||
self.db_session,
|
self.db_session,
|
||||||
user_id,
|
user_id,
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,6 @@ from datetime import datetime
|
||||||
from sqlalchemy.ext.asyncio import AsyncSession
|
from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
|
|
||||||
from app.db import Document, DocumentType
|
from app.db import Document, DocumentType
|
||||||
from app.services.llm_service import get_user_long_context_llm
|
|
||||||
from app.utils.document_converters import (
|
from app.utils.document_converters import (
|
||||||
create_document_chunks,
|
create_document_chunks,
|
||||||
embed_text,
|
embed_text,
|
||||||
|
|
@ -78,6 +77,8 @@ class GmailKBSyncService:
|
||||||
)
|
)
|
||||||
content_hash = unique_hash
|
content_hash = unique_hash
|
||||||
|
|
||||||
|
from app.services.llm_service import get_user_long_context_llm
|
||||||
|
|
||||||
user_llm = await get_user_long_context_llm(
|
user_llm = await get_user_long_context_llm(
|
||||||
self.db_session,
|
self.db_session,
|
||||||
user_id,
|
user_id,
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,6 @@ from app.db import (
|
||||||
SearchSourceConnector,
|
SearchSourceConnector,
|
||||||
SearchSourceConnectorType,
|
SearchSourceConnectorType,
|
||||||
)
|
)
|
||||||
from app.services.llm_service import get_user_long_context_llm
|
|
||||||
from app.utils.document_converters import (
|
from app.utils.document_converters import (
|
||||||
create_document_chunks,
|
create_document_chunks,
|
||||||
embed_text,
|
embed_text,
|
||||||
|
|
@ -91,6 +90,8 @@ class GoogleCalendarKBSyncService:
|
||||||
)
|
)
|
||||||
content_hash = unique_hash
|
content_hash = unique_hash
|
||||||
|
|
||||||
|
from app.services.llm_service import get_user_long_context_llm
|
||||||
|
|
||||||
user_llm = await get_user_long_context_llm(
|
user_llm = await get_user_long_context_llm(
|
||||||
self.db_session,
|
self.db_session,
|
||||||
user_id,
|
user_id,
|
||||||
|
|
@ -249,6 +250,8 @@ class GoogleCalendarKBSyncService:
|
||||||
if not indexable_content:
|
if not indexable_content:
|
||||||
return {"status": "error", "message": "Event produced empty content"}
|
return {"status": "error", "message": "Event produced empty content"}
|
||||||
|
|
||||||
|
from app.services.llm_service import get_user_long_context_llm
|
||||||
|
|
||||||
user_llm = await get_user_long_context_llm(
|
user_llm = await get_user_long_context_llm(
|
||||||
self.db_session, user_id, search_space_id, disable_streaming=True
|
self.db_session, user_id, search_space_id, disable_streaming=True
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,6 @@ from datetime import datetime
|
||||||
from sqlalchemy.ext.asyncio import AsyncSession
|
from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
|
|
||||||
from app.db import Document, DocumentType
|
from app.db import Document, DocumentType
|
||||||
from app.services.llm_service import get_user_long_context_llm
|
|
||||||
from app.utils.document_converters import (
|
from app.utils.document_converters import (
|
||||||
create_document_chunks,
|
create_document_chunks,
|
||||||
embed_text,
|
embed_text,
|
||||||
|
|
@ -75,6 +74,8 @@ class GoogleDriveKBSyncService:
|
||||||
)
|
)
|
||||||
content_hash = unique_hash
|
content_hash = unique_hash
|
||||||
|
|
||||||
|
from app.services.llm_service import get_user_long_context_llm
|
||||||
|
|
||||||
user_llm = await get_user_long_context_llm(
|
user_llm = await get_user_long_context_llm(
|
||||||
self.db_session,
|
self.db_session,
|
||||||
user_id,
|
user_id,
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,6 @@ from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
|
|
||||||
from app.connectors.jira_history import JiraHistoryConnector
|
from app.connectors.jira_history import JiraHistoryConnector
|
||||||
from app.db import Document, DocumentType
|
from app.db import Document, DocumentType
|
||||||
from app.services.llm_service import get_user_long_context_llm
|
|
||||||
from app.utils.document_converters import (
|
from app.utils.document_converters import (
|
||||||
create_document_chunks,
|
create_document_chunks,
|
||||||
embed_text,
|
embed_text,
|
||||||
|
|
@ -75,6 +74,8 @@ class JiraKBSyncService:
|
||||||
if dup:
|
if dup:
|
||||||
content_hash = unique_hash
|
content_hash = unique_hash
|
||||||
|
|
||||||
|
from app.services.llm_service import get_user_long_context_llm
|
||||||
|
|
||||||
user_llm = await get_user_long_context_llm(
|
user_llm = await get_user_long_context_llm(
|
||||||
self.db_session,
|
self.db_session,
|
||||||
user_id,
|
user_id,
|
||||||
|
|
@ -190,6 +191,8 @@ class JiraKBSyncService:
|
||||||
state = formatted.get("status", "Unknown")
|
state = formatted.get("status", "Unknown")
|
||||||
comment_count = len(formatted.get("comments", []))
|
comment_count = len(formatted.get("comments", []))
|
||||||
|
|
||||||
|
from app.services.llm_service import get_user_long_context_llm
|
||||||
|
|
||||||
user_llm = await get_user_long_context_llm(
|
user_llm = await get_user_long_context_llm(
|
||||||
self.db_session, user_id, search_space_id, disable_streaming=True
|
self.db_session, user_id, search_space_id, disable_streaming=True
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,6 @@ from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
|
|
||||||
from app.connectors.linear_connector import LinearConnector
|
from app.connectors.linear_connector import LinearConnector
|
||||||
from app.db import Document, DocumentType
|
from app.db import Document, DocumentType
|
||||||
from app.services.llm_service import get_user_long_context_llm
|
|
||||||
from app.utils.document_converters import (
|
from app.utils.document_converters import (
|
||||||
create_document_chunks,
|
create_document_chunks,
|
||||||
embed_text,
|
embed_text,
|
||||||
|
|
@ -85,6 +84,8 @@ class LinearKBSyncService:
|
||||||
)
|
)
|
||||||
content_hash = unique_hash
|
content_hash = unique_hash
|
||||||
|
|
||||||
|
from app.services.llm_service import get_user_long_context_llm
|
||||||
|
|
||||||
user_llm = await get_user_long_context_llm(
|
user_llm = await get_user_long_context_llm(
|
||||||
self.db_session,
|
self.db_session,
|
||||||
user_id,
|
user_id,
|
||||||
|
|
@ -226,6 +227,8 @@ class LinearKBSyncService:
|
||||||
comment_count = len(formatted_issue.get("comments", []))
|
comment_count = len(formatted_issue.get("comments", []))
|
||||||
formatted_issue.get("description", "")
|
formatted_issue.get("description", "")
|
||||||
|
|
||||||
|
from app.services.llm_service import get_user_long_context_llm
|
||||||
|
|
||||||
user_llm = await get_user_long_context_llm(
|
user_llm = await get_user_long_context_llm(
|
||||||
self.db_session, user_id, search_space_id, disable_streaming=True
|
self.db_session, user_id, search_space_id, disable_streaming=True
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,6 @@ from langchain_litellm import ChatLiteLLM
|
||||||
from sqlalchemy.ext.asyncio import AsyncSession
|
from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
from sqlalchemy.future import select
|
from sqlalchemy.future import select
|
||||||
|
|
||||||
from app.agents.new_chat.llm_config import SanitizedChatLiteLLM
|
|
||||||
from app.config import config
|
from app.config import config
|
||||||
from app.db import NewLLMConfig, SearchSpace
|
from app.db import NewLLMConfig, SearchSpace
|
||||||
from app.services.llm_router_service import (
|
from app.services.llm_router_service import (
|
||||||
|
|
@ -204,6 +203,8 @@ async def validate_llm_config(
|
||||||
if litellm_params:
|
if litellm_params:
|
||||||
litellm_kwargs.update(litellm_params)
|
litellm_kwargs.update(litellm_params)
|
||||||
|
|
||||||
|
from app.agents.new_chat.llm_config import SanitizedChatLiteLLM
|
||||||
|
|
||||||
llm = SanitizedChatLiteLLM(**litellm_kwargs)
|
llm = SanitizedChatLiteLLM(**litellm_kwargs)
|
||||||
|
|
||||||
# Run the test call in a worker thread with a hard timeout. Some
|
# Run the test call in a worker thread with a hard timeout. Some
|
||||||
|
|
@ -377,6 +378,8 @@ async def get_search_space_llm_instance(
|
||||||
if disable_streaming:
|
if disable_streaming:
|
||||||
litellm_kwargs["disable_streaming"] = True
|
litellm_kwargs["disable_streaming"] = True
|
||||||
|
|
||||||
|
from app.agents.new_chat.llm_config import SanitizedChatLiteLLM
|
||||||
|
|
||||||
return SanitizedChatLiteLLM(**litellm_kwargs)
|
return SanitizedChatLiteLLM(**litellm_kwargs)
|
||||||
|
|
||||||
# Get the LLM configuration from database (NewLLMConfig)
|
# Get the LLM configuration from database (NewLLMConfig)
|
||||||
|
|
@ -454,6 +457,8 @@ async def get_search_space_llm_instance(
|
||||||
if disable_streaming:
|
if disable_streaming:
|
||||||
litellm_kwargs["disable_streaming"] = True
|
litellm_kwargs["disable_streaming"] = True
|
||||||
|
|
||||||
|
from app.agents.new_chat.llm_config import SanitizedChatLiteLLM
|
||||||
|
|
||||||
return SanitizedChatLiteLLM(**litellm_kwargs)
|
return SanitizedChatLiteLLM(**litellm_kwargs)
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
|
@ -555,6 +560,8 @@ async def get_vision_llm(
|
||||||
if global_cfg.get("litellm_params"):
|
if global_cfg.get("litellm_params"):
|
||||||
litellm_kwargs.update(global_cfg["litellm_params"])
|
litellm_kwargs.update(global_cfg["litellm_params"])
|
||||||
|
|
||||||
|
from app.agents.new_chat.llm_config import SanitizedChatLiteLLM
|
||||||
|
|
||||||
return SanitizedChatLiteLLM(**litellm_kwargs)
|
return SanitizedChatLiteLLM(**litellm_kwargs)
|
||||||
|
|
||||||
result = await session.execute(
|
result = await session.execute(
|
||||||
|
|
@ -588,6 +595,8 @@ async def get_vision_llm(
|
||||||
if vision_cfg.litellm_params:
|
if vision_cfg.litellm_params:
|
||||||
litellm_kwargs.update(vision_cfg.litellm_params)
|
litellm_kwargs.update(vision_cfg.litellm_params)
|
||||||
|
|
||||||
|
from app.agents.new_chat.llm_config import SanitizedChatLiteLLM
|
||||||
|
|
||||||
return SanitizedChatLiteLLM(**litellm_kwargs)
|
return SanitizedChatLiteLLM(**litellm_kwargs)
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,6 @@ from datetime import datetime
|
||||||
from sqlalchemy.ext.asyncio import AsyncSession
|
from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
|
|
||||||
from app.db import Document, DocumentType
|
from app.db import Document, DocumentType
|
||||||
from app.services.llm_service import get_user_long_context_llm
|
|
||||||
from app.utils.document_converters import (
|
from app.utils.document_converters import (
|
||||||
create_document_chunks,
|
create_document_chunks,
|
||||||
embed_text,
|
embed_text,
|
||||||
|
|
@ -74,6 +73,8 @@ class NotionKBSyncService:
|
||||||
)
|
)
|
||||||
content_hash = unique_hash
|
content_hash = unique_hash
|
||||||
|
|
||||||
|
from app.services.llm_service import get_user_long_context_llm
|
||||||
|
|
||||||
user_llm = await get_user_long_context_llm(
|
user_llm = await get_user_long_context_llm(
|
||||||
self.db_session,
|
self.db_session,
|
||||||
user_id,
|
user_id,
|
||||||
|
|
@ -244,6 +245,8 @@ class NotionKBSyncService:
|
||||||
f"Final content length: {len(full_content)} chars, verified={content_verified}"
|
f"Final content length: {len(full_content)} chars, verified={content_verified}"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
from app.services.llm_service import get_user_long_context_llm
|
||||||
|
|
||||||
logger.debug("Generating summary and embeddings")
|
logger.debug("Generating summary and embeddings")
|
||||||
user_llm = await get_user_long_context_llm(
|
user_llm = await get_user_long_context_llm(
|
||||||
self.db_session,
|
self.db_session,
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,6 @@ from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
|
|
||||||
from app.db import Document, DocumentType
|
from app.db import Document, DocumentType
|
||||||
from app.indexing_pipeline.document_hashing import compute_identifier_hash
|
from app.indexing_pipeline.document_hashing import compute_identifier_hash
|
||||||
from app.services.llm_service import get_user_long_context_llm
|
|
||||||
from app.utils.document_converters import (
|
from app.utils.document_converters import (
|
||||||
create_document_chunks,
|
create_document_chunks,
|
||||||
embed_text,
|
embed_text,
|
||||||
|
|
@ -73,6 +72,8 @@ class OneDriveKBSyncService:
|
||||||
)
|
)
|
||||||
content_hash = unique_hash
|
content_hash = unique_hash
|
||||||
|
|
||||||
|
from app.services.llm_service import get_user_long_context_llm
|
||||||
|
|
||||||
user_llm = await get_user_long_context_llm(
|
user_llm = await get_user_long_context_llm(
|
||||||
self.db_session,
|
self.db_session,
|
||||||
user_id,
|
user_id,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue