Functions/GenXdev.AI.LMStudio/Convert-DotNetTypeToLLMType.ps1
################################################################################ <# .SYNOPSIS Converts .NET type names to LLM (Language Model) type names. .DESCRIPTION This function takes a .NET type name as input and returns the corresponding simplified type name used in Language Models. It handles common .NET types and provides appropriate type mappings. .PARAMETER DotNetType The .NET type name to convert to an LLM type name. .EXAMPLE Convert-DotNetTypeToLLMType -DotNetType "System.String" # Returns: "string" .EXAMPLE Convert-DotNetTypeToLLMType "System.Collections.Generic.List``1" # Returns: "array" #> function Convert-DotNetTypeToLLMType { [CmdletBinding()] param( ######################################################################## [Parameter( Mandatory = $true, Position = 0, HelpMessage = "The .NET type name to convert to an LLM type name" )] [string]$DotNetType ######################################################################## ) begin { Write-Verbose "Converting .NET type '$DotNetType' to LLM type" } process { # convert the .net type to a simplified llm type using a switch statement $result = switch ($DotNetType) { "System.Management.Automation.SwitchParameter]" { "boolean" } "System.Management.Automation.PSObject" { "object" } "System.String" { "string" } "System.Int32" { "number" } "System.Int64" { "number" } "System.Double" { "number" } "System.Boolean" { "boolean" } "System.Object[]" { "array" } "System.Collections.Generic.List`1" { "array" } "System.Collections.Hashtable" { "object" } "System.Collections.Generic.Dictionary`2" { "object" } default { "object" } } Write-Verbose "Converted '$DotNetType' to '$result'" return $result } end { } } ################################################################################ |