using System.Text.Json.Serialization;
namespace Yi.Framework.AiHub.Domain.Shared.Dtos.OpenAi;
///
/// 工具
///
public class ThorToolChoice
{
///
/// 表示模型不会调用任何工具
///
public static ThorToolChoice GetNone() => new() { Type = ThorToolChoiceTypeConst.None };
///
/// 表示模型可以在生成消息或调用一个或多个工具之间进行选择
///
public static ThorToolChoice GetAuto() => new() { Type = ThorToolChoiceTypeConst.Auto };
///
/// 表示模型必须调用一个或多个工具
///
public static ThorToolChoice GetRequired() => new() { Type = ThorToolChoiceTypeConst.Required };
///
/// 指定特定工具会强制模型调用该工具
///
/// 函数名
///
public static ThorToolChoice GetFunction(string functionName) => new()
{
Type = ThorToolChoiceTypeConst.Function,
Function = new ThorToolChoiceFunctionTool()
{
Name = functionName
}
};
///
/// "none" 表示模型不会调用任何工具
/// "auto" 表示模型可以在生成消息或调用一个或多个工具之间进行选择
/// "required" 表示模型必须调用一个或多个工具
/// "function" 指定特定工具会强制模型调用该工具
/// 使用 赋值
///
[JsonPropertyName("type")]
public string Type { get; set; }
///
/// 调用的函数定义
///
[JsonPropertyName("function")]
public ThorToolChoiceFunctionTool? Function { get; set; }
}