From c6e7438dfa5758cda193b56973f35e33ee1c6992 Mon Sep 17 00:00:00 2001 From: ValueOn AG Date: Tue, 31 Mar 2026 20:56:35 +0200 Subject: [PATCH] teams bot adapt vars --- modules/features/teamsbot/service.py | 45 ++++++++++------------------ 1 file changed, 16 insertions(+), 29 deletions(-) diff --git a/modules/features/teamsbot/service.py b/modules/features/teamsbot/service.py index 773cc1c9..9e59f653 100644 --- a/modules/features/teamsbot/service.py +++ b/modules/features/teamsbot/service.py @@ -17,6 +17,8 @@ from fastapi import WebSocket from modules.datamodels.datamodelUam import User from modules.datamodels.datamodelAi import AiCallRequest, AiCallOptions, OperationTypeEnum, PriorityEnum from modules.shared.timeUtils import getUtcTimestamp, getIsoTimestamp +from modules.serviceCenter import getService as _getServiceCenterService +from modules.serviceCenter.context import ServiceCenterContext from .datamodelTeamsbot import ( TeamsbotSessionStatus, @@ -35,18 +37,18 @@ logger = logging.getLogger(__name__) # ========================================================================= -# Minimal Service Context (for AI billing in bridge callbacks) +# AI Service Factory (for billing-aware AI calls) # ========================================================================= -class _ServiceContext: - """Minimal context providing user/mandate info for AiService billing. - Used by bridge callbacks where a full Services instance is not available.""" - - def __init__(self, user, mandateId, featureInstanceId=None): - self.user = user - self.mandateId = mandateId - self.featureInstanceId = featureInstanceId - self.featureCode = "teamsbot" +def _createAiService(user, mandateId, featureInstanceId=None): + """Create a properly wired AiService via the service center.""" + ctx = ServiceCenterContext( + user=user, + mandate_id=mandateId, + feature_instance_id=featureInstanceId, + feature_code="teamsbot", + ) + return _getServiceCenterService("ai", ctx) # ========================================================================= @@ -1062,11 +1064,7 @@ class TeamsbotService: # Call SPEECH_TEAMS try: - from modules.serviceCenter.services.serviceAi.mainServiceAi import AiService - - # Create minimal service context for AI billing - serviceContext = _ServiceContext(self.currentUser, self.mandateId, self.instanceId) - aiService = AiService(serviceCenter=serviceContext) + aiService = _createAiService(self.currentUser, self.mandateId, self.instanceId) await aiService.ensureAiObjectsInitialized() request = AiCallRequest( @@ -1684,11 +1682,7 @@ class TeamsbotService: """Summarize a long user-provided session context to its essential points. This reduces token usage in every subsequent AI call.""" try: - from modules.serviceCenter.services.serviceAi.mainServiceAi import AiService - from modules.datamodels.datamodelAi import AiCallRequest, AiCallOptions, OperationTypeEnum, PriorityEnum - - serviceContext = _ServiceContext(self.currentUser, self.mandateId, self.instanceId) - aiService = AiService(serviceCenter=serviceContext) + aiService = _createAiService(self.currentUser, self.mandateId, self.instanceId) await aiService.ensureAiObjectsInitialized() request = AiCallRequest( @@ -1738,11 +1732,7 @@ class TeamsbotService: lines.append(f"[{speaker}]: {text}") textToSummarize = "\n".join(lines) - from modules.serviceCenter.services.serviceAi.mainServiceAi import AiService - from modules.datamodels.datamodelAi import AiCallRequest, AiCallOptions, OperationTypeEnum, PriorityEnum - - serviceContext = _ServiceContext(self.currentUser, self.mandateId, self.instanceId) - aiService = AiService(serviceCenter=serviceContext) + aiService = _createAiService(self.currentUser, self.mandateId, self.instanceId) await aiService.ensureAiObjectsInitialized() request = AiCallRequest( @@ -1783,10 +1773,7 @@ class TeamsbotService: for t in transcripts ) - from modules.serviceCenter.services.serviceAi.mainServiceAi import AiService - - serviceContext = _ServiceContext(self.currentUser, self.mandateId, self.instanceId) - aiService = AiService(serviceCenter=serviceContext) + aiService = _createAiService(self.currentUser, self.mandateId, self.instanceId) await aiService.ensureAiObjectsInitialized() request = AiCallRequest(