mirror of
https://github.com/MindWorkAI/AI-Studio.git
synced 2026-11-05 00:47:21 +00:00
Moved all extension methods into extension blocks (#1155)
This commit is contained in:
1 parent
acc7d09fa2
commit
c0a75f39ac
138 files changed
+5884
-4954
No files matched your search
@@ -4,23 +4,26 @@ public static class AudienceAgeGroupExtensions
|
||||
{
|
||||
private static string TB(string fallbackEN) => Tools.PluginSystem.I18N.I.T(fallbackEN, typeof(AudienceAgeGroupExtensions).Namespace, nameof(AudienceAgeGroupExtensions));
|
||||
|
||||
public static string Name(this AudienceAgeGroup ageGroup) => ageGroup switch
|
||||
extension(AudienceAgeGroup ageGroup)
|
||||
{
|
||||
AudienceAgeGroup.UNSPECIFIED => TB("Unspecified age group"),
|
||||
AudienceAgeGroup.CHILDREN => TB("Children"),
|
||||
AudienceAgeGroup.TEENAGERS => TB("Teenagers"),
|
||||
AudienceAgeGroup.ADULTS => TB("Adults"),
|
||||
public string Name() => ageGroup switch
|
||||
{
|
||||
AudienceAgeGroup.UNSPECIFIED => TB("Unspecified age group"),
|
||||
AudienceAgeGroup.CHILDREN => TB("Children"),
|
||||
AudienceAgeGroup.TEENAGERS => TB("Teenagers"),
|
||||
AudienceAgeGroup.ADULTS => TB("Adults"),
|
||||
|
||||
_ => TB("Unspecified age group"),
|
||||
};
|
||||
_ => TB("Unspecified age group"),
|
||||
};
|
||||
|
||||
public static string Prompt(this AudienceAgeGroup ageGroup) => ageGroup switch
|
||||
{
|
||||
AudienceAgeGroup.UNSPECIFIED => "Do not tailor the text to a specific age group.",
|
||||
AudienceAgeGroup.CHILDREN => "Use simple, concrete language with short sentences and minimal jargon.",
|
||||
AudienceAgeGroup.TEENAGERS => "Use clear, approachable language with relatable examples and limited jargon.",
|
||||
AudienceAgeGroup.ADULTS => "Use adult-appropriate language with clear structure and direct explanations.",
|
||||
public string Prompt() => ageGroup switch
|
||||
{
|
||||
AudienceAgeGroup.UNSPECIFIED => "Do not tailor the text to a specific age group.",
|
||||
AudienceAgeGroup.CHILDREN => "Use simple, concrete language with short sentences and minimal jargon.",
|
||||
AudienceAgeGroup.TEENAGERS => "Use clear, approachable language with relatable examples and limited jargon.",
|
||||
AudienceAgeGroup.ADULTS => "Use adult-appropriate language with clear structure and direct explanations.",
|
||||
|
||||
_ => "Do not tailor the text to a specific age group.",
|
||||
};
|
||||
_ => "Do not tailor the text to a specific age group.",
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -4,25 +4,28 @@ public static class AudienceExpertiseExtensions
|
||||
{
|
||||
private static string TB(string fallbackEN) => Tools.PluginSystem.I18N.I.T(fallbackEN, typeof(AudienceExpertiseExtensions).Namespace, nameof(AudienceExpertiseExtensions));
|
||||
|
||||
public static string Name(this AudienceExpertise expertise) => expertise switch
|
||||
extension(AudienceExpertise expertise)
|
||||
{
|
||||
AudienceExpertise.UNSPECIFIED => TB("Unspecified expertise"),
|
||||
AudienceExpertise.NON_EXPERTS => TB("No expertise"),
|
||||
AudienceExpertise.BASIC => TB("Basic expertise"),
|
||||
AudienceExpertise.INTERMEDIATE => TB("Intermediate expertise"),
|
||||
AudienceExpertise.EXPERTS => TB("Experts"),
|
||||
public string Name() => expertise switch
|
||||
{
|
||||
AudienceExpertise.UNSPECIFIED => TB("Unspecified expertise"),
|
||||
AudienceExpertise.NON_EXPERTS => TB("No expertise"),
|
||||
AudienceExpertise.BASIC => TB("Basic expertise"),
|
||||
AudienceExpertise.INTERMEDIATE => TB("Intermediate expertise"),
|
||||
AudienceExpertise.EXPERTS => TB("Experts"),
|
||||
|
||||
_ => TB("Unspecified expertise"),
|
||||
};
|
||||
_ => TB("Unspecified expertise"),
|
||||
};
|
||||
|
||||
public static string Prompt(this AudienceExpertise expertise) => expertise switch
|
||||
{
|
||||
AudienceExpertise.UNSPECIFIED => "Do not tailor the text to a specific expertise level.",
|
||||
AudienceExpertise.NON_EXPERTS => "Avoid jargon and explain specialized concepts plainly.",
|
||||
AudienceExpertise.BASIC => "Use simple terminology and briefly explain important technical terms.",
|
||||
AudienceExpertise.INTERMEDIATE => "Assume some familiarity with the topic, but still explain important details clearly.",
|
||||
AudienceExpertise.EXPERTS => "Assume deep familiarity with the topic and use precise domain-specific terminology.",
|
||||
public string Prompt() => expertise switch
|
||||
{
|
||||
AudienceExpertise.UNSPECIFIED => "Do not tailor the text to a specific expertise level.",
|
||||
AudienceExpertise.NON_EXPERTS => "Avoid jargon and explain specialized concepts plainly.",
|
||||
AudienceExpertise.BASIC => "Use simple terminology and briefly explain important technical terms.",
|
||||
AudienceExpertise.INTERMEDIATE => "Assume some familiarity with the topic, but still explain important details clearly.",
|
||||
AudienceExpertise.EXPERTS => "Assume deep familiarity with the topic and use precise domain-specific terminology.",
|
||||
|
||||
_ => "Do not tailor the text to a specific expertise level.",
|
||||
};
|
||||
_ => "Do not tailor the text to a specific expertise level.",
|
||||
};
|
||||
}
|
||||
}
|
||||
+24
-21
@@ -4,29 +4,32 @@ public static class AudienceOrganizationalLevelExtensions
|
||||
{
|
||||
private static string TB(string fallbackEN) => Tools.PluginSystem.I18N.I.T(fallbackEN, typeof(AudienceOrganizationalLevelExtensions).Namespace, nameof(AudienceOrganizationalLevelExtensions));
|
||||
|
||||
public static string Name(this AudienceOrganizationalLevel level) => level switch
|
||||
extension(AudienceOrganizationalLevel level)
|
||||
{
|
||||
AudienceOrganizationalLevel.UNSPECIFIED => TB("Unspecified organizational level"),
|
||||
AudienceOrganizationalLevel.TRAINEES => TB("Trainees"),
|
||||
AudienceOrganizationalLevel.INDIVIDUAL_CONTRIBUTORS => TB("Individual contributors"),
|
||||
AudienceOrganizationalLevel.TEAM_LEADS => TB("Team leads"),
|
||||
AudienceOrganizationalLevel.MANAGERS => TB("Managers"),
|
||||
AudienceOrganizationalLevel.EXECUTIVES => TB("Executives"),
|
||||
AudienceOrganizationalLevel.BOARD_MEMBERS => TB("Board members"),
|
||||
public string Name() => level switch
|
||||
{
|
||||
AudienceOrganizationalLevel.UNSPECIFIED => TB("Unspecified organizational level"),
|
||||
AudienceOrganizationalLevel.TRAINEES => TB("Trainees"),
|
||||
AudienceOrganizationalLevel.INDIVIDUAL_CONTRIBUTORS => TB("Individual contributors"),
|
||||
AudienceOrganizationalLevel.TEAM_LEADS => TB("Team leads"),
|
||||
AudienceOrganizationalLevel.MANAGERS => TB("Managers"),
|
||||
AudienceOrganizationalLevel.EXECUTIVES => TB("Executives"),
|
||||
AudienceOrganizationalLevel.BOARD_MEMBERS => TB("Board members"),
|
||||
|
||||
_ => TB("Unspecified organizational level"),
|
||||
};
|
||||
_ => TB("Unspecified organizational level"),
|
||||
};
|
||||
|
||||
public static string Prompt(this AudienceOrganizationalLevel level) => level switch
|
||||
{
|
||||
AudienceOrganizationalLevel.UNSPECIFIED => "Do not tailor the text to a specific organizational level.",
|
||||
AudienceOrganizationalLevel.TRAINEES => "Keep the content supportive and introductory. Explain context and avoid assuming prior organizational knowledge.",
|
||||
AudienceOrganizationalLevel.INDIVIDUAL_CONTRIBUTORS => "Focus on execution, clarity, responsibilities, and practical next steps.",
|
||||
AudienceOrganizationalLevel.TEAM_LEADS => "Focus on coordination, tradeoffs, risks, and concrete actions for a small team.",
|
||||
AudienceOrganizationalLevel.MANAGERS => "Focus on planning, priorities, outcomes, risks, and resource implications.",
|
||||
AudienceOrganizationalLevel.EXECUTIVES => "Focus on strategy, business impact, risks, and the decisions required.",
|
||||
AudienceOrganizationalLevel.BOARD_MEMBERS => "Provide a concise executive-level summary with governance, strategy, risk, and decision relevance.",
|
||||
public string Prompt() => level switch
|
||||
{
|
||||
AudienceOrganizationalLevel.UNSPECIFIED => "Do not tailor the text to a specific organizational level.",
|
||||
AudienceOrganizationalLevel.TRAINEES => "Keep the content supportive and introductory. Explain context and avoid assuming prior organizational knowledge.",
|
||||
AudienceOrganizationalLevel.INDIVIDUAL_CONTRIBUTORS => "Focus on execution, clarity, responsibilities, and practical next steps.",
|
||||
AudienceOrganizationalLevel.TEAM_LEADS => "Focus on coordination, tradeoffs, risks, and concrete actions for a small team.",
|
||||
AudienceOrganizationalLevel.MANAGERS => "Focus on planning, priorities, outcomes, risks, and resource implications.",
|
||||
AudienceOrganizationalLevel.EXECUTIVES => "Focus on strategy, business impact, risks, and the decisions required.",
|
||||
AudienceOrganizationalLevel.BOARD_MEMBERS => "Provide a concise executive-level summary with governance, strategy, risk, and decision relevance.",
|
||||
|
||||
_ => "Do not tailor the text to a specific organizational level.",
|
||||
};
|
||||
_ => "Do not tailor the text to a specific organizational level.",
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -4,37 +4,40 @@ public static class AudienceProfileExtensions
|
||||
{
|
||||
private static string TB(string fallbackEN) => Tools.PluginSystem.I18N.I.T(fallbackEN, typeof(AudienceProfileExtensions).Namespace, nameof(AudienceProfileExtensions));
|
||||
|
||||
public static string Name(this AudienceProfile profile) => profile switch
|
||||
extension(AudienceProfile profile)
|
||||
{
|
||||
AudienceProfile.UNSPECIFIED => TB("Unspecified audience profile"),
|
||||
AudienceProfile.STUDENTS => TB("Students"),
|
||||
AudienceProfile.SCIENTISTS => TB("Scientists"),
|
||||
AudienceProfile.LAWYERS => TB("Lawyers"),
|
||||
AudienceProfile.INVESTORS => TB("Investors"),
|
||||
AudienceProfile.ENGINEERS => TB("Engineers"),
|
||||
AudienceProfile.SOFTWARE_DEVELOPERS => TB("Software developers"),
|
||||
AudienceProfile.JOURNALISTS => TB("Journalists"),
|
||||
AudienceProfile.HEALTHCARE_PROFESSIONALS => TB("Healthcare professionals"),
|
||||
AudienceProfile.PUBLIC_OFFICIALS => TB("Public officials"),
|
||||
AudienceProfile.BUSINESS_PROFESSIONALS => TB("Business professionals"),
|
||||
public string Name() => profile switch
|
||||
{
|
||||
AudienceProfile.UNSPECIFIED => TB("Unspecified audience profile"),
|
||||
AudienceProfile.STUDENTS => TB("Students"),
|
||||
AudienceProfile.SCIENTISTS => TB("Scientists"),
|
||||
AudienceProfile.LAWYERS => TB("Lawyers"),
|
||||
AudienceProfile.INVESTORS => TB("Investors"),
|
||||
AudienceProfile.ENGINEERS => TB("Engineers"),
|
||||
AudienceProfile.SOFTWARE_DEVELOPERS => TB("Software developers"),
|
||||
AudienceProfile.JOURNALISTS => TB("Journalists"),
|
||||
AudienceProfile.HEALTHCARE_PROFESSIONALS => TB("Healthcare professionals"),
|
||||
AudienceProfile.PUBLIC_OFFICIALS => TB("Public officials"),
|
||||
AudienceProfile.BUSINESS_PROFESSIONALS => TB("Business professionals"),
|
||||
|
||||
_ => TB("Unspecified audience profile"),
|
||||
};
|
||||
_ => TB("Unspecified audience profile"),
|
||||
};
|
||||
|
||||
public static string Prompt(this AudienceProfile profile) => profile switch
|
||||
{
|
||||
AudienceProfile.UNSPECIFIED => "Do not tailor the text to a specific audience profile.",
|
||||
AudienceProfile.STUDENTS => "Write for students. Keep it structured, easy to study, and focused on key takeaways.",
|
||||
AudienceProfile.SCIENTISTS => "Use precise, technical language. Structure the content logically and focus on methods, evidence, and results.",
|
||||
AudienceProfile.LAWYERS => "Write with precise wording. Emphasize definitions, implications, compliance, and risks.",
|
||||
AudienceProfile.INVESTORS => "Focus on market potential, business model, differentiation, traction, risks, and financial upside.",
|
||||
AudienceProfile.ENGINEERS => "Be technically precise and practical. Focus on systems, constraints, implementation, and tradeoffs.",
|
||||
AudienceProfile.SOFTWARE_DEVELOPERS => "Use concise technical language. Focus on architecture, implementation details, tradeoffs, and maintainability.",
|
||||
AudienceProfile.JOURNALISTS => "Be clear, factual, and concise. Highlight the most newsworthy points and explain relevance plainly.",
|
||||
AudienceProfile.HEALTHCARE_PROFESSIONALS => "Use accurate professional language. Emphasize outcomes, safety, evidence, and practical implications.",
|
||||
AudienceProfile.PUBLIC_OFFICIALS => "Focus on public impact, feasibility, budget, compliance, risks, and implementation in a neutral institutional tone.",
|
||||
AudienceProfile.BUSINESS_PROFESSIONALS => "Be clear, practical, and concise. Focus on business relevance, decisions, and next steps.",
|
||||
public string Prompt() => profile switch
|
||||
{
|
||||
AudienceProfile.UNSPECIFIED => "Do not tailor the text to a specific audience profile.",
|
||||
AudienceProfile.STUDENTS => "Write for students. Keep it structured, easy to study, and focused on key takeaways.",
|
||||
AudienceProfile.SCIENTISTS => "Use precise, technical language. Structure the content logically and focus on methods, evidence, and results.",
|
||||
AudienceProfile.LAWYERS => "Write with precise wording. Emphasize definitions, implications, compliance, and risks.",
|
||||
AudienceProfile.INVESTORS => "Focus on market potential, business model, differentiation, traction, risks, and financial upside.",
|
||||
AudienceProfile.ENGINEERS => "Be technically precise and practical. Focus on systems, constraints, implementation, and tradeoffs.",
|
||||
AudienceProfile.SOFTWARE_DEVELOPERS => "Use concise technical language. Focus on architecture, implementation details, tradeoffs, and maintainability.",
|
||||
AudienceProfile.JOURNALISTS => "Be clear, factual, and concise. Highlight the most newsworthy points and explain relevance plainly.",
|
||||
AudienceProfile.HEALTHCARE_PROFESSIONALS => "Use accurate professional language. Emphasize outcomes, safety, evidence, and practical implications.",
|
||||
AudienceProfile.PUBLIC_OFFICIALS => "Focus on public impact, feasibility, budget, compliance, risks, and implementation in a neutral institutional tone.",
|
||||
AudienceProfile.BUSINESS_PROFESSIONALS => "Be clear, practical, and concise. Focus on business relevance, decisions, and next steps.",
|
||||
|
||||
_ => "Do not tailor the text to a specific audience profile.",
|
||||
};
|
||||
_ => "Do not tailor the text to a specific audience profile.",
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -4,53 +4,56 @@ public static class PresentationOccasionExtensions
|
||||
{
|
||||
private static string TB(string fallbackEN) => Tools.PluginSystem.I18N.I.T(fallbackEN, typeof(PresentationOccasionExtensions).Namespace, nameof(PresentationOccasionExtensions));
|
||||
|
||||
public static string Name(this PresentationOccasion occasion) => occasion switch
|
||||
{
|
||||
PresentationOccasion.UNSPECIFIED => TB("Unspecified occasion"),
|
||||
PresentationOccasion.TALK => TB("Talk"),
|
||||
PresentationOccasion.KEYNOTE => TB("Keynote"),
|
||||
PresentationOccasion.CONFERENCE_TALK => TB("Conference talk"),
|
||||
PresentationOccasion.LECTURE => TB("Lecture"),
|
||||
PresentationOccasion.TRAINING => TB("Training"),
|
||||
PresentationOccasion.WORKSHOP => TB("Workshop of one day"),
|
||||
PresentationOccasion.MULTI_DAY_WORKSHOP => TB("Workshop of several days"),
|
||||
PresentationOccasion.THESIS_DEFENSE => TB("Defense of a thesis or dissertation"),
|
||||
PresentationOccasion.RESEARCH_RESULTS => TB("Presentation of research results"),
|
||||
PresentationOccasion.PROJECT_REPORT => TB("Project or status report"),
|
||||
PresentationOccasion.MANAGEMENT_REPORT => TB("Report to management"),
|
||||
PresentationOccasion.PITCH => TB("Pitch"),
|
||||
PresentationOccasion.PRODUCT_PRESENTATION => TB("Product presentation"),
|
||||
PresentationOccasion.KICK_OFF => TB("Kick-off"),
|
||||
PresentationOccasion.TEAM_MEETING => TB("Team meeting"),
|
||||
PresentationOccasion.OTHER => TB("Other occasion"),
|
||||
|
||||
_ => TB("Unspecified occasion"),
|
||||
};
|
||||
|
||||
/// <summary>
|
||||
/// Tells the model what the occasion means for the structure of the presentation.
|
||||
/// </summary>
|
||||
/// <param name="occasion">The occasion.</param>
|
||||
/// <param name="customOccasion">The occasion the user described, for OTHER.</param>
|
||||
public static string Prompt(this PresentationOccasion occasion, string customOccasion) => occasion switch
|
||||
extension(PresentationOccasion occasion)
|
||||
{
|
||||
PresentationOccasion.TALK => "The presentation accompanies a talk. Structure it for a speaker who talks the audience through it.",
|
||||
PresentationOccasion.KEYNOTE => "The presentation accompanies a keynote. Favor few words per slide, strong key messages, and a story which carries the audience.",
|
||||
PresentationOccasion.CONFERENCE_TALK => "The presentation accompanies a talk at a conference. Keep to the essentials of a short time slot, and end with the key messages and room for questions.",
|
||||
PresentationOccasion.LECTURE => "The presentation accompanies a lecture. Teach step by step, with examples, and where it suits, end chapters with an interim summary or with room for questions.",
|
||||
PresentationOccasion.TRAINING => "The presentation accompanies a training. Teach practical skills step by step, with examples and exercises where the content offers them.",
|
||||
PresentationOccasion.WORKSHOP => "The presentation accompanies a workshop of one day. Plan for interaction, e.g., exercises, group work, or discussions, and for the breaks the schedule of the content has.",
|
||||
PresentationOccasion.MULTI_DAY_WORKSHOP => "The presentation accompanies a workshop of several days. Plan for interaction, mark where a day ends and the next one starts, and look back at the start of each day, following the schedule of the content.",
|
||||
PresentationOccasion.THESIS_DEFENSE => "The presentation defends a thesis or a dissertation before a committee. Present the research questions, the method, the results, and the contribution precisely, and anticipate critical questions.",
|
||||
PresentationOccasion.RESEARCH_RESULTS => "The presentation presents research results. Present the questions, the method, the results, and their meaning precisely and comprehensibly.",
|
||||
PresentationOccasion.PROJECT_REPORT => "The presentation reports on a project. Present the status, the progress, the problems, and the next steps clearly.",
|
||||
PresentationOccasion.MANAGEMENT_REPORT => "The presentation reports to management and may prepare a decision. Lead with the key messages, keep details short, and state clearly what is to be decided.",
|
||||
PresentationOccasion.PITCH => "The presentation pitches an idea, a product, or an offer. Lead with the benefit for the audience, and end with a clear call to action.",
|
||||
PresentationOccasion.PRODUCT_PRESENTATION => "The presentation presents a product. Show what it does and what it brings the audience, with examples.",
|
||||
PresentationOccasion.KICK_OFF => "The presentation opens a project at its kick-off. Present the goals, the team, the plan, and how the work is organized.",
|
||||
PresentationOccasion.TEAM_MEETING => "The presentation serves a team meeting. Keep it short and practical, with clear points and next steps.",
|
||||
PresentationOccasion.OTHER => $"The presentation is for this occasion: {customOccasion}. Structure it accordingly.",
|
||||
public string Name() => occasion switch
|
||||
{
|
||||
PresentationOccasion.UNSPECIFIED => TB("Unspecified occasion"),
|
||||
PresentationOccasion.TALK => TB("Talk"),
|
||||
PresentationOccasion.KEYNOTE => TB("Keynote"),
|
||||
PresentationOccasion.CONFERENCE_TALK => TB("Conference talk"),
|
||||
PresentationOccasion.LECTURE => TB("Lecture"),
|
||||
PresentationOccasion.TRAINING => TB("Training"),
|
||||
PresentationOccasion.WORKSHOP => TB("Workshop of one day"),
|
||||
PresentationOccasion.MULTI_DAY_WORKSHOP => TB("Workshop of several days"),
|
||||
PresentationOccasion.THESIS_DEFENSE => TB("Defense of a thesis or dissertation"),
|
||||
PresentationOccasion.RESEARCH_RESULTS => TB("Presentation of research results"),
|
||||
PresentationOccasion.PROJECT_REPORT => TB("Project or status report"),
|
||||
PresentationOccasion.MANAGEMENT_REPORT => TB("Report to management"),
|
||||
PresentationOccasion.PITCH => TB("Pitch"),
|
||||
PresentationOccasion.PRODUCT_PRESENTATION => TB("Product presentation"),
|
||||
PresentationOccasion.KICK_OFF => TB("Kick-off"),
|
||||
PresentationOccasion.TEAM_MEETING => TB("Team meeting"),
|
||||
PresentationOccasion.OTHER => TB("Other occasion"),
|
||||
|
||||
_ => "No particular occasion is given. Structure the presentation by its content.",
|
||||
};
|
||||
_ => TB("Unspecified occasion"),
|
||||
};
|
||||
|
||||
/// <summary>
|
||||
/// Tells the model what the occasion means for the structure of the presentation.
|
||||
/// </summary>
|
||||
/// <param name="customOccasion">The occasion the user described, for OTHER.</param>
|
||||
public string Prompt(string customOccasion) => occasion switch
|
||||
{
|
||||
PresentationOccasion.TALK => "The presentation accompanies a talk. Structure it for a speaker who talks the audience through it.",
|
||||
PresentationOccasion.KEYNOTE => "The presentation accompanies a keynote. Favor few words per slide, strong key messages, and a story which carries the audience.",
|
||||
PresentationOccasion.CONFERENCE_TALK => "The presentation accompanies a talk at a conference. Keep to the essentials of a short time slot, and end with the key messages and room for questions.",
|
||||
PresentationOccasion.LECTURE => "The presentation accompanies a lecture. Teach step by step, with examples, and where it suits, end chapters with an interim summary or with room for questions.",
|
||||
PresentationOccasion.TRAINING => "The presentation accompanies a training. Teach practical skills step by step, with examples and exercises where the content offers them.",
|
||||
PresentationOccasion.WORKSHOP => "The presentation accompanies a workshop of one day. Plan for interaction, e.g., exercises, group work, or discussions, and for the breaks the schedule of the content has.",
|
||||
PresentationOccasion.MULTI_DAY_WORKSHOP => "The presentation accompanies a workshop of several days. Plan for interaction, mark where a day ends and the next one starts, and look back at the start of each day, following the schedule of the content.",
|
||||
PresentationOccasion.THESIS_DEFENSE => "The presentation defends a thesis or a dissertation before a committee. Present the research questions, the method, the results, and the contribution precisely, and anticipate critical questions.",
|
||||
PresentationOccasion.RESEARCH_RESULTS => "The presentation presents research results. Present the questions, the method, the results, and their meaning precisely and comprehensibly.",
|
||||
PresentationOccasion.PROJECT_REPORT => "The presentation reports on a project. Present the status, the progress, the problems, and the next steps clearly.",
|
||||
PresentationOccasion.MANAGEMENT_REPORT => "The presentation reports to management and may prepare a decision. Lead with the key messages, keep details short, and state clearly what is to be decided.",
|
||||
PresentationOccasion.PITCH => "The presentation pitches an idea, a product, or an offer. Lead with the benefit for the audience, and end with a clear call to action.",
|
||||
PresentationOccasion.PRODUCT_PRESENTATION => "The presentation presents a product. Show what it does and what it brings the audience, with examples.",
|
||||
PresentationOccasion.KICK_OFF => "The presentation opens a project at its kick-off. Present the goals, the team, the plan, and how the work is organized.",
|
||||
PresentationOccasion.TEAM_MEETING => "The presentation serves a team meeting. Keep it short and practical, with clear points and next steps.",
|
||||
PresentationOccasion.OTHER => $"The presentation is for this occasion: {customOccasion}. Structure it accordingly.",
|
||||
|
||||
_ => "No particular occasion is given. Structure the presentation by its content.",
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -11,20 +11,23 @@ internal static class TemplateSlideExtensions
|
||||
/// </summary>
|
||||
private const int MAX_SLIDE_TITLE_CHARACTERS = 60;
|
||||
|
||||
/// <summary>
|
||||
/// How the forms name a slide of the template: by its number and its title, and what is special about it.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// The title tells the slides apart at a glance, since a template rarely gives its slides more
|
||||
/// than a title. A long one is cut, so that the label stays on one line.
|
||||
/// </remarks>
|
||||
public static string Label(this TemplateSlide slide)
|
||||
extension(TemplateSlide slide)
|
||||
{
|
||||
var title = slide.Title.Length > MAX_SLIDE_TITLE_CHARACTERS ? $"{slide.Title[..MAX_SLIDE_TITLE_CHARACTERS].TrimEnd()}…" : slide.Title;
|
||||
var label = title.Length > 0 ? string.Format(TB("Slide {0}: {1}"), slide.Number, title) : string.Format(TB("Slide {0}"), slide.Number);
|
||||
if (slide.IsHidden)
|
||||
label = $"{label} ({TB("hidden")})";
|
||||
/// <summary>
|
||||
/// How the forms name a slide of the template: by its number and its title, and what is special about it.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// The title tells the slides apart at a glance, since a template rarely gives its slides more
|
||||
/// than a title. A long one is cut, so that the label stays on one line.
|
||||
/// </remarks>
|
||||
public string Label()
|
||||
{
|
||||
var title = slide.Title.Length > MAX_SLIDE_TITLE_CHARACTERS ? $"{slide.Title[..MAX_SLIDE_TITLE_CHARACTERS].TrimEnd()}…" : slide.Title;
|
||||
var label = title.Length > 0 ? string.Format(TB("Slide {0}: {1}"), slide.Number, title) : string.Format(TB("Slide {0}"), slide.Number);
|
||||
if (slide.IsHidden)
|
||||
label = $"{label} ({TB("hidden")})";
|
||||
|
||||
return label;
|
||||
return label;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -6,12 +6,15 @@ internal static class TemplateSlideUseExtensions
|
||||
{
|
||||
private static string TB(string fallbackEN) => Tools.PluginSystem.I18N.I.T(fallbackEN, typeof(TemplateSlideUseExtensions).Namespace, nameof(TemplateSlideUseExtensions));
|
||||
|
||||
public static string Name(this TemplateSlideUse use) => use switch
|
||||
extension(TemplateSlideUse use)
|
||||
{
|
||||
TemplateSlideUse.OMIT => TB("Leave out"),
|
||||
TemplateSlideUse.KEEP => TB("Keep unchanged"),
|
||||
TemplateSlideUse.EDIT => TB("Let the LLM edit it"),
|
||||
public string Name() => use switch
|
||||
{
|
||||
TemplateSlideUse.OMIT => TB("Leave out"),
|
||||
TemplateSlideUse.KEEP => TB("Keep unchanged"),
|
||||
TemplateSlideUse.EDIT => TB("Let the LLM edit it"),
|
||||
|
||||
_ => TB("Leave out"),
|
||||
};
|
||||
_ => TB("Leave out"),
|
||||
};
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user