using AIStudio.Assistants.SWOTAnalysis; using AIStudio.Tools.Services; namespace AIStudio.Tests.Serialization; /// /// Synthetic inputs for the JSON which the Assistant Builder and the SWOT analysis put into their prompts. /// /// /// The texts carry umlauts, quotes, and angle brackets, because the encoder of the options escapes them. The values of /// the Assistant Builder are the ones its prompts get after trimming: a field the user left empty is null. /// internal static class PromptDataSamples { internal const string DESCRIPTION = "Summarizes of any Größe."; internal const string TITLE = "Meeting \"Notes\" Summary"; internal const string EXPECTED_OUTPUT = "A short summary & a list of decisions."; internal const string OUTPUT_LANGUAGE = "German"; internal const string EXAMPLE_REQUEST = "Summarize the notes of Monday's meeting."; internal const string DRAFT = "# Assistant Draft\n## Name\nMeeting \"Notes\" Summary\n## Description\nSummarizes of any Größe."; internal const string REVIEW_NOTES = "Keep the title short."; internal const string PLUGIN_NAME = "Meeting Notes"; internal const string CHANGE_REQUEST = "Add a dropdown with „formal“ and „casual“."; internal const string SWOT_GOAL = "Decide whether the company should grow to a new Größe."; internal const string SWOT_RESEARCH = "The market grew by 8 % in the \"last\" year."; internal static readonly Guid PLUGIN_ID = Guid.Parse("6f1c3a52-9d4e-4b8a-a2f7-0c5e81d94b36"); internal static AssistantBuilderChatLaunchRequest ChatLaunch() => new( "Workspace ", "provider id sample", Guid.Empty.ToString(), null, ["data source 1", "data source 2"], null); internal static IReadOnlyDictionary SwotCategories() => new Dictionary { [SwotAnalysisCategory.STRENGTHS] = Category(string.Empty, Finding("A loyal \"core\" team", "The team stayed together for years."), Finding("Low costs", "Costs are <10 %> below the market.")), [SwotAnalysisCategory.WEAKNESSES] = Category(string.Empty, Finding("Small Größe", "The company has only twelve employees.")), [SwotAnalysisCategory.OPPORTUNITIES] = Category("The sources name no external opportunities."), [SwotAnalysisCategory.THREATS] = Category(string.Empty, Finding("New competitors", "Two competitors entered the market.")), }; private static SwotCategoryAnalysisResult Category(string emptyMessage, params List findings) => new() { EmptyMessage = emptyMessage, Findings = findings, }; private static SwotFinding Finding(string summary, string explanation) => new() { Summary = summary, Explanation = explanation, }; }