mirror of
https://github.com/MindWorkAI/AI-Studio.git
synced 2026-02-12 07:01:37 +00:00
Merge 91a63138ad into ea4e3f0199
This commit is contained in:
commit
23d04a9c4f
@ -1354,6 +1354,54 @@ UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::REWRITEIMPROVE::WRITINGSTYLESEXTENSIONS::
|
|||||||
-- Marketing (advertisements, sales texts)
|
-- Marketing (advertisements, sales texts)
|
||||||
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::REWRITEIMPROVE::WRITINGSTYLESEXTENSIONS::T945714286"] = "Marketing (advertisements, sales texts)"
|
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::REWRITEIMPROVE::WRITINGSTYLESEXTENSIONS::T945714286"] = "Marketing (advertisements, sales texts)"
|
||||||
|
|
||||||
|
-- Your title
|
||||||
|
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::SLIDEBUILDER::SLIDEASSISTANT::T1790167032"] = "Your title"
|
||||||
|
|
||||||
|
-- Slide Assistant
|
||||||
|
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::SLIDEBUILDER::SLIDEASSISTANT::T1883918574"] = "Slide Assistant"
|
||||||
|
|
||||||
|
-- Target language
|
||||||
|
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::SLIDEBUILDER::SLIDEASSISTANT::T237828418"] = "Target language"
|
||||||
|
|
||||||
|
-- Target group
|
||||||
|
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::SLIDEBUILDER::SLIDEASSISTANT::T2709966651"] = "Target group"
|
||||||
|
|
||||||
|
-- Create Slides
|
||||||
|
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::SLIDEBUILDER::SLIDEASSISTANT::T3079776593"] = "Create Slides"
|
||||||
|
|
||||||
|
-- Develop slide content based on a given topic and content.
|
||||||
|
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::SLIDEBUILDER::SLIDEASSISTANT::T311912219"] = "Develop slide content based on a given topic and content."
|
||||||
|
|
||||||
|
-- Please a title
|
||||||
|
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::SLIDEBUILDER::SLIDEASSISTANT::T3359269886"] = "Please a title"
|
||||||
|
|
||||||
|
-- Custom target language
|
||||||
|
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::SLIDEBUILDER::SLIDEASSISTANT::T3848935911"] = "Custom target language"
|
||||||
|
|
||||||
|
-- Your content
|
||||||
|
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::SLIDEBUILDER::SLIDEASSISTANT::T526734495"] = "Your content"
|
||||||
|
|
||||||
|
-- Please provide a custom language.
|
||||||
|
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::SLIDEBUILDER::SLIDEASSISTANT::T656744944"] = "Please provide a custom language."
|
||||||
|
|
||||||
|
-- Children
|
||||||
|
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::SLIDEBUILDER::TARGETGROUPEXTENSIONS::T188567026"] = "Children"
|
||||||
|
|
||||||
|
-- Students
|
||||||
|
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::SLIDEBUILDER::TARGETGROUPEXTENSIONS::T2905889225"] = "Students"
|
||||||
|
|
||||||
|
-- Scientists
|
||||||
|
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::SLIDEBUILDER::TARGETGROUPEXTENSIONS::T332785734"] = "Scientists"
|
||||||
|
|
||||||
|
-- No target group
|
||||||
|
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::SLIDEBUILDER::TARGETGROUPEXTENSIONS::T3644477204"] = "No target group"
|
||||||
|
|
||||||
|
-- Office workers
|
||||||
|
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::SLIDEBUILDER::TARGETGROUPEXTENSIONS::T3873911022"] = "Office workers"
|
||||||
|
|
||||||
|
-- Executive committee
|
||||||
|
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::SLIDEBUILDER::TARGETGROUPEXTENSIONS::T537362216"] = "Executive committee"
|
||||||
|
|
||||||
-- Your word or phrase
|
-- Your word or phrase
|
||||||
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::SYNONYM::ASSISTANTSYNONYMS::T1847246020"] = "Your word or phrase"
|
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::SYNONYM::ASSISTANTSYNONYMS::T1847246020"] = "Your word or phrase"
|
||||||
|
|
||||||
@ -4411,6 +4459,33 @@ UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGREWRITE::T3745021518
|
|||||||
-- No rewrite & improve text options are preselected
|
-- No rewrite & improve text options are preselected
|
||||||
UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGREWRITE::T553954963"] = "No rewrite & improve text options are preselected"
|
UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGREWRITE::T553954963"] = "No rewrite & improve text options are preselected"
|
||||||
|
|
||||||
|
-- When enabled, you can preselect synonym options. This is might be useful when you prefer a specific language or LLM model.
|
||||||
|
UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGSLIDEBUILDER::T183953912"] = "When enabled, you can preselect synonym options. This is might be useful when you prefer a specific language or LLM model."
|
||||||
|
|
||||||
|
-- Preselect Slide Assistant options?
|
||||||
|
UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGSLIDEBUILDER::T227645894"] = "Preselect Slide Assistant options?"
|
||||||
|
|
||||||
|
-- Which language should be preselected?
|
||||||
|
UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGSLIDEBUILDER::T2345162613"] = "Which language should be preselected?"
|
||||||
|
|
||||||
|
-- Preselect another language
|
||||||
|
UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGSLIDEBUILDER::T2382415529"] = "Preselect another language"
|
||||||
|
|
||||||
|
-- Preselect the language
|
||||||
|
UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGSLIDEBUILDER::T2571465005"] = "Preselect the language"
|
||||||
|
|
||||||
|
-- Assistant: Slide Assistant Options
|
||||||
|
UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGSLIDEBUILDER::T3215549988"] = "Assistant: Slide Assistant Options"
|
||||||
|
|
||||||
|
-- Close
|
||||||
|
UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGSLIDEBUILDER::T3448155331"] = "Close"
|
||||||
|
|
||||||
|
-- No Slide Assistant options are preselected
|
||||||
|
UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGSLIDEBUILDER::T4214398691"] = "No Slide Assistant options are preselected"
|
||||||
|
|
||||||
|
-- Slide Assistant options are preselected
|
||||||
|
UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGSLIDEBUILDER::T93124146"] = "Slide Assistant options are preselected"
|
||||||
|
|
||||||
-- When enabled, you can preselect synonym options. This is might be useful when you prefer a specific language or LLM model.
|
-- When enabled, you can preselect synonym options. This is might be useful when you prefer a specific language or LLM model.
|
||||||
UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGSYNONYMS::T183953912"] = "When enabled, you can preselect synonym options. This is might be useful when you prefer a specific language or LLM model."
|
UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGSYNONYMS::T183953912"] = "When enabled, you can preselect synonym options. This is might be useful when you prefer a specific language or LLM model."
|
||||||
|
|
||||||
@ -4849,6 +4924,9 @@ UI_TEXT_CONTENT["AISTUDIO::PAGES::ASSISTANTS::T1617786407"] = "Coding"
|
|||||||
-- Analyze a text or an email for tasks you need to complete.
|
-- Analyze a text or an email for tasks you need to complete.
|
||||||
UI_TEXT_CONTENT["AISTUDIO::PAGES::ASSISTANTS::T1728590051"] = "Analyze a text or an email for tasks you need to complete."
|
UI_TEXT_CONTENT["AISTUDIO::PAGES::ASSISTANTS::T1728590051"] = "Analyze a text or an email for tasks you need to complete."
|
||||||
|
|
||||||
|
-- Slide Assistant
|
||||||
|
UI_TEXT_CONTENT["AISTUDIO::PAGES::ASSISTANTS::T1883918574"] = "Slide Assistant"
|
||||||
|
|
||||||
-- Text Summarizer
|
-- Text Summarizer
|
||||||
UI_TEXT_CONTENT["AISTUDIO::PAGES::ASSISTANTS::T1907192403"] = "Text Summarizer"
|
UI_TEXT_CONTENT["AISTUDIO::PAGES::ASSISTANTS::T1907192403"] = "Text Summarizer"
|
||||||
|
|
||||||
@ -4888,6 +4966,9 @@ UI_TEXT_CONTENT["AISTUDIO::PAGES::ASSISTANTS::T3011450657"] = "My Tasks"
|
|||||||
-- E-Mail
|
-- E-Mail
|
||||||
UI_TEXT_CONTENT["AISTUDIO::PAGES::ASSISTANTS::T3026443472"] = "E-Mail"
|
UI_TEXT_CONTENT["AISTUDIO::PAGES::ASSISTANTS::T3026443472"] = "E-Mail"
|
||||||
|
|
||||||
|
-- Develop slide content based on a given topic and content.
|
||||||
|
UI_TEXT_CONTENT["AISTUDIO::PAGES::ASSISTANTS::T311912219"] = "Develop slide content based on a given topic and content."
|
||||||
|
|
||||||
-- Translate AI Studio text content into other languages
|
-- Translate AI Studio text content into other languages
|
||||||
UI_TEXT_CONTENT["AISTUDIO::PAGES::ASSISTANTS::T3181803840"] = "Translate AI Studio text content into other languages"
|
UI_TEXT_CONTENT["AISTUDIO::PAGES::ASSISTANTS::T3181803840"] = "Translate AI Studio text content into other languages"
|
||||||
|
|
||||||
@ -5779,6 +5860,9 @@ UI_TEXT_CONTENT["AISTUDIO::TOOLS::COMPONENTSEXTENSIONS::T1546040625"] = "My Task
|
|||||||
-- Grammar & Spelling Assistant
|
-- Grammar & Spelling Assistant
|
||||||
UI_TEXT_CONTENT["AISTUDIO::TOOLS::COMPONENTSEXTENSIONS::T166453786"] = "Grammar & Spelling Assistant"
|
UI_TEXT_CONTENT["AISTUDIO::TOOLS::COMPONENTSEXTENSIONS::T166453786"] = "Grammar & Spelling Assistant"
|
||||||
|
|
||||||
|
-- Slide Assistant
|
||||||
|
UI_TEXT_CONTENT["AISTUDIO::TOOLS::COMPONENTSEXTENSIONS::T1883918574"] = "Slide Assistant"
|
||||||
|
|
||||||
-- Legal Check Assistant
|
-- Legal Check Assistant
|
||||||
UI_TEXT_CONTENT["AISTUDIO::TOOLS::COMPONENTSEXTENSIONS::T1886447798"] = "Legal Check Assistant"
|
UI_TEXT_CONTENT["AISTUDIO::TOOLS::COMPONENTSEXTENSIONS::T1886447798"] = "Legal Check Assistant"
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,29 @@
|
|||||||
|
@attribute [Route(Routes.ASSISTANT_SLIDE_BUILDER)]
|
||||||
|
@inherits AssistantBaseCore<AIStudio.Dialogs.Settings.SettingsDialogSlideBuilder>
|
||||||
|
|
||||||
|
<MudTextField T="string" @bind-Text="@this.inputTitle" Validation="@this.ValidatingText" Adornment="Adornment.Start" Label="@T("Your title")" Variant="Variant.Outlined" Class="mb-3" UserAttributes="@USER_INPUT_ATTRIBUTES"/>
|
||||||
|
|
||||||
|
<MudTextField T="string" @bind-Text="@this.inputContext" Adornment="Adornment.Start" Lines="6" MaxLines="12" AutoGrow="@false" Label="@T("Your content")" Variant="Variant.Outlined" Class="mb-3" UserAttributes="@USER_INPUT_ATTRIBUTES"/>
|
||||||
|
<ReadFileContent @bind-FileContent="@this.inputContext"/>
|
||||||
|
|
||||||
|
<MudGrid>
|
||||||
|
<MudItem xs="6">
|
||||||
|
<MudNumericField @bind-Value="numberOfSheets"
|
||||||
|
Label="Number of slides"
|
||||||
|
Variant="Variant.Outlined"
|
||||||
|
Class="mb-3"
|
||||||
|
Min="0.0" />
|
||||||
|
</MudItem>
|
||||||
|
|
||||||
|
<MudItem xs="6">
|
||||||
|
<MudNumericField @bind-Value="timeSpecification"
|
||||||
|
Label="Time specification (minutes)"
|
||||||
|
Variant="Variant.Outlined"
|
||||||
|
Class="mb-3"
|
||||||
|
Min="0.0" />
|
||||||
|
</MudItem>
|
||||||
|
</MudGrid>
|
||||||
|
|
||||||
|
<EnumSelection T="CommonLanguages" NameFunc="@(language => language.Name())" @bind-Value="@this.selectedTargetLanguage" Icon="@Icons.Material.Filled.Translate" Label="@T("Target language")" AllowOther="@true" @bind-OtherInput="@this.customTargetLanguage" OtherValue="CommonLanguages.OTHER" LabelOther="@T("Custom target language")" ValidateOther="@this.ValidateCustomLanguage" />
|
||||||
|
<EnumSelection T="TargetGroup" NameFunc="@(group => group.Name())" @bind-Value="@this.selectedTargetGroup" Icon="@Icons.Material.Filled.Groups" Label="@T("Target group")" />
|
||||||
|
<ProviderSelection @bind-ProviderSettings="@this.providerSettings" ValidateProvider="@this.ValidatingProvider"/>
|
||||||
@ -0,0 +1,160 @@
|
|||||||
|
using AIStudio.Chat;
|
||||||
|
using AIStudio.Dialogs.Settings;
|
||||||
|
|
||||||
|
namespace AIStudio.Assistants.SlideBuilder;
|
||||||
|
|
||||||
|
public partial class SlideAssistant : AssistantBaseCore<SettingsDialogSlideBuilder>
|
||||||
|
{
|
||||||
|
public override Tools.Components Component => Tools.Components.SLIDE_BUILDER_ASSISTANT;
|
||||||
|
|
||||||
|
protected override string Title => T("Slide Assistant");
|
||||||
|
|
||||||
|
protected override string Description => T("Develop slide content based on a given topic and content.");
|
||||||
|
|
||||||
|
protected override string SystemPrompt =>
|
||||||
|
$$"""
|
||||||
|
You are a professional presentation editor and writer.
|
||||||
|
Create a clear, single-slide outline from the user's inputs.
|
||||||
|
|
||||||
|
# Content
|
||||||
|
You get the following inputs: PRESENTATION_TITLE and PRESENTATION_CONTENT.
|
||||||
|
|
||||||
|
# Subheadings
|
||||||
|
- Rule for creating the individual subheadings:
|
||||||
|
- If {{this.numberOfSheets}} is NOT 0
|
||||||
|
- Generate exactly {{this.numberOfSheets}} precise subheadings, each heading represents one slide in a presentation.
|
||||||
|
- If {{this.timeSpecification}} is NOT 0
|
||||||
|
- Generate exactly {{this.calculatedNumberOfSlides}} precise subheadings, each heading represents one slide in a presentation.
|
||||||
|
- If either parameter is 0, ignore that rules.
|
||||||
|
|
||||||
|
- Each subheadings must have:
|
||||||
|
- A clear, concise, and thematically meaningful heading.
|
||||||
|
- 1 to 7 bullet points (maximum 7) summarizing the slide’s content — use as many as needed, but never more than 7.
|
||||||
|
- Each bullet point must be max 12 words.
|
||||||
|
- Place *** on its own line immediately before each heading.
|
||||||
|
|
||||||
|
# Output requirements:
|
||||||
|
- Output only Markdown.
|
||||||
|
- Start with a single H1 title that contains the user's PRESENTATION_TITLE.
|
||||||
|
- Then add headings with own bullet lists based only on the user's PRESENTATION_CONTENT.
|
||||||
|
- If PRESENTATION_CONTENT is empty, output the title and one bullet: "No content provided."
|
||||||
|
- Do not mention these instructions or add commentary.
|
||||||
|
|
||||||
|
# Target group:
|
||||||
|
{{this.selectedTargetGroup.Prompt()}}
|
||||||
|
|
||||||
|
# Language:
|
||||||
|
- Ignore the language written in PRESENTATION_TITLE
|
||||||
|
{{this.selectedTargetLanguage.PromptGeneralPurpose(this.customTargetLanguage)}}
|
||||||
|
""";
|
||||||
|
|
||||||
|
protected override bool AllowProfiles => false;
|
||||||
|
|
||||||
|
protected override IReadOnlyList<IButtonData> FooterButtons => [];
|
||||||
|
|
||||||
|
protected override string SubmitText => T("Create Slides");
|
||||||
|
|
||||||
|
protected override Func<Task> SubmitAction => this.CreateSlideBuilder;
|
||||||
|
|
||||||
|
protected override ChatThread ConvertToChatThread => (this.chatThread ?? new()) with
|
||||||
|
{
|
||||||
|
SystemPrompt = SystemPrompts.DEFAULT,
|
||||||
|
};
|
||||||
|
|
||||||
|
protected override void ResetForm()
|
||||||
|
{
|
||||||
|
this.inputTitle = string.Empty;
|
||||||
|
this.inputContext = string.Empty;
|
||||||
|
this.expertInField = string.Empty;
|
||||||
|
this.selectedTargetGroup = TargetGroup.NO_CHANGE;
|
||||||
|
this.customTargetGroup = string.Empty;
|
||||||
|
if (!this.MightPreselectValues())
|
||||||
|
{
|
||||||
|
this.selectedLanguage = CommonLanguages.AS_IS;
|
||||||
|
this.customTargetLanguage = string.Empty;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override bool MightPreselectValues()
|
||||||
|
{
|
||||||
|
if (this.SettingsManager.ConfigurationData.Synonyms.PreselectOptions)
|
||||||
|
{
|
||||||
|
this.selectedLanguage = this.SettingsManager.ConfigurationData.Synonyms.PreselectedLanguage;
|
||||||
|
this.customTargetLanguage = this.SettingsManager.ConfigurationData.Synonyms.PreselectedOtherLanguage;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private string inputTitle = string.Empty;
|
||||||
|
private string inputContext = string.Empty;
|
||||||
|
private CommonLanguages selectedLanguage;
|
||||||
|
private string customTargetLanguage = string.Empty;
|
||||||
|
private string expertInField = string.Empty;
|
||||||
|
private TargetGroup selectedTargetGroup;
|
||||||
|
private string customTargetGroup = string.Empty;
|
||||||
|
private CommonLanguages selectedTargetLanguage;
|
||||||
|
private double numberOfSheets;
|
||||||
|
private double timeSpecification;
|
||||||
|
private int calculatedNumberOfSlides = 0;
|
||||||
|
|
||||||
|
#region Overrides of ComponentBase
|
||||||
|
|
||||||
|
protected override async Task OnInitializedAsync()
|
||||||
|
{
|
||||||
|
var deferredContent = MessageBus.INSTANCE.CheckDeferredMessages<string>(Event.SEND_TO_SYNONYMS_ASSISTANT).FirstOrDefault();
|
||||||
|
if (deferredContent is not null)
|
||||||
|
this.inputContext = deferredContent;
|
||||||
|
|
||||||
|
await base.OnInitializedAsync();
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private string? ValidatingText(string text)
|
||||||
|
{
|
||||||
|
if(string.IsNullOrWhiteSpace(text))
|
||||||
|
return T("Please a title");
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private string? ValidateCustomLanguage(string language)
|
||||||
|
{
|
||||||
|
if(this.selectedLanguage == CommonLanguages.OTHER && string.IsNullOrWhiteSpace(language))
|
||||||
|
return T("Please provide a custom language.");
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private int CalculateNumberOfSlides()
|
||||||
|
{
|
||||||
|
return this.calculatedNumberOfSlides = (int)Math.Round(this.timeSpecification / 1.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
private async Task CreateSlideBuilder()
|
||||||
|
{
|
||||||
|
await this.form!.Validate();
|
||||||
|
if (!this.inputIsValid)
|
||||||
|
return;
|
||||||
|
|
||||||
|
this.calculatedNumberOfSlides = this.timeSpecification > 0 ? this.CalculateNumberOfSlides() : 0;
|
||||||
|
|
||||||
|
this.CreateChatThread();
|
||||||
|
var time = this.AddUserRequest(
|
||||||
|
$"""
|
||||||
|
# PRESENTATION_TITLE
|
||||||
|
```
|
||||||
|
{this.inputTitle}
|
||||||
|
```
|
||||||
|
|
||||||
|
# PRESENTATION_CONTENT
|
||||||
|
```
|
||||||
|
{this.inputContext}
|
||||||
|
```
|
||||||
|
""");
|
||||||
|
|
||||||
|
await this.AddAIResponseAsync(time);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,28 @@
|
|||||||
|
@using AIStudio.Settings
|
||||||
|
@inherits SettingsDialogBase
|
||||||
|
|
||||||
|
<MudDialog>
|
||||||
|
<TitleContent>
|
||||||
|
<MudText Typo="Typo.h6" Class="d-flex align-center">
|
||||||
|
<MudIcon Icon="@Icons.Material.Filled.Spellcheck" Class="mr-2" />
|
||||||
|
@T("Assistant: Slide Assistant Options")
|
||||||
|
</MudText>
|
||||||
|
</TitleContent>
|
||||||
|
<DialogContent>
|
||||||
|
<MudPaper Class="pa-3 mb-8 border-dashed border rounded-lg">
|
||||||
|
<ConfigurationOption OptionDescription="@T("Preselect Slide Assistant options?")" LabelOn="@T("Slide Assistant options are preselected")" LabelOff="@T("No Slide Assistant options are preselected")" State="@(() => this.SettingsManager.ConfigurationData.Synonyms.PreselectOptions)" StateUpdate="@(updatedState => this.SettingsManager.ConfigurationData.Synonyms.PreselectOptions = updatedState)" OptionHelp="@T("When enabled, you can preselect synonym options. This is might be useful when you prefer a specific language or LLM model.")"/>
|
||||||
|
<ConfigurationSelect OptionDescription="@T("Preselect the language")" Disabled="@(() => !this.SettingsManager.ConfigurationData.Synonyms.PreselectOptions)" SelectedValue="@(() => this.SettingsManager.ConfigurationData.Synonyms.PreselectedLanguage)" Data="@ConfigurationSelectDataFactory.GetCommonLanguagesOptionalData()" SelectionUpdate="@(selectedValue => this.SettingsManager.ConfigurationData.Synonyms.PreselectedLanguage = selectedValue)" OptionHelp="@T("Which language should be preselected?")"/>
|
||||||
|
@if (this.SettingsManager.ConfigurationData.Synonyms.PreselectedLanguage is CommonLanguages.OTHER)
|
||||||
|
{
|
||||||
|
<ConfigurationText OptionDescription="@T("Preselect another language")" Disabled="@(() => !this.SettingsManager.ConfigurationData.Synonyms.PreselectOptions)" Icon="@Icons.Material.Filled.Translate" Text="@(() => this.SettingsManager.ConfigurationData.Synonyms.PreselectedOtherLanguage)" TextUpdate="@(updatedText => this.SettingsManager.ConfigurationData.Synonyms.PreselectedOtherLanguage = updatedText)"/>
|
||||||
|
}
|
||||||
|
<ConfigurationMinConfidenceSelection Disabled="@(() => !this.SettingsManager.ConfigurationData.Synonyms.PreselectOptions)" RestrictToGlobalMinimumConfidence="@true" SelectedValue="@(() => this.SettingsManager.ConfigurationData.Synonyms.MinimumProviderConfidence)" SelectionUpdate="@(selectedValue => this.SettingsManager.ConfigurationData.Synonyms.MinimumProviderConfidence = selectedValue)"/>
|
||||||
|
<ConfigurationProviderSelection Component="Components.SYNONYMS_ASSISTANT" Data="@this.availableLLMProviders" Disabled="@(() => !this.SettingsManager.ConfigurationData.Synonyms.PreselectOptions)" SelectedValue="@(() => this.SettingsManager.ConfigurationData.Synonyms.PreselectedProvider)" SelectionUpdate="@(selectedValue => this.SettingsManager.ConfigurationData.Synonyms.PreselectedProvider = selectedValue)"/>
|
||||||
|
</MudPaper>
|
||||||
|
</DialogContent>
|
||||||
|
<DialogActions>
|
||||||
|
<MudButton OnClick="@this.Close" Variant="Variant.Filled">
|
||||||
|
@T("Close")
|
||||||
|
</MudButton>
|
||||||
|
</DialogActions>
|
||||||
|
</MudDialog>
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
using Microsoft.AspNetCore.Components;
|
||||||
|
|
||||||
|
namespace AIStudio.Dialogs.Settings;
|
||||||
|
|
||||||
|
public partial class SettingsDialogSlideBuilder : SettingsDialogBase
|
||||||
|
{
|
||||||
|
}
|
||||||
@ -37,7 +37,8 @@
|
|||||||
(Components.AGENDA_ASSISTANT, PreviewFeatures.NONE),
|
(Components.AGENDA_ASSISTANT, PreviewFeatures.NONE),
|
||||||
(Components.JOB_POSTING_ASSISTANT, PreviewFeatures.NONE),
|
(Components.JOB_POSTING_ASSISTANT, PreviewFeatures.NONE),
|
||||||
(Components.LEGAL_CHECK_ASSISTANT, PreviewFeatures.NONE),
|
(Components.LEGAL_CHECK_ASSISTANT, PreviewFeatures.NONE),
|
||||||
(Components.ICON_FINDER_ASSISTANT, PreviewFeatures.NONE)
|
(Components.ICON_FINDER_ASSISTANT, PreviewFeatures.NONE),
|
||||||
|
(Components.SLIDE_BUILDER_ASSISTANT, PreviewFeatures.NONE)
|
||||||
))
|
))
|
||||||
{
|
{
|
||||||
<MudText Typo="Typo.h4" Class="mb-2 mr-3 mt-6">
|
<MudText Typo="Typo.h4" Class="mb-2 mr-3 mt-6">
|
||||||
@ -51,6 +52,7 @@
|
|||||||
<AssistantBlock TSettings="SettingsDialogJobPostings" Component="Components.JOB_POSTING_ASSISTANT" Name="@T("Job Posting")" Description="@T("Generate a job posting for a given job description.")" Icon="@Icons.Material.Filled.Work" Link="@Routes.ASSISTANT_JOB_POSTING"/>
|
<AssistantBlock TSettings="SettingsDialogJobPostings" Component="Components.JOB_POSTING_ASSISTANT" Name="@T("Job Posting")" Description="@T("Generate a job posting for a given job description.")" Icon="@Icons.Material.Filled.Work" Link="@Routes.ASSISTANT_JOB_POSTING"/>
|
||||||
<AssistantBlock TSettings="SettingsDialogLegalCheck" Component="Components.LEGAL_CHECK_ASSISTANT" Name="@T("Legal Check")" Description="@T("Ask a question about a legal document.")" Icon="@Icons.Material.Filled.Gavel" Link="@Routes.ASSISTANT_LEGAL_CHECK"/>
|
<AssistantBlock TSettings="SettingsDialogLegalCheck" Component="Components.LEGAL_CHECK_ASSISTANT" Name="@T("Legal Check")" Description="@T("Ask a question about a legal document.")" Icon="@Icons.Material.Filled.Gavel" Link="@Routes.ASSISTANT_LEGAL_CHECK"/>
|
||||||
<AssistantBlock TSettings="SettingsDialogIconFinder" Component="Components.ICON_FINDER_ASSISTANT" Name="@T("Icon Finder")" Description="@T("Use an LLM to find an icon for a given context.")" Icon="@Icons.Material.Filled.FindInPage" Link="@Routes.ASSISTANT_ICON_FINDER"/>
|
<AssistantBlock TSettings="SettingsDialogIconFinder" Component="Components.ICON_FINDER_ASSISTANT" Name="@T("Icon Finder")" Description="@T("Use an LLM to find an icon for a given context.")" Icon="@Icons.Material.Filled.FindInPage" Link="@Routes.ASSISTANT_ICON_FINDER"/>
|
||||||
|
<AssistantBlock TSettings="SettingsDialogSlideBuilder" Component="Components.SLIDE_BUILDER_ASSISTANT" Name="@T("Slide Assistant")" Description="@T("Develop slide content based on a given topic and content.")" Icon="@Icons.Material.Filled.Slideshow" Link="@Routes.ASSISTANT_SLIDE_BUILDER"/>
|
||||||
</MudStack>
|
</MudStack>
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -22,6 +22,7 @@ public sealed partial class Routes
|
|||||||
public const string ASSISTANT_EMAIL = "/assistant/email";
|
public const string ASSISTANT_EMAIL = "/assistant/email";
|
||||||
public const string ASSISTANT_LEGAL_CHECK = "/assistant/legal-check";
|
public const string ASSISTANT_LEGAL_CHECK = "/assistant/legal-check";
|
||||||
public const string ASSISTANT_SYNONYMS = "/assistant/synonyms";
|
public const string ASSISTANT_SYNONYMS = "/assistant/synonyms";
|
||||||
|
public const string ASSISTANT_POWERPOINT = "/assistant/powerpoint";
|
||||||
public const string ASSISTANT_MY_TASKS = "/assistant/my-tasks";
|
public const string ASSISTANT_MY_TASKS = "/assistant/my-tasks";
|
||||||
public const string ASSISTANT_JOB_POSTING = "/assistant/job-posting";
|
public const string ASSISTANT_JOB_POSTING = "/assistant/job-posting";
|
||||||
public const string ASSISTANT_BIAS = "/assistant/bias-of-the-day";
|
public const string ASSISTANT_BIAS = "/assistant/bias-of-the-day";
|
||||||
|
|||||||
@ -59,6 +59,14 @@ public static class CommonLanguageExtensions
|
|||||||
_ => $"Translate the given text in {language.Name()} ({language}).",
|
_ => $"Translate the given text in {language.Name()} ({language}).",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
public static string PromptGeneralPurpose(this CommonLanguages language, string customLanguage) => language switch
|
||||||
|
{
|
||||||
|
CommonLanguages.AS_IS => "Use the language the user input is written in for the output.",
|
||||||
|
CommonLanguages.OTHER => $"use the language {customLanguage} for your output.",
|
||||||
|
|
||||||
|
_ => $"Use the language {language.Name()} ({language}) for your output.",
|
||||||
|
};
|
||||||
|
|
||||||
public static string NameSelecting(this CommonLanguages language)
|
public static string NameSelecting(this CommonLanguages language)
|
||||||
{
|
{
|
||||||
if(language is CommonLanguages.AS_IS)
|
if(language is CommonLanguages.AS_IS)
|
||||||
|
|||||||
@ -19,6 +19,7 @@ public enum Components
|
|||||||
BIAS_DAY_ASSISTANT,
|
BIAS_DAY_ASSISTANT,
|
||||||
ERI_ASSISTANT,
|
ERI_ASSISTANT,
|
||||||
DOCUMENT_ANALYSIS_ASSISTANT,
|
DOCUMENT_ANALYSIS_ASSISTANT,
|
||||||
|
SLIDE_BUILDER_ASSISTANT,
|
||||||
|
|
||||||
// ReSharper disable InconsistentNaming
|
// ReSharper disable InconsistentNaming
|
||||||
I18N_ASSISTANT,
|
I18N_ASSISTANT,
|
||||||
|
|||||||
@ -45,6 +45,7 @@ public static class ComponentsExtensions
|
|||||||
Components.ERI_ASSISTANT => TB("ERI Server"),
|
Components.ERI_ASSISTANT => TB("ERI Server"),
|
||||||
Components.I18N_ASSISTANT => TB("Localization Assistant"),
|
Components.I18N_ASSISTANT => TB("Localization Assistant"),
|
||||||
Components.DOCUMENT_ANALYSIS_ASSISTANT => TB("Document Analysis Assistant"),
|
Components.DOCUMENT_ANALYSIS_ASSISTANT => TB("Document Analysis Assistant"),
|
||||||
|
Components.SLIDE_BUILDER_ASSISTANT => TB("Slide Assistant"),
|
||||||
|
|
||||||
Components.CHAT => TB("New Chat"),
|
Components.CHAT => TB("New Chat"),
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user