using AICore.Context.Summary; using AICore.Context.Summary.Function; using AICore.Context.SummaryParser; using BS.Shared; using BS.Shared.Core; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace AICore.Prompt.SystemPrompts { internal class AiFunctionSystemPromptBuilder : BaseSystemPromptBuilder { public AiFunctionSystemPromptBuilder(string prompt_path) : base(prompt_path) { } public string CreateServiceRecordDocumentationSystemPrompt(BaseContextSummary context) { var sb = new StringBuilder(); sb.AppendLine(getCustomSystemPrompt()); sb.AppendLine(); sb.AppendLine(); sb.AppendLine("---"); sb.AppendLine(); sb.AppendLine("### **Allgemein**"); sb.AppendLine($"- Aktuelle Zeit: {DateTime.Now}"); sb.AppendLine(); sb.AppendLine("### **Ansicht**"); sb.AppendLine($"- Ich befinde mich aktuell in der \"Zeiterfassung\" meiner Anwendung."); sb.AppendLine($"- Es ist kein Filter gesetzt."); sb.AppendLine(); sb.AppendLine("### **Daten**"); if (context?.Context is null) { sb.AppendLine("Dir wurden keine Daten bereitgestellt."); } else { sb.AppendLine("Du erhälst folgende Daten:"); var parser = new CsvContextSummaryParser(); var parsed = parser.Parse(AiActionType.ServiceRecordDocumentation, context); sb.AppendLine(parsed); } return sb.ToString(); } } }