40 lines
1.2 KiB
C#
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);
|
|
}
|
|
}
|
|
} |