You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在.NET OpenAI 2.1.0-beta.1中实现依赖注入及客户端配置?

关于Azure.AI.OpenAI客户端注册的问题解答

1. OpenAIClient的注册与线程安全性

  • 可以将OpenAIClient注册为单例,这是完全可行且符合官方最佳实践的方案。
  • OpenAIClient本身是线程安全的,多个线程可同时调用其方法,复用单例能避免重复创建客户端的资源开销。
  • 替代弃用的AddOpenAIClient方法的注册示例:
    builder.Services.AddSingleton<OpenAIClient>(sp =>
    {
        var endpoint = new Uri(builder.Configuration["AzureOpenAI:Endpoint"]);
        var credential = new AzureKeyCredential(builder.Configuration["AzureOpenAI:ApiKey"]);
        return new OpenAIClient(endpoint, credential);
    });
    

2. EmbeddingClient的注册与线程安全性

  • 可以将指定模型的EmbeddingClient注册为单例,你提供的注册方式是可行的。
  • EmbeddingClient同样是线程安全的,它基于线程安全的OpenAIClient构建,其方法支持多线程并发调用。
  • 注册指定模型的EmbeddingClient为单例的示例:
    builder.Services.AddSingleton<IEmbeddingClient>(sp =>
    {
        var openAIClient = sp.GetRequiredService<OpenAIClient>();
        return openAIClient.GetEmbeddingClient("123"); // "123"为你的嵌入模型部署名称
    });
    
  • 这种方式能避免每次调用GetEmbeddingClient创建新实例的开销,提升性能。

内容的提问来源于stack exchange,提问作者HelloWorld

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 02:19:52