Open Chat Playground (OCP) is a web UI that is able to connect virtually any LLM from any platform.
- Azure Subscription
- .NET SDK 9
- Visual Studio Code + C# DevKit or Visual Studio 2022 v17.14+
- Docker Desktop
- Azure Developer CLI
- GitHub CLI
- PowerShell 7.5+ π Windows only
-
Login to GitHub.
gh auth login
-
Check login status.
gh auth status
-
Fork this repository to your account and clone the forked repository to your local machine.
gh repo fork aliencube/open-chat-playground --clone --default-branch-only
-
Navigate to the cloned repository.
cd open-chat-playground
-
Get the repository root.
# bash/zsh REPOSITORY_ROOT=$(git rev-parse --show-toplevel)
# PowerShell $REPOSITORY_ROOT = git rev-parse --show-toplevel
-
Make sure you are at the repository root.
cd $REPOSITORY_ROOT
-
Add GitHub Personal Access Token (PAT) for GitHub Models connection. Make sure you should replace
{{YOUR_TOKEN}}
with your GitHub PAT.# bash/zsh dotnet user-secrets --project $REPOSITORY_ROOT/src/OpenChat.PlaygroundApp \ set GitHubModels:Token "{{YOUR_TOKEN}}"
# PowerShell dotnet user-secrets --project $REPOSITORY_ROOT/src/OpenChat.PlaygroundApp ` set GitHubModels:Token "{{YOUR_TOKEN}}"
For more details about GitHub PAT, refer to the doc, Managing your personal access tokens.
-
Run the app.
dotnet run --project $REPOSITORY_ROOT/src/OpenChat.PlaygroundApp -- --connector-type GitHubModels
-
Open your web browser, navigate to
http://localhost:5280
, and enter prompts.
-
Make sure you are at the repository root.
cd $REPOSITORY_ROOT
-
Build a container.
docker build -f Dockerfile -t openchat-playground:latest .
-
Get GitHub PAT.
# bash/zsh TOKEN=$(dotnet user-secrets --project ./src/OpenChat.PlaygroundApp list --json | \ sed -n '/^\/\//d; p' | jq -r '."GitHubModels:Token"')
# PowerShell $TOKEN = (dotnet user-secrets --project ./src/OpenChat.PlaygroundApp list --json | ` Select-String -NotMatch '^//(BEGIN|END)' | ConvertFrom-Json).'GitHubModels:Token'
-
Run the app.
# From locally built container docker run -i --rm -p 8080:8080 openchat-playground:latest --connector-type GitHubModels --token $TOKEN
# From GitHub Container Registry docker run -i --rm -p 8080:8080 ghcr.io/aliencube/open-chat-playground/openchat-playground:latest --connector-type GitHubModels --token $TOKEN
-
Open your web browser, navigate to
http://localhost:8080
, and enter prompts.
-
Make sure you are at the repository root.
cd $REPOSITORY_ROOT
-
Login to Azure.
# Login to Azure Dev CLI azd auth login
-
Check login status.
# Azure Dev CLI azd auth login --check-status
-
Run the following commands in order to provision and deploy the app.
azd up
NOTE: You will be asked to provide Azure subscription and location for deployment.
-
Clean up all the resources.
azd down --force --purge
-
Make sure you are at the repository root.
cd $REPOSITORY_ROOT
-
Build the app.
dotnet restore && dotnet build
-
Make sure you are at the repository root.
cd $REPOSITORY_ROOT
-
Run tests.
dotnet test --filter "Category=UnitTest"
-
Make sure you are at the repository root.
cd $REPOSITORY_ROOT
-
Install playwright.
pwsh $REPOSITORY_ROOT/test/OpenChat.PlaygroundApp.Tests/bin/Debug/net{YOUR_VERSION}/playwright.ps1 install
-
Run the app.
dotnet run --project $REPOSITORY_ROOT/src/OpenChat.PlaygroundApp
-
Run tests.
# With LLM provider dotnet test --filter "Category=IntegrationTest"
# Without LLM provider dotnet test --filter "Category=IntegrationTest & Category!=LLMRequired"
-
Make sure you are at the repository root.
cd $REPOSITORY_ROOT
-
Make sure you've logged in to Azure.
azd auth login --check-status
-
Run pipeline config.
azd pipeline config
-
Answer the question below:
? Select how to authenticate the pipeline to Azure
πFederated Service Principal (SP + OIDC)
? Would you like to commit and push your local changes to start the configured CI pipeline?
πNo
-
Once the configuration is done, push a new commit to GitHub to run the GitHub Actions workflow.