Bugfixing KI Spracheingabe im Mok
This commit is contained in:
@@ -3583,19 +3583,23 @@ namespace BeWoPlanerMobil.Controllers
|
||||
var ts = new TranscriptionService();
|
||||
var avd = ts.InitTranskription(MobileSessionFacade.Tenant, false);
|
||||
|
||||
externalUrl = avd.ResultUrl;
|
||||
externalUrl = avd.OwnChatUrl;
|
||||
|
||||
if (!string.IsNullOrEmpty(callId) && !string.IsNullOrEmpty(avd.Token))
|
||||
{
|
||||
_externalCallTokens[callId] = ts.MapAiVoiceDataDC(avd);
|
||||
}
|
||||
|
||||
Log.Info($"GetExternalCallUrl: {callId}. Url = {externalUrl}, Transkription startet!");
|
||||
//var externalBaseUrl = "https://example.com/external-service";
|
||||
//var externalUrl = externalBaseUrl
|
||||
// + "?callbackUrl=" + Uri.EscapeDataString(callbackUrl)
|
||||
// + "&callId=" + Uri.EscapeDataString(callId);
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
Log.Info($"GetExternalCallUrl: {callId}. Url = {callbackUrl}, Transkription starten hat nicht geklappt. Kein OwnChatCode vorhanden!");
|
||||
}
|
||||
|
||||
return Json(new { success = true, url = externalUrl }, JsonRequestBehavior.AllowGet);
|
||||
}
|
||||
@@ -3655,24 +3659,49 @@ namespace BeWoPlanerMobil.Controllers
|
||||
}
|
||||
|
||||
string statusMessage = null;
|
||||
if(!string.IsNullOrEmpty(callId) && _externalCallTokens.TryRemove(callId, out var avddc))
|
||||
|
||||
//Log.Info($"CheckExternalCallStatus: Start {callId}.");
|
||||
|
||||
if (!string.IsNullOrEmpty(callId) && _externalCallTokens.TryRemove(callId, out var avddc))
|
||||
{
|
||||
var ts = new TranscriptionService();
|
||||
|
||||
var avd = ts.MapAiVoiceData(avddc);
|
||||
|
||||
avd = ts.GetTranskription(avd);
|
||||
|
||||
statusMessage = avd.StatusMessage;
|
||||
|
||||
|
||||
if (!String.IsNullOrEmpty(avd.TranskriptionText))
|
||||
{
|
||||
statusMessage = "Transkription erfolgreich durchgeführt";
|
||||
Log.Info($"CheckExternalCallStatus: {callId}. Transkription erfolgreich durchgeführt!");
|
||||
ExternalCallCallback(callId, avd.TranskriptionText);
|
||||
}
|
||||
else if (!String.IsNullOrEmpty(avd.Error))
|
||||
{
|
||||
statusMessage = avd.Error;
|
||||
Log.Info($"CheckExternalCallStatus: {callId}. Transkription mit Fehler beendet: {avd.Error}");
|
||||
ExternalCallCallback(callId, "");
|
||||
}
|
||||
else
|
||||
{
|
||||
//Log.Info($"CheckExternalCallStatus: {callId}. Status: {statusMessage}");
|
||||
}
|
||||
avddc = ts.MapAiVoiceDataDC(avd);
|
||||
|
||||
_externalCallTokens[callId] = avddc;
|
||||
|
||||
//_externalCallStatusMessages.TryGetValue(callId, out statusMessage);
|
||||
}
|
||||
else
|
||||
{
|
||||
Log.Info($"CheckExternalCallStatus: {callId}. Kein Token gefunden.");
|
||||
}
|
||||
|
||||
return Json(new { completed = false, statusMessage }, JsonRequestBehavior.AllowGet);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Wird aufgerufen, wenn der Benutzer den externen Aufruf abbricht.
|
||||
/// Räumt den Eintrag auf, falls vorhanden.
|
||||
|
||||
@@ -250,14 +250,21 @@
|
||||
}
|
||||
|
||||
function onExternalCallCompleted(data) {
|
||||
// sb-doku-textarea-0 bevorzugen (nur sichtbar wenn mehrere Dokutypes vorhanden),
|
||||
// sonst auf sb-doku-textarea-5 (Dokumentation6) zurückfallen
|
||||
var $target = $('#sb-doku-textarea-0');
|
||||
var targetIndex = 0;
|
||||
if ($target.length === 0 || !$target.is(':visible')) {
|
||||
var $target;
|
||||
var targetIndex;
|
||||
|
||||
// Prüfen ob die Tab-Ansicht sichtbar ist (mehrere Dokutypes vorhanden)
|
||||
var $activeTabTextarea = $('#dokufelderTab .tab-pane.active textarea');
|
||||
if ($activeTabTextarea.length > 0) {
|
||||
// Das aktive Tab-Textarea verwenden; Index aus der ID auslesen (sb-doku-textarea-{i})
|
||||
$target = $activeTabTextarea;
|
||||
targetIndex = parseInt($target.attr('id').replace('sb-doku-textarea-', ''), 10);
|
||||
} else {
|
||||
// Fallback: Einzelfeld Dokumentation6
|
||||
$target = $('#sb-doku-textarea-5');
|
||||
targetIndex = 5;
|
||||
}
|
||||
|
||||
if ($target.length > 0) {
|
||||
$target.val(data);
|
||||
window.updateDokuText('sb', data, targetIndex);
|
||||
|
||||
@@ -18,5 +18,6 @@ namespace BeWo.Data.Entities
|
||||
public virtual String Token { get; set; }
|
||||
public virtual String UploadUrl { get; set; }
|
||||
public virtual String ResultUrl { get; set; }
|
||||
public virtual String OwnChatUrl { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,18 +37,14 @@ namespace BeWo.Service.AI
|
||||
|
||||
if (!String.IsNullOrEmpty(avd.Token))
|
||||
{
|
||||
var url = String.Format("ownchat://voice/?token={0}", avd.Token);
|
||||
avd.OwnChatUrl = String.Format("ownchat://voice/?token={0}", avd.Token);
|
||||
|
||||
|
||||
if (sendOwnChatMessage)
|
||||
{
|
||||
var msg = String.Format("Bitte klicken Sie auf folgenden Link um die Aufnahme zu starten:\n\n{0}", url);
|
||||
var msg = String.Format("Bitte klicken Sie auf folgenden Link um die Aufnahme zu starten:\n\n{0}", avd.OwnChatUrl);
|
||||
OwnChatHelper.SendOwnChatMessage(msg, UserRightHelper.GetLoggedInUser().Employee);
|
||||
}
|
||||
else
|
||||
{
|
||||
avd.ResultUrl = url;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -215,8 +211,9 @@ namespace BeWo.Service.AI
|
||||
StatusMessage = data.StatusMessage,
|
||||
Token = data.Token,
|
||||
TranskriptionText = data.TranskriptionText,
|
||||
UploadUrl = data.UploadUrl
|
||||
};
|
||||
UploadUrl = data.UploadUrl,
|
||||
OwnChatUrl = data.OwnChatUrl
|
||||
};
|
||||
}
|
||||
|
||||
public AiVoiceData MapAiVoiceData(AiVoiceDataDC data)
|
||||
@@ -230,7 +227,8 @@ namespace BeWo.Service.AI
|
||||
StatusMessage = data.StatusMessage,
|
||||
Token = data.Token,
|
||||
TranskriptionText = data.TranskriptionText,
|
||||
UploadUrl = data.UploadUrl
|
||||
UploadUrl = data.UploadUrl,
|
||||
OwnChatUrl = data.OwnChatUrl
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,5 +21,7 @@ namespace BS.Shared.DataContracts
|
||||
public string UploadUrl { get; set; }
|
||||
[DataMember]
|
||||
public string ResultUrl { get; set; }
|
||||
[DataMember]
|
||||
public string OwnChatUrl { get; set; }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user