public static IWebJobsBuilder AddOpenAIBindings()

in src/WebJobs.Extensions.OpenAI/OpenAIWebJobsBuilderExtensions.cs [24:58]


    public static IWebJobsBuilder AddOpenAIBindings(this IWebJobsBuilder builder)
    {
        if (builder == null)
        {
            throw new ArgumentNullException(nameof(builder));
        }

        // Register the WebJobs extension, which enables the bindings.
        builder.AddExtension<OpenAIExtension>();
        
        // Service objects that will be used by the extension
        builder.Services.AddSingleton<TextCompletionConverter>();
        builder.Services.AddSingleton<EmbeddingsConverter>();
        builder.Services.AddSingleton<EmbeddingsStoreConverter>();
        builder.Services.AddSingleton<SemanticSearchConverter>();
        builder.Services.AddSingleton<AssistantBindingConverter>();

        builder.Services.AddOptions<OpenAIConfigOptions>()
            .Configure<IConfiguration>((options, config) =>
            {
                config.GetSection("azurefunctionsjobhost:extensions:openai").Bind(options);
            });

        builder.Services.AddSingleton<IAssistantService, DefaultAssistantService>();
        builder.Services
            .AddSingleton<AssistantSkillManager>()
            .AddSingleton<IAssistantSkillInvoker>(p => p.GetRequiredService<AssistantSkillManager>());
        builder.Services.AddSingleton<AssistantSkillTriggerBindingProvider>();

        builder.Services.AddAzureClientsCore(); // Adds AzureComponentFactory

        builder.Services.AddSingleton<OpenAIClientFactory>();

        return builder;
    }