Simple, unified interface to multiple Generative AI providers.
PSAISuite makes it easy for developers to use multiple LLM through a standardized interface. Using an interface similar to OpenAI's, PSAISuite makes it easy to interact with the most popular LLMs and compare the results. It is a thin wrapper around the LLM endpoint, and allows creators to seamlessly swap out and test responses from different LLM providers without changing their code. Today, the library is primarily focussed on chat completions. I will expand it cover more use cases in near future.
Currently supported providers are:
- Anthropic
- Azure AI Foundry
- DeepSeek
- GitHub
- Groq
- Mistral
- Nebius
- Ollama
- OpenAI
- OpenRouter
- Perplexity
- xAI
You can install the module from the PowerShell Gallery.
Install-Module PSAISuiteTo get started, you will need API Keys for the providers you intend to use.
The API Keys need to be be set as environment variables.
Set the API keys.
$env:OpenAIKey="your-openai-api-key"
$env:AnthropicKey="your-anthropic-api-key"
$env:NebiusKey="your-nebius-api-key"
$env:GITHUB_TOKEN="your-github-token" # Add GitHub token
# ... and so on for other providersYou will need to set the AzureAIKey and AzureAIEndpoint environment variables.
$env:AzureAIKey = "your-azure-ai-key"
$env:AzureAIEndpoint = "your-azure-ai-endpoint"Using PSAISuite to generate chat completion responses from different providers.
You can list all available AI providers using the Get-ChatProviders function:
# Get a list of all available providers
Get-ChatProviders# Import the module
Import-Module PSAISuite
$models = @("openai:gpt-4o", "anthropic:claude-3-5-sonnet-20240620", "azureai:gpt-4o", "nebius:meta-llama/Llama-3.3-70B-Instruct")
$message = New-ChatMessage -Prompt "What is the capital of France?"
foreach($model in $models) {
Invoke-ChatCompletion -Message $message -Model $model
}# Import the module
Import-Module PSAISuite
$message = New-ChatMessage -Prompt "What is the capital of France?"
Invoke-ChatCompletion -Message $message -TextOnly
# or by setting the environment variable
$env:PSAISUITE_TEXT_ONLY=$true
$message = New-ChatMessage -Prompt "What is the capital of France?"
Invoke-ChatCompletion -Message $message
# Import the module
Import-Module PSAISuite
$model = "openai:gpt-4o"
$message = New-ChatMessage -Prompt "What is the capital of France?"
Invoke-ChatCompletion -Model $model -Message $message
# or by setting the environment variable
$env:PSAISUITE_DEFAULT_MODEL = "openai:gpt-4o"
$message = New-ChatMessage -Prompt "What is the capital of France?"
Invoke-ChatCompletion -Message $message
Note that the model name in the Invoke-ChatCompletion call uses the format - <provider>:<model-name>.
documentation coming soon
