openai/openai-dotnet

Public

mirrored from https://github.com/openai/openai-dotnetAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
copilot/customize-openairesponsescontext-attribute

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

OpenAI.Responses/src/Custom/OpenAIHostBuilderExtensions.cs

40lines · modecode

1using Microsoft.Extensions.Hosting;
2using System;
3using System.ClientModel;
4using System.ClientModel.Primitives;
5using System.Diagnostics.CodeAnalysis;
6
7namespace OpenAI.Responses;
8
9/// <summary>
10/// Extension methods for adding OpenAI clients with configuration and DI support following System.ClientModel pattern.
11/// See: https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/core/System.ClientModel/src/docs/ConfigurationAndDependencyInjection.md
12/// </summary>
13[Experimental("SCME0002")]
14public static class OpenAIHostBuilderExtensions
15{
16 public static IClientBuilder AddResponsesClient(
17 this IHostApplicationBuilder builder,
18 string sectionName)
19 {
20 if (builder is null)
21 {
22 throw new ArgumentNullException(nameof(builder));
23 }
24
25 return builder.AddClient<ResponsesClient, ResponsesClientSettings>(sectionName);
26 }
27
28 public static IClientBuilder AddKeyedResponsesClient(
29 this IHostApplicationBuilder builder,
30 string serviceKey,
31 string sectionName)
32 {
33 if (builder is null)
34 {
35 throw new ArgumentNullException(nameof(builder));
36 }
37
38 return builder.AddKeyedClient<ResponsesClient, ResponsesClientSettings>(serviceKey, sectionName);
39 }
40}
41