Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion src/Cellm/Models/ServiceCollectionExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -148,9 +148,10 @@ public static IServiceCollection AddCellmChatClient(this IServiceCollection serv

var cellmConfiguration = serviceProvider.GetRequiredService<IOptionsMonitor<CellmConfiguration>>();
var resilientHttpClient = serviceProvider.GetKeyedService<HttpClient>("ResilientHttpClient") ?? throw new NullReferenceException("ResilientHttpClient");
resilientHttpClient.DefaultRequestHeaders.Add("Authorization", $"Basic {account.GetBasicAuthCredentials()}");

var openAiClient = new OpenAIClient(
new ApiKeyCredential(account.GetCredentials()),
new ApiKeyCredential(string.Empty),
new OpenAIClientOptions
{
Transport = new HttpClientPipelineTransport(resilientHttpClient),
Expand Down
7 changes: 4 additions & 3 deletions src/Cellm/Users/Account.cs
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ internal async Task<bool> HasEntitlementAsync(Entitlement entitlement)
}

var entitlements = await cache.GetOrCreateAsync(
nameof(GetEntitlements) + GetCredentials(),
nameof(GetEntitlements) + GetBasicAuthCredentials(),
async innerCancellationToken => await GetEntitlements(innerCancellationToken),
options: _cacheEntryOptions,
Tags,
Expand All @@ -81,19 +81,20 @@ internal void RequireEntitlement(Entitlement entitlement)
Task.Run(async () => await RequireEntitlementAsync(entitlement)).GetAwaiter().GetResult();
}

public string GetCredentials()
public string GetBasicAuthCredentials()
{
var credentials = $"{accountConfiguration.CurrentValue.Username}:{accountConfiguration.CurrentValue.Password}";
var credentialsBytes = Encoding.UTF8.GetBytes(credentials);
var credentialsAsBase64 = Convert.ToBase64String(credentialsBytes);

return credentialsAsBase64;
}

private async Task<ActiveEntitlements> GetEntitlements(CancellationToken cancellationToken)
{

var request = new HttpRequestMessage(HttpMethod.Get, new Uri(accountConfiguration.CurrentValue.BaseAddress, "user/permissions"));
request.Headers.Add("Authorization", $"Basic {GetCredentials()}");
request.Headers.Add("Authorization", $"Basic {GetBasicAuthCredentials()}");

try
{
Expand Down