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(