Skip to content

Commit 08584bd

Browse files
authored
[Cloud Machine] Merge AIFoundryClient logic into CloudMachineClient and introduce AIFoundryFeature (Azure#48100)
[Cloud Machine] Merge AIFoundryClient logic into CloudMachineClient and introduce AIFoundryFeature
1 parent 7a8178f commit 08584bd

36 files changed

+415
-143
lines changed

sdk/cloudmachine/Azure.CloudMachine.OpenAI/api/Azure.CloudMachine.OpenAI.net8.0.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public OpenAIModelFeature(string model, string modelVersion, Azure.CloudMachine.
4848
public string ModelVersion { get { throw null; } }
4949
protected override void EmitConnections(Azure.Core.ConnectionCollection connections, string cmId) { }
5050
protected override void EmitFeatures(Azure.CloudMachine.Core.FeatureCollection features, string cmId) { }
51-
protected override Azure.Provisioning.Primitives.ProvisionableResource EmitResources(Azure.CloudMachine.CloudMachineInfrastructure cm) { throw null; }
51+
protected override Azure.Provisioning.Primitives.ProvisionableResource EmitResources(Azure.CloudMachine.ProjectInfrastructure cm) { throw null; }
5252
}
5353
[System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
5454
public readonly partial struct VectorbaseEntry

sdk/cloudmachine/Azure.CloudMachine.OpenAI/api/Azure.CloudMachine.OpenAI.netstandard2.0.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public OpenAIModelFeature(string model, string modelVersion, Azure.CloudMachine.
4848
public string ModelVersion { get { throw null; } }
4949
protected override void EmitConnections(Azure.Core.ConnectionCollection connections, string cmId) { }
5050
protected override void EmitFeatures(Azure.CloudMachine.Core.FeatureCollection features, string cmId) { }
51-
protected override Azure.Provisioning.Primitives.ProvisionableResource EmitResources(Azure.CloudMachine.CloudMachineInfrastructure cm) { throw null; }
51+
protected override Azure.Provisioning.Primitives.ProvisionableResource EmitResources(Azure.CloudMachine.ProjectInfrastructure cm) { throw null; }
5252
}
5353
[System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
5454
public readonly partial struct VectorbaseEntry

sdk/cloudmachine/Azure.CloudMachine.OpenAI/src/OpenAIFeature.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ internal class OpenAIFeature : CloudMachineFeature
1313
public OpenAIFeature()
1414
{ }
1515

16-
protected override ProvisionableResource EmitResources(CloudMachineInfrastructure cloudMachine)
16+
protected override ProvisionableResource EmitResources(ProjectInfrastructure cloudMachine)
1717
{
1818
CognitiveServicesAccount cognitiveServices = CreateOpenAIAccount(cloudMachine);
1919
cloudMachine.AddResource(cognitiveServices);
@@ -35,7 +35,7 @@ protected override void EmitConnections(ConnectionCollection connections, string
3535
internal void EmitConnectionsInternal(ConnectionCollection connections, string cmId)
3636
=> EmitConnections(connections, cmId);
3737

38-
internal static CognitiveServicesAccount CreateOpenAIAccount(CloudMachineInfrastructure cm)
38+
internal static CognitiveServicesAccount CreateOpenAIAccount(ProjectInfrastructure cm)
3939
{
4040
return new("openai")
4141
{

sdk/cloudmachine/Azure.CloudMachine.OpenAI/src/OpenAIModelFeature.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ protected override void EmitConnections(ConnectionCollection connections, string
8888
/// <returns></returns>
8989
/// <exception cref="InvalidOperationException"></exception>
9090
/// <exception cref="NotImplementedException"></exception>
91-
protected override ProvisionableResource EmitResources(CloudMachineInfrastructure cm)
91+
protected override ProvisionableResource EmitResources(ProjectInfrastructure cm)
9292
{
9393
if (Account == null) throw new InvalidOperationException("Account must be set before emitting");
9494
if (Account.Resource == null) throw new InvalidOperationException("Account must be emitted before emitting");
@@ -135,7 +135,7 @@ protected override ProvisionableResource EmitResources(CloudMachineInfrastructur
135135
cm.AddResource(deployment);
136136
return deployment;
137137

138-
OpenAIModelFeature? FindPrevious(CloudMachineInfrastructure cm, OpenAIModelFeature current)
138+
OpenAIModelFeature? FindPrevious(ProjectInfrastructure cm, OpenAIModelFeature current)
139139
{
140140
OpenAIModelFeature? previous = default;
141141
foreach (var feature in cm.Features)

sdk/cloudmachine/Azure.CloudMachine.OpenAI/tests/CloudMachineTests_rag.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public void RagDemo()
3434
"Do you think I would like the weather there?",
3535
];
3636

37-
CloudMachineClient cm = new(new MockConfiguration("cmec4615e3fdfa44e"), default);
37+
ProjectClient cm = new(new MockConfiguration("cmec4615e3fdfa44e"), default);
3838
var chat = cm.GetOpenAIChatClient();
3939
var embeddings = cm.GetOpenAIEmbeddingsClient();
4040

sdk/cloudmachine/Azure.CloudMachine.Web/src/CloudMachineExtensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public static class CloudMachineExtensions
2929
/// <param name="application"></param>
3030
public static void MapCloudMachineApplication<T>(this WebApplication application) where T : class
3131
{
32-
CloudMachineClient cm = application.Services.GetRequiredService<CloudMachineClient>();
32+
ProjectClient cm = application.Services.GetRequiredService<ProjectClient>();
3333
T service = (T)Activator.CreateInstance(typeof(T), cm)!;
3434
application.Map<T>(service);
3535
}

sdk/cloudmachine/Azure.CloudMachine/api/Azure.CloudMachine.net8.0.cs

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,20 @@ public static partial class AzureAIProjectsExensions
2323
public static Azure.Search.Documents.Indexes.SearchIndexClient GetSearchIndexClient(this Azure.Core.ClientWorkspace workspace) { throw null; }
2424
public static Azure.Search.Documents.Indexes.SearchIndexerClient GetSearchIndexerClient(this Azure.Core.ClientWorkspace workspace) { throw null; }
2525
}
26-
public partial class CloudMachineClient : Azure.Core.ClientWorkspace
26+
[System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
27+
public readonly partial struct MessagingServices
28+
{
29+
private readonly object _dummy;
30+
private readonly int _dummyPrimitive;
31+
public void SendJson(object serializable) { }
32+
public System.Threading.Tasks.Task SendJsonAsync(object serializable) { throw null; }
33+
public void WhenMessageReceived(System.Action<string> received) { }
34+
}
35+
public partial class ProjectClient : Azure.Core.ClientWorkspace
2736
{
28-
protected CloudMachineClient() : base (default(Azure.Core.TokenCredential)) { }
29-
public CloudMachineClient(Microsoft.Extensions.Configuration.IConfiguration configuration, Azure.Core.TokenCredential credential = null) : base (default(Azure.Core.TokenCredential)) { }
30-
public CloudMachineClient(System.Collections.Generic.IEnumerable<Azure.Core.ClientConnection> connections = null, Azure.Core.TokenCredential credential = null) : base (default(Azure.Core.TokenCredential)) { }
37+
protected ProjectClient() : base (default(Azure.Core.TokenCredential)) { }
38+
public ProjectClient(Microsoft.Extensions.Configuration.IConfiguration configuration, Azure.Core.TokenCredential credential = null) : base (default(Azure.Core.TokenCredential)) { }
39+
public ProjectClient(System.Collections.Generic.IEnumerable<Azure.Core.ClientConnection> connections = null, Azure.Core.TokenCredential credential = null) : base (default(Azure.Core.TokenCredential)) { }
3140
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
3241
public Azure.Core.ConnectionCollection Connections { get { throw null; } }
3342
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
@@ -46,15 +55,6 @@ public CloudMachineClient(System.Collections.Generic.IEnumerable<Azure.Core.Clie
4655
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
4756
public override string ToString() { throw null; }
4857
}
49-
[System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
50-
public readonly partial struct MessagingServices
51-
{
52-
private readonly object _dummy;
53-
private readonly int _dummyPrimitive;
54-
public void SendJson(object serializable) { }
55-
public System.Threading.Tasks.Task SendJsonAsync(object serializable) { throw null; }
56-
public void WhenMessageReceived(System.Action<string> received) { }
57-
}
5858
public partial class StorageFile
5959
{
6060
internal StorageFile() { }

sdk/cloudmachine/Azure.CloudMachine/api/Azure.CloudMachine.netstandard2.0.cs

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,20 @@ public static partial class AzureAIProjectsExensions
2323
public static Azure.Search.Documents.Indexes.SearchIndexClient GetSearchIndexClient(this Azure.Core.ClientWorkspace workspace) { throw null; }
2424
public static Azure.Search.Documents.Indexes.SearchIndexerClient GetSearchIndexerClient(this Azure.Core.ClientWorkspace workspace) { throw null; }
2525
}
26-
public partial class CloudMachineClient : Azure.Core.ClientWorkspace
26+
[System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
27+
public readonly partial struct MessagingServices
28+
{
29+
private readonly object _dummy;
30+
private readonly int _dummyPrimitive;
31+
public void SendJson(object serializable) { }
32+
public System.Threading.Tasks.Task SendJsonAsync(object serializable) { throw null; }
33+
public void WhenMessageReceived(System.Action<string> received) { }
34+
}
35+
public partial class ProjectClient : Azure.Core.ClientWorkspace
2736
{
28-
protected CloudMachineClient() : base (default(Azure.Core.TokenCredential)) { }
29-
public CloudMachineClient(Microsoft.Extensions.Configuration.IConfiguration configuration, Azure.Core.TokenCredential credential = null) : base (default(Azure.Core.TokenCredential)) { }
30-
public CloudMachineClient(System.Collections.Generic.IEnumerable<Azure.Core.ClientConnection> connections = null, Azure.Core.TokenCredential credential = null) : base (default(Azure.Core.TokenCredential)) { }
37+
protected ProjectClient() : base (default(Azure.Core.TokenCredential)) { }
38+
public ProjectClient(Microsoft.Extensions.Configuration.IConfiguration configuration, Azure.Core.TokenCredential credential = null) : base (default(Azure.Core.TokenCredential)) { }
39+
public ProjectClient(System.Collections.Generic.IEnumerable<Azure.Core.ClientConnection> connections = null, Azure.Core.TokenCredential credential = null) : base (default(Azure.Core.TokenCredential)) { }
3140
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
3241
public Azure.Core.ConnectionCollection Connections { get { throw null; } }
3342
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
@@ -46,15 +55,6 @@ public CloudMachineClient(System.Collections.Generic.IEnumerable<Azure.Core.Clie
4655
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
4756
public override string ToString() { throw null; }
4857
}
49-
[System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
50-
public readonly partial struct MessagingServices
51-
{
52-
private readonly object _dummy;
53-
private readonly int _dummyPrimitive;
54-
public void SendJson(object serializable) { }
55-
public System.Threading.Tasks.Task SendJsonAsync(object serializable) { throw null; }
56-
public void WhenMessageReceived(System.Action<string> received) { }
57-
}
5858
public partial class StorageFile
5959
{
6060
internal StorageFile() { }

sdk/cloudmachine/Azure.CloudMachine/src/CoreServices/MessagingServices.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ public readonly struct MessagingServices
1515
{
1616
internal const string DEFAULT_SB_TOPIC = "cm_servicebus_default_topic";
1717

18-
private readonly CloudMachineClient _cm;
19-
internal MessagingServices(CloudMachineClient cm) => _cm = cm;
18+
private readonly ProjectClient _cm;
19+
internal MessagingServices(ProjectClient cm) => _cm = cm;
2020

2121
/// <summary>
2222
/// Sends a message to the service bus.
@@ -49,7 +49,7 @@ public async Task SendJsonAsync(object serializable)
4949
public void WhenMessageReceived(Action<string> received)
5050
{
5151
ServiceBusProcessor processor = _cm.Messaging.GetServiceBusProcessor(default);
52-
CloudMachineClient cm = _cm;
52+
ProjectClient cm = _cm;
5353

5454
// TODO: How to unsubscribe?
5555
// TODO: Use a subscription filter to ignore Event Grid system events

sdk/cloudmachine/Azure.CloudMachine/src/CoreServices/StorageServices.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ namespace Azure.CloudMachine;
2121
/// </summary>
2222
public readonly struct StorageServices
2323
{
24-
private readonly CloudMachineClient _cm;
24+
private readonly ProjectClient _cm;
2525

26-
internal StorageServices(CloudMachineClient cm) => _cm = cm;
26+
internal StorageServices(ProjectClient cm) => _cm = cm;
2727

2828
// TODO: do we want Azure.Storage.Blobs in the public API? This would prevent us from using a custom implementation.
2929
/// <summary>
@@ -36,7 +36,7 @@ public BlobContainerClient GetContainer(string containerName = default)
3636
{
3737
if (containerName == default) containerName = "default";
3838
string blobContainerClientId = $"{typeof(BlobContainerClient).FullName}@{containerName}";
39-
CloudMachineClient cm = _cm;
39+
ProjectClient cm = _cm;
4040
BlobContainerClient container = cm.Subclients.Get(() =>
4141
{
4242
ClientConnection connection = cm.GetConnectionOptions(blobContainerClientId);
@@ -237,7 +237,7 @@ private static string ConvertPathToBlobPath(string path, BlobContainerClient con
237237
/// <param name="function"></param>
238238
public void WhenUploaded(Action<StorageFile> function)
239239
{
240-
CloudMachineClient cm = _cm;
240+
ProjectClient cm = _cm;
241241
// TODO (Pri 0): once the cache gets GCed, we will stop receiving events
242242
ServiceBusProcessor processor = cm.Messaging.GetServiceBusProcessor("cm_servicebus_subscription_private");
243243
// TODO: How to unsubscribe?

0 commit comments

Comments
 (0)