This commit is contained in:
YouWeiDH 2024-11-15 09:51:14 +08:00
commit b9d7ff1023
6 changed files with 12 additions and 18 deletions

View file

@ -12,7 +12,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.AI.Abstractions" Version="9.0.0-preview.9.24525.1" />
<PackageReference Include="Microsoft.Extensions.AI.Abstractions" Version="9.0.0-preview.9.24556.5" />
<PackageReference Include="System.Text.Encodings.Web" Version="8.0.0" />
</ItemGroup>

View file

@ -96,9 +96,6 @@ public class PrimaryStagePlanFn : IFunctionCallback
var conv = _services.GetRequiredService<IConversationService>();
var wholeDialogs = conv.GetDialogHistory();
// Append text
wholeDialogs.Last().Content += "\n\nYou must analyze the table description to infer the table relations. Only output the JSON result.";
var completion = CompletionProvider.GetChatCompletion(_services,
provider: plannerAgent.LlmConfig.Provider,
model: plannerAgent.LlmConfig.Model);

View file

@ -74,7 +74,7 @@ public class SqlValidateFn : IFunctionCallback
Message = "Correct SQL Statement",
Data = new Dictionary<string, object>
{
{ "original_sql", validateSql },
{ "original_sql", sql },
{ "error_message", ex.Message },
{ "table_structure", ddl }
}

View file

@ -18,13 +18,13 @@
},
"tables": {
"type": "array",
"description": "all related dictionary tables",
"description": "all related dictionary tables must be from related knowledge in the context",
"items": {
"type": "string",
"description": "table name"
"description": "table name from related knowledge in the context"
}
}
},
"required": [ "sql_statement", "reason", "tables" ]
}
}
}

View file

@ -43,14 +43,10 @@ public class TwilioVoiceController : TwilioController
}
VoiceResponse response = null;
request.ConversationId = $"TwilioVoice_{request.CallSid}";
var instruction = new ConversationalVoiceResponse
{
SpeechPaths = ["twilio/welcome.mp3"],
CallbackPath = $"twilio/voice/{request.ConversationId}/receive/0?{GenerateStatesParameter(request.States)}",
ActionOnEmptyResult = true,
Timeout = 2
ActionOnEmptyResult = true
};
await HookEmitter.Emit<ITwilioSessionHook>(_services, async hook =>
{
@ -60,6 +56,9 @@ public class TwilioVoiceController : TwilioController
OnlyOnce = true
});
request.ConversationId = $"TwilioVoice_{request.CallSid}";
instruction.CallbackPath = $"twilio/voice/{request.ConversationId}/receive/0?{GenerateStatesParameter(request.States)}";
var twilio = _services.GetRequiredService<TwilioService>();
if (string.IsNullOrWhiteSpace(request.Intent))
{
@ -107,7 +106,6 @@ public class TwilioVoiceController : TwilioController
var twilio = _services.GetRequiredService<TwilioService>();
var messageQueue = _services.GetRequiredService<TwilioMessageQueue>();
var sessionManager = _services.GetRequiredService<ITwilioSessionManager>();
var messages = await sessionManager.RetrieveStagedCallerMessagesAsync(request.ConversationId, request.SeqNum);
string text = (request.SpeechResult + "\r\n" + request.Digits).Trim();
@ -146,7 +144,7 @@ public class TwilioVoiceController : TwilioController
else
{
// keep waiting for user response
if (request.Attempts > 2)
if (request.Attempts > 3)
{
var instruction = new ConversationalVoiceResponse
{
@ -185,7 +183,7 @@ public class TwilioVoiceController : TwilioController
ActionOnEmptyResult = true
};
if (request.Attempts == 2)
if (request.Attempts == 3)
{
instruction.SpeechPaths.Add($"twilio/say-it-again-{Random.Shared.Next(1, 5)}.mp3");
}
@ -218,7 +216,6 @@ public class TwilioVoiceController : TwilioController
var sessionManager = _services.GetRequiredService<ITwilioSessionManager>();
var twilio = _services.GetRequiredService<TwilioService>();
var fileStorage = _services.GetRequiredService<IFileStorageService>();
if (request.SpeechResult != null)
{
await sessionManager.StageCallerMessageAsync(request.ConversationId, nextSeqNum, request.SpeechResult);

View file

@ -115,7 +115,7 @@ public class TwilioService
},
Action = new Uri($"{_settings.CallbackHost}/{conversationalVoiceResponse.CallbackPath}"),
SpeechModel = Gather.SpeechModelEnum.PhoneCall,
SpeechTimeout = conversationalVoiceResponse.Timeout > 0 ? conversationalVoiceResponse.Timeout.ToString() : "3",
SpeechTimeout = "auto", // conversationalVoiceResponse.Timeout > 0 ? conversationalVoiceResponse.Timeout.ToString() : "3",
Timeout = conversationalVoiceResponse.Timeout > 0 ? conversationalVoiceResponse.Timeout : 3,
ActionOnEmptyResult = conversationalVoiceResponse.ActionOnEmptyResult
};