using LLama.Web.Common; namespace LLama.Web { public static class Extensions { /// /// Combines the AntiPrompts list and AntiPrompt csv /// /// The session configuration. /// Combined AntiPrompts with duplicates removed public static List GetAntiPrompts(this ISessionConfig sessionConfig) { return CombineCSV(sessionConfig.AntiPrompts, sessionConfig.AntiPrompt); } /// /// Combines the OutputFilters list and OutputFilter csv /// /// The session configuration. /// Combined OutputFilters with duplicates removed public static List GetOutputFilters(this ISessionConfig sessionConfig) { return CombineCSV(sessionConfig.OutputFilters, sessionConfig.OutputFilter); } /// /// Combines a string list and a csv and removes duplicates /// /// The list. /// The CSV. /// Combined list with duplicates removed private static List CombineCSV(List list, string csv) { var results = list is null || list.Count == 0 ? CommaSeparatedToList(csv) : CommaSeparatedToList(csv).Concat(list); return results .Distinct() .ToList(); } private static List CommaSeparatedToList(string value) { if (string.IsNullOrEmpty(value)) return new List(); return value.Split(",", StringSplitOptions.RemoveEmptyEntries) .Select(x => x.Trim()) .ToList(); } } }