Files
ShrlAlgoToolkit/ShrlAlgoToolkit.RevitAddins/General/LLMScript/LLMCmd.cs
2026-03-01 10:42:42 +08:00

40 lines
1.2 KiB
C#

using System.Text;
using Autodesk.Revit.Attributes;
using Autodesk.Revit.DB;
using Nice3point.Revit.Toolkit.External;
namespace Szmedi.RvKits.LLMScript
{
/// <summary>
/// Revit执行命令
/// </summary>
[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);
}
}
}