// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
using Microsoft.Teams.AI.Templates;
using Microsoft.Teams.Common.Logging;
namespace Microsoft.Teams.AI.Prompts;
///
/// ChatPrompt Options
///
[Obsolete("Microsoft.Teams.AI is deprecated and will be removed by end of summer 2026.")]
public class ChatPromptOptions
{
///
/// the name of the prompt
///
public string? Name { get; set; }
///
/// the description of the prompt
///
public string? Description { get; set; }
///
/// the defining characteristics/objective
/// of the prompt. This is commonly used to provide a system prompt.
/// If you supply the system prompt as part of the messages,
/// you do not need to supply this option.
///
public ITemplate? Instructions { get; set; }
///
/// the conversation history
///
public IList? Messages { get; set; }
///
/// the logger instance
///
public ILogger? Logger { get; set; }
public ChatPromptOptions WithName(string value)
{
Name = value;
return this;
}
public ChatPromptOptions WithDescription(string value)
{
Description = value;
return this;
}
public ChatPromptOptions WithInstructions(string value)
{
Instructions = new StringTemplate(value);
return this;
}
public ChatPromptOptions WithInstructions(params string[] value)
{
Instructions = new StringTemplate(string.Join("\n", value));
return this;
}
public ChatPromptOptions WithInstructions(ITemplate value)
{
Instructions = value;
return this;
}
public ChatPromptOptions WithLogger(ILogger value)
{
Logger = value;
return this;
}
}