Как выполнить внедрение зависимостей с помощью .NET OpenAI 2.1.0-beta.1?C#

Место общения программистов C#
Ответить
Anonymous
 Как выполнить внедрение зависимостей с помощью .NET OpenAI 2.1.0-beta.1?

Сообщение Anonymous »

Раньше, используя Azure.AI.OpenAI 1.0.0-beta.xx, в моем Program.cs было следующее:

Код: Выделить всё

builder.Services.AddAzureClients(x => { x.AddOpenAIClient( ...
Похоже, это устарело. По крайней мере, я не могу понять, как настроить внедрение зависимостей таким образом.
Если я хочу использовать OpenAIClient, должен ли я просто добавить синглтон? Это потокобезопасно? Я не могу найти никаких упоминаний об этом. Что-то вроде этого?

Код: Выделить всё

builder.Services.AddSingleton(new OpenAIClient(...
Теперь как мне создать встраивания? Очевидный способ, если у меня уже есть OpenAIClient, будет примерно таким:

Код: Выделить всё

openAIClient.GetEmbeddingClient("123").GenerateEmbeddingsAsync(...
Но при этом каждый раз будет создаваться новый экземпляр EmbeddingClient. Могу ли я тогда использовать EmbeddingClient как синглтон?

Код: Выделить всё

builder.Services.AddSingleton(services => services.GetService().GetEmbeddingClient("123"));
Или это небезопасно для потоков?

Подробнее здесь: https://stackoverflow.com/questions/791 ... 1-0-beta-1
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»