Refactored the "send to" implementation of assistants (#85)

This commit is contained in:
Thorsten Sommer 2024-08-22 21:27:16 +02:00 committed by GitHub
parent 34884859d7
commit 18718a6c47
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 37 additions and 35 deletions

View File

@ -179,34 +179,19 @@ public abstract partial class AssistantBase : ComponentBase
}, },
}; };
var (eventItem, path) = destination switch var sendToData = destination.GetData();
{
SendTo.AGENDA_ASSISTANT => (Event.SEND_TO_AGENDA_ASSISTANT, Routes.ASSISTANT_AGENDA),
SendTo.CODING_ASSISTANT => (Event.SEND_TO_CODING_ASSISTANT, Routes.ASSISTANT_CODING),
SendTo.REWRITE_ASSISTANT => (Event.SEND_TO_REWRITE_ASSISTANT, Routes.ASSISTANT_REWRITE),
SendTo.EMAIL_ASSISTANT => (Event.SEND_TO_EMAIL_ASSISTANT, Routes.ASSISTANT_EMAIL),
SendTo.TRANSLATION_ASSISTANT => (Event.SEND_TO_TRANSLATION_ASSISTANT, Routes.ASSISTANT_TRANSLATION),
SendTo.ICON_FINDER_ASSISTANT => (Event.SEND_TO_ICON_FINDER_ASSISTANT, Routes.ASSISTANT_ICON_FINDER),
SendTo.GRAMMAR_SPELLING_ASSISTANT => (Event.SEND_TO_GRAMMAR_SPELLING_ASSISTANT, Routes.ASSISTANT_GRAMMAR_SPELLING),
SendTo.TEXT_SUMMARIZER_ASSISTANT => (Event.SEND_TO_TEXT_SUMMARIZER_ASSISTANT, Routes.ASSISTANT_SUMMARIZER),
SendTo.CHAT => (Event.SEND_TO_CHAT, Routes.CHAT),
_ => (Event.NONE, Routes.ASSISTANTS),
};
switch (destination) switch (destination)
{ {
case SendTo.CHAT: case SendTo.CHAT:
MessageBus.INSTANCE.DeferMessage(this, eventItem, this.ConvertToChatThread); MessageBus.INSTANCE.DeferMessage(this, sendToData.Event, this.ConvertToChatThread);
break; break;
default: default:
MessageBus.INSTANCE.DeferMessage(this, eventItem, contentToSend); MessageBus.INSTANCE.DeferMessage(this, sendToData.Event, contentToSend);
break; break;
} }
this.NavigationManager.NavigateTo(path); this.NavigationManager.NavigateTo(sendToData.Route);
return Task.CompletedTask; return Task.CompletedTask;
} }

View File

@ -0,0 +1,3 @@
namespace AIStudio.Tools;
public readonly record struct SendToData(Event Event, string Route);

View File

@ -2,22 +2,35 @@ namespace AIStudio.Tools;
public static class SendToExtensions public static class SendToExtensions
{ {
public static string Name(this SendTo assistant) public static string Name(this SendTo assistant) => assistant switch
{ {
return assistant switch SendTo.GRAMMAR_SPELLING_ASSISTANT => "Grammar & Spelling Assistant",
{ SendTo.TEXT_SUMMARIZER_ASSISTANT => "Text Summarizer Assistant",
SendTo.GRAMMAR_SPELLING_ASSISTANT => "Grammar & Spelling Assistant", SendTo.ICON_FINDER_ASSISTANT => "Icon Finder Assistant",
SendTo.TEXT_SUMMARIZER_ASSISTANT => "Text Summarizer Assistant", SendTo.TRANSLATION_ASSISTANT => "Translation Assistant",
SendTo.ICON_FINDER_ASSISTANT => "Icon Finder Assistant", SendTo.REWRITE_ASSISTANT => "Rewrite Assistant",
SendTo.TRANSLATION_ASSISTANT => "Translation Assistant", SendTo.AGENDA_ASSISTANT => "Agenda Assistant",
SendTo.REWRITE_ASSISTANT => "Rewrite Assistant", SendTo.CODING_ASSISTANT => "Coding Assistant",
SendTo.AGENDA_ASSISTANT => "Agenda Assistant", SendTo.EMAIL_ASSISTANT => "E-Mail Assistant",
SendTo.CODING_ASSISTANT => "Coding Assistant",
SendTo.EMAIL_ASSISTANT => "E-Mail Assistant", SendTo.CHAT => "New Chat",
_ => "Send to ...",
};
public static SendToData GetData(this SendTo destination) => destination switch
{
SendTo.AGENDA_ASSISTANT => new(Event.SEND_TO_AGENDA_ASSISTANT, Routes.ASSISTANT_AGENDA),
SendTo.CODING_ASSISTANT => new(Event.SEND_TO_CODING_ASSISTANT, Routes.ASSISTANT_CODING),
SendTo.REWRITE_ASSISTANT => new(Event.SEND_TO_REWRITE_ASSISTANT, Routes.ASSISTANT_REWRITE),
SendTo.EMAIL_ASSISTANT => new(Event.SEND_TO_EMAIL_ASSISTANT, Routes.ASSISTANT_EMAIL),
SendTo.TRANSLATION_ASSISTANT => new(Event.SEND_TO_TRANSLATION_ASSISTANT, Routes.ASSISTANT_TRANSLATION),
SendTo.ICON_FINDER_ASSISTANT => new(Event.SEND_TO_ICON_FINDER_ASSISTANT, Routes.ASSISTANT_ICON_FINDER),
SendTo.GRAMMAR_SPELLING_ASSISTANT => new(Event.SEND_TO_GRAMMAR_SPELLING_ASSISTANT, Routes.ASSISTANT_GRAMMAR_SPELLING),
SendTo.TEXT_SUMMARIZER_ASSISTANT => new(Event.SEND_TO_TEXT_SUMMARIZER_ASSISTANT, Routes.ASSISTANT_SUMMARIZER),
SendTo.CHAT => "New Chat", SendTo.CHAT => new(Event.SEND_TO_CHAT, Routes.CHAT),
_ => "Send to ...", _ => new(Event.NONE, Routes.ASSISTANTS),
}; };
}
} }

View File

@ -2,4 +2,5 @@
- Added an e-mail writing assistant. - Added an e-mail writing assistant.
- Added the possibility to preselect some e-mail writing assistant options. - Added the possibility to preselect some e-mail writing assistant options.
- Improved the content validation for the agenda assistant. - Improved the content validation for the agenda assistant.
- Improved the language handling of the agenda assistant. - Improved the language handling of the agenda assistant.
- Refactored the "send to" implementation of assistants.