using AIRuntime.Runtime.Providers.OpenAI;


namespace AIRuntime.Runtime.Providers.Nvidia
{
    /// <summary>
    /// NVIDIA Developer API provider using the
    /// OpenAI-compatible NVIDIA NIM endpoint.
    /// </summary>
    public sealed class NvidiaDeveloperProvider :
        OpenAICompatibleProvider
    {
        public const string DefaultBaseUrl =
            "https://integrate.api.nvidia.com/v1";


        public NvidiaDeveloperProvider(
            string apiKey,
            string model,
            int timeoutSeconds = 60,
            string baseUrl = DefaultBaseUrl)
            : this(
                new OpenAIClient(
                    apiKey,
                    model,
                    baseUrl,
                    timeoutSeconds: timeoutSeconds,
                    providerName: "NVIDIA Developer"))
        {
        }


        public NvidiaDeveloperProvider(
            IOpenAIClient client)
            : base(
                "NVIDIA Developer",
                client,
                maximumTemperature: 1)
        {
        }
    }
}
