using System.Text; using Autodesk.Revit.Attributes; using Autodesk.Revit.DB; using Nice3point.Revit.Toolkit.External; namespace Szmedi.RvKits.LLMScript { /// /// Revit执行命令 /// [Transaction(TransactionMode.Manual)] [Regeneration(RegenerationOption.Manual)] public class LLMCmd : ExternalCommand { public async override void Execute() { string userTask = "将当前选中墙的Comments参数追加'检查'"; PromptManager promptManager = new PromptManager("Prompts/System_UltraStrict.txt"); string systemPrompt = promptManager.GetSystemPrompt(); string userPrompt = promptManager.BuildUserPrompt(userTask); var llm = new OllamaProvider("http://localhost:11434/api/chat", "revit-coder"); StringBuilder fullCode = new StringBuilder(); await llm.GenerateStreamAsync( systemPrompt, userPrompt, chunk => { fullCode.Append(chunk); }); CodeExecutor executor = new CodeExecutor(); executor.Execute(fullCode.ToString(), Document, UiDocument); } } }