Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
using Microsoft.Extensions.DependencyInjection;
using Microsoft.SemanticKernel;
using Senparc.CO2NET;
using Senparc.Xncf.PromptRange.Abstractions.Events;
using System.ComponentModel;
using System.Threading.Tasks;
Expand All @@ -11,12 +9,9 @@ public class PromptCatalyzerPlugin
{
private readonly PromptOptimizationService _optimizationService;

public PromptCatalyzerPlugin()
public PromptCatalyzerPlugin(PromptOptimizationService optimizationService)
{
// 尝试从 DI 容器获取服务,确保在调用时 ServiceProvider 已就绪
// 注意:Constructor 注入在 Kernel.Plugins.AddFromType<T>() 时可能需要 Kernel 自身配置了 DI
// 这里为了保险起见,使用 ServiceLocator 作为 backup
_optimizationService = Senparc.CO2NET.SenparcDI.GetServiceProvider().GetRequiredService<PromptOptimizationService>();
_optimizationService = optimizationService;
}

[KernelFunction, Description("Optimize the given prompt code based on user requirement")]
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
using Microsoft.Extensions.DependencyInjection;
using Microsoft.SemanticKernel;
using Senparc.CO2NET;
using Senparc.Xncf.PromptRange.Abstractions.Events;
using Senparc.Xncf.PromptRange.Domain.Services;
using Senparc.Xncf.PromptRange.OHS.Local.PL.Request;
Expand All @@ -23,13 +21,16 @@ public class PromptOptimizationPlugin
private readonly PromptRangeService _promptRangeService;
private readonly PromptResultService _promptResultService;

public PromptOptimizationPlugin(PromptOptimizationAgentBridge bridge)
public PromptOptimizationPlugin(
PromptOptimizationAgentBridge bridge,
PromptItemService promptItemService,
PromptRangeService promptRangeService,
PromptResultService promptResultService)
{
_bridge = bridge;
var serviceProvider = SenparcDI.GetServiceProvider();
_promptItemService = serviceProvider.GetRequiredService<PromptItemService>();
_promptRangeService = serviceProvider.GetRequiredService<PromptRangeService>();
_promptResultService = serviceProvider.GetRequiredService<PromptResultService>();
_promptItemService = promptItemService;
_promptRangeService = promptRangeService;
_promptResultService = promptResultService;
}

private static string UnescapeJsonString(string value)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
using Senparc.Ncf.Core.AppServices;
using Senparc.Ncf.Core.Exceptions;
using Senparc.Xncf.AgentsManager.Domain.Services;
using Senparc.Xncf.AgentsManager.OHS.Local.AppService;
using Senparc.Xncf.PromptRange.Abstractions.Events;

namespace Senparc.Xncf.AgentsManager.OHS.Remote.Controllers
Expand Down Expand Up @@ -77,12 +78,7 @@ public async Task<IActionResult> OptimizeAsync([FromBody] PromptOptimizationRequ
request.Context.CurrentTopP,
request.Context.CurrentMaxTokens);

// 🔥 关键修复:确保 Agent 和 ChatGroup 已初始化
_logger.LogInformation(" 开始确保初始化状态...");
await _promptOptimizationService.EnsureInitializedAsync();
_logger.LogInformation(" ✅ 初始化状态确认完成");

// 调用优化服务
// 调用优化服务(内部已包含 EnsureInitializedAsync)
_logger.LogInformation(" 开始调用 OptimizePromptAsync...");
var result = await _promptOptimizationService.OptimizePromptAsync(
request.PromptCode,
Expand Down Expand Up @@ -126,19 +122,4 @@ public async Task<IActionResult> OptimizeAsync([FromBody] PromptOptimizationRequ
}
}
}

#region DTOs

/// <summary>
/// Prompt 优化请求 DTO
/// </summary>
public class PromptOptimizationRequestDto
{
public string PromptCode { get; set; }
public string PromptContent { get; set; }
public string UserRequirement { get; set; }
public OptimizationContext Context { get; set; }
}

#endregion
}
Loading
Loading