mirror of
https://github.com/microsoft/agent-framework.git
synced 2026-06-16 21:04:09 +08:00
904a5b843e
* Python: .NET Samples - Restructure and Improve Samples (Feature Branch) (#4091) * Moved by agent (#4094) * Fix readme links * .NET Samples - Create `04-hosting` learning path step (#4098) * Agent move * Agent reorderd * Remove A2A section from README Removed A2A section from the Getting Started README. * Agent fixed links * Fix broken sample links in durable-agents README (#4101) * Initial plan * Fix broken internal links in documentation Co-authored-by: crickman <66376200+crickman@users.noreply.github.com> * Revert template link changes; keep only durable-agents README fix Co-authored-by: crickman <66376200+crickman@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: crickman <66376200+crickman@users.noreply.github.com> * .NET Samples - Create `03-workflows` learning path step (#4102) * Fix solution project path * Python: Fix broken markdown links to repo resources (outside /docs) (#4105) * Initial plan * Fix broken markdown links to repo resources Co-authored-by: crickman <66376200+crickman@users.noreply.github.com> * Update README to rename .NET Workflows Samples section --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: crickman <66376200+crickman@users.noreply.github.com> * .NET Samples - Create `02-agents` learning path step (#4107) * .NET: Fix broken relative link in GroupChatToolApproval README (#4108) * Initial plan * Fix broken link in GroupChatToolApproval README Co-authored-by: crickman <66376200+crickman@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: crickman <66376200+crickman@users.noreply.github.com> * Update labeler configuration for workflow samples * .NET - Reorder Agents samples to start from Step01 instead of Step04 (#4110) * Fix solution * Resolve new sample paths * Move new AgentSkills and AgentWithMemory_Step04 samples * Fix link * Fix readme path * fix: update stale dotnet/samples/Durable path reference in AGENTS.md Co-authored-by: crickman <66376200+crickman@users.noreply.github.com> * Moved new sample * Update solution * Resolve merge (new sample) * Sync to new sample - FoundryAgents_Step21_BingCustomSearch * Updated README * .NET Samples - Configuration Naming Update (#4149) * .NET: Restore AzureFunctions index parity with ConsoleApps under DurableAgents samples (#4221) * Clean-up `05_host_your_agent` * Config setting consistency * Refine samples * AGENTS.md * Move new samples * Re-order samples * Move new project and fixup solution * Fixup model config * Fix up new UT project --------- Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
81 lines
2.2 KiB
C#
81 lines
2.2 KiB
C#
// Copyright (c) Microsoft. All rights reserved.
|
|
|
|
using System.Data.Common;
|
|
using System.Diagnostics.CodeAnalysis;
|
|
|
|
namespace AgentWebChat.AgentHost.Utilities;
|
|
|
|
public class ChatClientConnectionInfo
|
|
{
|
|
public Uri? Endpoint { get; init; }
|
|
public required string SelectedModel { get; init; }
|
|
|
|
public ClientChatProvider Provider { get; init; }
|
|
public string? AccessKey { get; init; }
|
|
|
|
// Example connection string:
|
|
// Endpoint=https://localhost:4523;Model=phi3.5;AccessKey=1234;Provider=ollama;
|
|
public static bool TryParse(string? connectionString, [NotNullWhen(true)] out ChatClientConnectionInfo? settings)
|
|
{
|
|
if (string.IsNullOrEmpty(connectionString))
|
|
{
|
|
settings = null;
|
|
return false;
|
|
}
|
|
|
|
var connectionBuilder = new DbConnectionStringBuilder
|
|
{
|
|
ConnectionString = connectionString
|
|
};
|
|
|
|
Uri? endpoint = null;
|
|
if (connectionBuilder.ContainsKey("Endpoint") && Uri.TryCreate(connectionBuilder["Endpoint"].ToString(), UriKind.Absolute, out endpoint))
|
|
{
|
|
}
|
|
|
|
string? model = null;
|
|
if (connectionBuilder.ContainsKey("Model"))
|
|
{
|
|
model = (string)connectionBuilder["Model"];
|
|
}
|
|
|
|
string? accessKey = null;
|
|
if (connectionBuilder.ContainsKey("AccessKey"))
|
|
{
|
|
accessKey = (string)connectionBuilder["AccessKey"];
|
|
}
|
|
|
|
var provider = ClientChatProvider.Unknown;
|
|
if (connectionBuilder.ContainsKey("Provider"))
|
|
{
|
|
var providerValue = (string)connectionBuilder["Provider"];
|
|
Enum.TryParse(providerValue, ignoreCase: true, out provider);
|
|
}
|
|
|
|
if ((endpoint is null && provider != ClientChatProvider.OpenAI) || model is null || provider is ClientChatProvider.Unknown)
|
|
{
|
|
settings = null;
|
|
return false;
|
|
}
|
|
|
|
settings = new ChatClientConnectionInfo
|
|
{
|
|
Endpoint = endpoint,
|
|
SelectedModel = model,
|
|
AccessKey = accessKey,
|
|
Provider = provider
|
|
};
|
|
|
|
return true;
|
|
}
|
|
}
|
|
|
|
public enum ClientChatProvider
|
|
{
|
|
Unknown,
|
|
Ollama,
|
|
OpenAI,
|
|
AzureOpenAI,
|
|
AzureAIInference,
|
|
}
|