29 lines
1.2 KiB
Python
29 lines
1.2 KiB
Python
import logging
|
|
import asyncio
|
|
from typing import Optional
|
|
|
|
from modules.interfaces.interfaceAppModel import User
|
|
from modules.interfaces.interfaceChatModel import ChatWorkflow, UserInputRequest
|
|
from modules.shared.timezoneUtils import get_utc_timestamp
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
async def chatStart(interfaceChat, currentUser: User, userInput: UserInputRequest, workflowId: Optional[str] = None) -> ChatWorkflow:
|
|
"""Starts a new chat or continues an existing one, then launches processing asynchronously."""
|
|
try:
|
|
from modules.workflows.workflowManager import WorkflowManager
|
|
workflowManager = WorkflowManager(interfaceChat, currentUser)
|
|
return await workflowManager.workflowStart(userInput, workflowId)
|
|
except Exception as e:
|
|
logger.error(f"Error starting chat: {str(e)}")
|
|
raise
|
|
|
|
async def chatStop(interfaceChat, currentUser: User, workflowId: str) -> ChatWorkflow:
|
|
"""Stops a running chat."""
|
|
try:
|
|
from modules.workflows.workflowManager import WorkflowManager
|
|
workflowManager = WorkflowManager(interfaceChat, currentUser)
|
|
return await workflowManager.workflowStop(workflowId)
|
|
except Exception as e:
|
|
logger.error(f"Error stopping chat: {str(e)}")
|
|
raise
|