[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M69BCB6CJWGTYS0REKX18TNQ":3,"skill-same:01M69BCB6CJWGTYS0REKX18TNQ":146},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":29,"linkOnly":30,"markdownContent":31,"markdownBody":32,"frontMatter":33,"refName":34,"commitSha":35,"skillDirectory":36,"forksCount":37,"repositoryHtmlUrl":38,"repositoryHomepageUrl":6,"ownerHtmlUrl":39,"ownerBlogUrl":40,"ownerDescription":41,"updatedAt":42,"install":43,"resources":56},"01M69BCB6CJWGTYS0REKX18TNQ","hyperscaleai",null,"ZavaFin Act 3 \"Add AI\" demo — Azure SQL Hyperscale DiskANN vector search + in-database Phi-4 loan scoring, all in T-SQL. Use when the user wants to build\u002Fprovision the demo (Provision-Hyperscale, Deploy-Base, build SQL 00–04), run the demo live (Run-LiveDemo.ps1 — e.g. \"build demo\", \"run demo live\", \"run the hyperscale demo\"), tear it down, or work anywhere under hyperscale\u002F.","microsoft\u002Fsqlaiinaction","microsoft","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6154722?v=4","01M698VYDXZ6JW5WH3CRV650R8","Microsoft","01M69BC4075NPTSFVZYMHFBX6F",4,"MIT","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fsqlaiinaction\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fhyperscaleai\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",[5,24,25,26,27,28],"deploy","azure sql","sql","azure","run","2026-11-10 10:12:30",false,"---\nname: hyperscaleai\ndescription: 'ZavaFin Act 3 \"Add AI\" demo — Azure SQL Hyperscale DiskANN vector search + in-database Phi-4 loan scoring, all in T-SQL. Use when the user wants to build\u002Fprovision the demo (Provision-Hyperscale, Deploy-Base, build SQL 00–04), run the demo live (Run-LiveDemo.ps1 — e.g. \"build demo\", \"run demo live\", \"run the hyperscale demo\"), tear it down, or work anywhere under hyperscale\u002F.'\n---\n\n# HyperscaleAI — Azure SQL Hyperscale: vector search + AI loan scoring\n\nZavaFin's lending database (`ZavaLendingDB`, aka `zavalending`) runs on **Azure SQL\nHyperscale**. This demo adds two AI capabilities **natively inside the database** — no data\nleaves the boundary:\n1. **Narrative Search** — semantic vector search over loan narratives (DiskANN, cosine).\n2. **AI Loan Scoring** — score a pending application against similar historical loans, with a\n   Phi-4 risk narrative, written to an auditable ledger.\n\nEverything lives under `hyperscale\u002F`:\n- `build\u002Fsql\u002Fbasedeploy\u002F` — provision the Hyperscale DB + load base schema\u002Fseed (this makes\n  the demo self-contained; originally the DB came from an \"Act 1 migration\")\n- `build\u002Fsql\u002F` — numbered AI deploy scripts (`00`–`04`)\n- `build\u002Floan-scoring-agent\u002F`, `build\u002FAPIM\u002F` — optional Part 2 (Foundry agent) + optional AI gateway\n- `demo\u002F` — on-stage runner (`Run-LiveDemo.ps1`) + teaching-ordered T-SQL (`sql\u002F`)\n- `loan-platform-internal\u002F` — internal ops console (open `index.html`)\n\n## Two common requests\n- **\"build demo\" \u002F provision** → stand up the DB and deploy all objects: `basedeploy` →\n  build SQL `00`–`04`. See **Build the demo** below.\n- **\"run demo live\"** → execute the 4 live T-SQL steps in order via\n  [`demo\u002FRun-LiveDemo.ps1`](..\u002F..\u002F..\u002Fhyperscale\u002Fdemo\u002FRun-LiveDemo.ps1). See **Run the demo live** below.\n\n## Architecture\n- **Azure SQL Hyperscale**, server `zavafinsqlserver.database.windows.net`, database `zavalending`\n- **Analytics named replica** = a **database** `zavalending_NamedReplica` on the *same* server\n  (optional; used for read isolation in demo step 2 — falls back to the primary)\n- **Embeddings**: `text-embedding-3-large` (3072-dim, float16) via `CREATE EXTERNAL MODEL` +\n  `AI_GENERATE_EMBEDDINGS`\n- **Chat\u002Fscoring**: `Phi-4` via `sp_invoke_external_rest_endpoint` (direct to Azure AI by\n  default; `@UseGateway=1` routes through the optional APIM gateway)\n- **Index**: DiskANN `CREATE VECTOR INDEX` (cosine) — **V3 updateable** (DML-friendly)\n- **Audit**: `LoanDecisionAudit` ledger table (`LEDGER = ON (APPEND_ONLY = ON)`) + `HASHBYTES`\n\n## Flow\n```\nNL prompt → AI_GENERATE_EMBEDDINGS → VECTOR_SEARCH (DiskANN, replica) → JSON of similar loans\n          → sp_invoke_external_rest_endpoint (Phi-4) → risk narrative → INSERT decision + audit hash\n```\n\n## Critical facts (verified live 2026-07-18)\n- **Tooling: go-sqlcmd is REQUIRED.** The classic **ODBC** `sqlcmd` does NOT support\n  `--authentication-method`. Install go-sqlcmd: `winget install sqlcmd` (Microsoft.Sqlcmd →\n  `C:\\Program Files\\sqlcmd\\sqlcmd.exe`). The PowerShell runners auto-detect it (`Resolve-GoSqlcmd`).\n- **Entra auth (default): use `--authentication-method=ActiveDirectoryDefault` and DO NOT\n  also pass `-G`** — they are **mutually exclusive** in go-sqlcmd. ActiveDirectoryDefault\n  reuses your `az login` token silently (you must be the server's Entra admin;\n  `Provision-Hyperscale.ps1` sets that automatically).\n- **No `-f 65001`** — that's ODBC-only. go-sqlcmd reads UTF-8 by default. Valid flags:\n  `-N -I -b -l 30 -i -S -d -U -P`.\n- **`sp_invoke_external_rest_endpoint` `@timeout` max is 230s** (product limit; default 30). The\n  demo calls Phi-4 with a lower `@timeout`, so a `Msg 31629 … exceeded the timeout value` on step 4\n  most often means the **Phi-4 deployment capacity is too low** (capacity `1`\n  ≈ 1K TPM throttles the multi-thousand-token scoring payload → 429 → retries → timeout). Deploy\n  Phi-4 at **`--sku-capacity 50`+** (GlobalStandard). A killed terminal or cold start can also\n  cause it — re-run.\n- **Placeholder secrets must be filled before build** (`build\u002Fsql\u002F01-embeddings-setup.sql`):\n  master-key password, credential `api-key`, and the Azure AI endpoint URL (also in\n  `04-loan-scoring.sql`). They ship as `\u003Cyour-...>` placeholders.\n- **Requires an Azure AI resource** with two deployments: `text-embedding-3-large` + `Phi-4`.\n  Nothing provisions this — it's a manual Azure prerequisite.\n- **DiskANN needs ≥ 100 vectors** — the seed narrates exactly `LoanId` 1–100 (zero headroom).\n- **Pending demo application is `ApplicationId 1`** (Art Vandelay, SmallBusiness $150k) — seeded\n  by `basedeploy`, reset by `demo\u002Fsql\u002F00-reset.sql`.\n- Legacy `VECTOR_SEARCH(... TOP_N=…)` is **gone** — the V3 index rejects it (`Msg 42274`); the\n  demo uses `TOP (N) WITH APPROXIMATE` only.\n\n## Build the demo (from nothing to demo-ready)\nBase deploy scripts are in [`build\u002Fsql\u002Fbasedeploy\u002F`](..\u002F..\u002F..\u002Fhyperscale\u002Fbuild\u002Fsql\u002Fbasedeploy\u002F).\nRun `az login` first.\n\n```powershell\n$bd = 'c:\\sqlaiinaction\\hyperscale\\build\\sql\\basedeploy'\n$srv = 'zavafinsqlserver.database.windows.net'\n$adAuth = '--authentication-method=ActiveDirectoryDefault'\n\n# 1. Provision the Hyperscale server + DB (idempotent; sets you as Entra admin; -CreateNamedReplica optional)\n& \"$bd\\Provision-Hyperscale.ps1\" -ResourceGroup zavafinrg -Server zavafinsqlserver -CreateNamedReplica\n\n# 2. Base schema + seed (4 tables + ledger; 1,000 applicants\u002Floans; Vandelay = ApplicationId 1)\n& \"$bd\\Deploy-Base.ps1\" -Server $srv -Database zavalending\n\n# 3. Deploy the AI objects in order (go-sqlcmd; Entra by default). FILL the placeholder\n#    secrets in 01-embeddings-setup.sql first.\n$sql = 'c:\\sqlaiinaction\\hyperscale\\build\\sql'\nsqlcmd -S $srv -d zavalending $adAuth -N -I -b -i \"$sql\\00-add-loan-narratives.sql\"\nsqlcmd -S $srv -d zavalending $adAuth -N -I -b -i \"$sql\\01-embeddings-setup.sql\"\nsqlcmd -S $srv -d zavalending $adAuth -N -I -b -i \"$sql\\02-vector-index.sql\"\nsqlcmd -S $srv -d zavalending $adAuth -N -I -b -i \"$sql\\03-hybrid-search-procedure.sql\"\nsqlcmd -S $srv -d zavalending $adAuth -N -I -b -i \"$sql\\04-loan-scoring.sql\"\n```\nBuild order: `00` narratives + full-text → `01` external model + embeddings → `02` DiskANN\nindex → `03` `usp_HybridLoanSearch` (Narrative Search) → `04` `usp_ScoreLoanApplication` +\n`LoanDecisionAudit` (AI Loan Scoring).\n\n> Part 2 (optional) — expose `usp_ScoreLoanApplication` as an MCP tool via DAB + a Foundry\n> agent: [`build\u002Floan-scoring-agent\u002F`](..\u002F..\u002F..\u002Fhyperscale\u002Fbuild\u002Floan-scoring-agent\u002F), driven per\n> [`demo\u002Floan-scoring-agent\u002Ffoundry-agent-setup.md`](..\u002F..\u002F..\u002Fhyperscale\u002Fdemo\u002Floan-scoring-agent\u002Ffoundry-agent-setup.md).\n\n## Run the demo live\nThe [`demo\u002F`](..\u002F..\u002F..\u002Fhyperscale\u002Fdemo\u002F) folder executes already-deployed objects (it does NOT\nbuild anything). Drive all four steps with the runner:\n\n```powershell\n$demo = 'c:\\sqlaiinaction\\hyperscale\\demo'\n\n# Entra ID via your az login; step 2 on the named replica\n& \"$demo\\Run-LiveDemo.ps1\" -ReplicaDatabase zavalending_NamedReplica\n\n# On-stage pacing (Enter before each step)\n& \"$demo\\Run-LiveDemo.ps1\" -ReplicaDatabase zavalending_NamedReplica -Pause\n```\nThe 4 live steps (`demo\u002Fsql\u002F`), in order:\n| # | Script | Target | Shows |\n|---|--------|--------|-------|\n| 1 | `00-reset.sql` | primary | reset demo state (rows >100, ApplicationId 1 → Pending) |\n| 2 | `03-vector-search-replica.sql` | **replica** (or primary) | Narrative Search (ranked similar loans) |\n| 3 | `04-dml-insert-search.sql` | primary | insert 3 loans, instantly searchable (no rebuild) |\n| 4 | `07-execute-scoring.sql` | primary | AI Loan Scoring → Phi-4 → auditable decision |\n\nRunner params: `-Server` (default `zavafinsqlserver.database.windows.net`), `-Database`\n(default `zavalending`), `-ReplicaDatabase` (step 2 target; else primary), `-ReplicaServer`\n(only if the replica is on a different server), `-AuthMethod`\n{`ActiveDirectoryDefault`(default) | `ActiveDirectoryInteractive` | `ActiveDirectoryDeviceCode`\n| `SqlPassword`}, `-SqlUser`\u002F`-SqlPassword` (SqlPassword only), `-Pause`.\n\nExpected step-4 result: `ApplicationId 1` (Art Vandelay, SmallBusiness $150k) → **Approved**,\nRiskScore ~15 (Low), 10 similar loans, model `Phi-4`, a few seconds.\n\n## Teardown\n[`build\u002Fsql\u002Fbasedeploy\u002FTeardown-Hyperscale.ps1`](..\u002F..\u002F..\u002Fhyperscale\u002Fbuild\u002Fsql\u002Fbasedeploy\u002FTeardown-Hyperscale.ps1)\n— confirmation-gated. Default deletes the DB + named replica; `-RemoveServer` \u002F\n`-RemoveResourceGroup` widen scope; `-Force` skips the prompt.\n\n```powershell\n& 'c:\\sqlaiinaction\\hyperscale\\build\\sql\\basedeploy\\Teardown-Hyperscale.ps1' -ResourceGroup zavafinrg -Server zavafinsqlserver\n```\n\n## Troubleshooting\n- `Sqlcmd: '…': Unknown Option` on `-f`\u002F`--authentication-method` → you hit **ODBC** sqlcmd.\n  Install go-sqlcmd (`winget install sqlcmd`); the runners auto-detect it.\n- `The -G and the --authentication-method options are mutually exclusive` → drop `-G`; keep\n  only `--authentication-method=…`.\n- `Msg 31629 … exceeded the timeout value` (step 4) → **Phi-4 deployment capacity too low**\n  (capacity 1 ≈ 1K TPM throttles). Raise it:\n  `az cognitiveservices account deployment create -g \u003Crg> -n \u003Caccount> --deployment-name Phi-4 --model-name Phi-4 --model-version 7 --model-format Microsoft --sku-name GlobalStandard --sku-capacity 50`.\n  A killed terminal \u002F cold start can also cause it — re-run.\n- Login\u002Fauth failures → confirm `az login` and that you're the server's **Entra admin**\n  (`Provision-Hyperscale.ps1` sets it; or `az sql server ad-admin create`).\n- `Msg 42274 … does not support explicit TOP_N` → old legacy syntax on a V3 index; use\n  `TOP (N) WITH APPROXIMATE` (the current procs already do).\n\n## Related\n- Full narrative + folder map: [`hyperscale\u002FREADME.md`](..\u002F..\u002F..\u002Fhyperscale\u002FREADME.md)\n- Build detail + prerequisites: [`hyperscale\u002Fbuild\u002FREADME.md`](..\u002F..\u002F..\u002Fhyperscale\u002Fbuild\u002FREADME.md)\n- Base deploy + provisioning: [`hyperscale\u002Fbuild\u002Fsql\u002Fbasedeploy\u002FREADME.md`](..\u002F..\u002F..\u002Fhyperscale\u002Fbuild\u002Fsql\u002Fbasedeploy\u002FREADME.md)\n- Live demo steps: [`hyperscale\u002Fdemo\u002FREADME.md`](..\u002F..\u002F..\u002Fhyperscale\u002Fdemo\u002FREADME.md)\n","# HyperscaleAI — Azure SQL Hyperscale: vector search + AI loan scoring\n\nZavaFin's lending database (`ZavaLendingDB`, aka `zavalending`) runs on **Azure SQL\nHyperscale**. This demo adds two AI capabilities **natively inside the database** — no data\nleaves the boundary:\n1. **Narrative Search** — semantic vector search over loan narratives (DiskANN, cosine).\n2. **AI Loan Scoring** — score a pending application against similar historical loans, with a\n   Phi-4 risk narrative, written to an auditable ledger.\n\nEverything lives under `hyperscale\u002F`:\n- `build\u002Fsql\u002Fbasedeploy\u002F` — provision the Hyperscale DB + load base schema\u002Fseed (this makes\n  the demo self-contained; originally the DB came from an \"Act 1 migration\")\n- `build\u002Fsql\u002F` — numbered AI deploy scripts (`00`–`04`)\n- `build\u002Floan-scoring-agent\u002F`, `build\u002FAPIM\u002F` — optional Part 2 (Foundry agent) + optional AI gateway\n- `demo\u002F` — on-stage runner (`Run-LiveDemo.ps1`) + teaching-ordered T-SQL (`sql\u002F`)\n- `loan-platform-internal\u002F` — internal ops console (open `index.html`)\n\n## Two common requests\n- **\"build demo\" \u002F provision** → stand up the DB and deploy all objects: `basedeploy` →\n  build SQL `00`–`04`. See **Build the demo** below.\n- **\"run demo live\"** → execute the 4 live T-SQL steps in order via\n  [`demo\u002FRun-LiveDemo.ps1`](..\u002F..\u002F..\u002Fhyperscale\u002Fdemo\u002FRun-LiveDemo.ps1). See **Run the demo live** below.\n\n## Architecture\n- **Azure SQL Hyperscale**, server `zavafinsqlserver.database.windows.net`, database `zavalending`\n- **Analytics named replica** = a **database** `zavalending_NamedReplica` on the *same* server\n  (optional; used for read isolation in demo step 2 — falls back to the primary)\n- **Embeddings**: `text-embedding-3-large` (3072-dim, float16) via `CREATE EXTERNAL MODEL` +\n  `AI_GENERATE_EMBEDDINGS`\n- **Chat\u002Fscoring**: `Phi-4` via `sp_invoke_external_rest_endpoint` (direct to Azure AI by\n  default; `@UseGateway=1` routes through the optional APIM gateway)\n- **Index**: DiskANN `CREATE VECTOR INDEX` (cosine) — **V3 updateable** (DML-friendly)\n- **Audit**: `LoanDecisionAudit` ledger table (`LEDGER = ON (APPEND_ONLY = ON)`) + `HASHBYTES`\n\n## Flow\n```\nNL prompt → AI_GENERATE_EMBEDDINGS → VECTOR_SEARCH (DiskANN, replica) → JSON of similar loans\n          → sp_invoke_external_rest_endpoint (Phi-4) → risk narrative → INSERT decision + audit hash\n```\n\n## Critical facts (verified live 2026-07-18)\n- **Tooling: go-sqlcmd is REQUIRED.** The classic **ODBC** `sqlcmd` does NOT support\n  `--authentication-method`. Install go-sqlcmd: `winget install sqlcmd` (Microsoft.Sqlcmd →\n  `C:\\Program Files\\sqlcmd\\sqlcmd.exe`). The PowerShell runners auto-detect it (`Resolve-GoSqlcmd`).\n- **Entra auth (default): use `--authentication-method=ActiveDirectoryDefault` and DO NOT\n  also pass `-G`** — they are **mutually exclusive** in go-sqlcmd. ActiveDirectoryDefault\n  reuses your `az login` token silently (you must be the server's Entra admin;\n  `Provision-Hyperscale.ps1` sets that automatically).\n- **No `-f 65001`** — that's ODBC-only. go-sqlcmd reads UTF-8 by default. Valid flags:\n  `-N -I -b -l 30 -i -S -d -U -P`.\n- **`sp_invoke_external_rest_endpoint` `@timeout` max is 230s** (product limit; default 30). The\n  demo calls Phi-4 with a lower `@timeout`, so a `Msg 31629 … exceeded the timeout value` on step 4\n  most often means the **Phi-4 deployment capacity is too low** (capacity `1`\n  ≈ 1K TPM throttles the multi-thousand-token scoring payload → 429 → retries → timeout). Deploy\n  Phi-4 at **`--sku-capacity 50`+** (GlobalStandard). A killed terminal or cold start can also\n  cause it — re-run.\n- **Placeholder secrets must be filled before build** (`build\u002Fsql\u002F01-embeddings-setup.sql`):\n  master-key password, credential `api-key`, and the Azure AI endpoint URL (also in\n  `04-loan-scoring.sql`). They ship as `\u003Cyour-...>` placeholders.\n- **Requires an Azure AI resource** with two deployments: `text-embedding-3-large` + `Phi-4`.\n  Nothing provisions this — it's a manual Azure prerequisite.\n- **DiskANN needs ≥ 100 vectors** — the seed narrates exactly `LoanId` 1–100 (zero headroom).\n- **Pending demo application is `ApplicationId 1`** (Art Vandelay, SmallBusiness $150k) — seeded\n  by `basedeploy`, reset by `demo\u002Fsql\u002F00-reset.sql`.\n- Legacy `VECTOR_SEARCH(... TOP_N=…)` is **gone** — the V3 index rejects it (`Msg 42274`); the\n  demo uses `TOP (N) WITH APPROXIMATE` only.\n\n## Build the demo (from nothing to demo-ready)\nBase deploy scripts are in [`build\u002Fsql\u002Fbasedeploy\u002F`](..\u002F..\u002F..\u002Fhyperscale\u002Fbuild\u002Fsql\u002Fbasedeploy\u002F).\nRun `az login` first.\n\n```powershell\n$bd = 'c:\\sqlaiinaction\\hyperscale\\build\\sql\\basedeploy'\n$srv = 'zavafinsqlserver.database.windows.net'\n$adAuth = '--authentication-method=ActiveDirectoryDefault'\n\n# 1. Provision the Hyperscale server + DB (idempotent; sets you as Entra admin; -CreateNamedReplica optional)\n& \"$bd\\Provision-Hyperscale.ps1\" -ResourceGroup zavafinrg -Server zavafinsqlserver -CreateNamedReplica\n\n# 2. Base schema + seed (4 tables + ledger; 1,000 applicants\u002Floans; Vandelay = ApplicationId 1)\n& \"$bd\\Deploy-Base.ps1\" -Server $srv -Database zavalending\n\n# 3. Deploy the AI objects in order (go-sqlcmd; Entra by default). FILL the placeholder\n#    secrets in 01-embeddings-setup.sql first.\n$sql = 'c:\\sqlaiinaction\\hyperscale\\build\\sql'\nsqlcmd -S $srv -d zavalending $adAuth -N -I -b -i \"$sql\\00-add-loan-narratives.sql\"\nsqlcmd -S $srv -d zavalending $adAuth -N -I -b -i \"$sql\\01-embeddings-setup.sql\"\nsqlcmd -S $srv -d zavalending $adAuth -N -I -b -i \"$sql\\02-vector-index.sql\"\nsqlcmd -S $srv -d zavalending $adAuth -N -I -b -i \"$sql\\03-hybrid-search-procedure.sql\"\nsqlcmd -S $srv -d zavalending $adAuth -N -I -b -i \"$sql\\04-loan-scoring.sql\"\n```\nBuild order: `00` narratives + full-text → `01` external model + embeddings → `02` DiskANN\nindex → `03` `usp_HybridLoanSearch` (Narrative Search) → `04` `usp_ScoreLoanApplication` +\n`LoanDecisionAudit` (AI Loan Scoring).\n\n> Part 2 (optional) — expose `usp_ScoreLoanApplication` as an MCP tool via DAB + a Foundry\n> agent: [`build\u002Floan-scoring-agent\u002F`](..\u002F..\u002F..\u002Fhyperscale\u002Fbuild\u002Floan-scoring-agent\u002F), driven per\n> [`demo\u002Floan-scoring-agent\u002Ffoundry-agent-setup.md`](..\u002F..\u002F..\u002Fhyperscale\u002Fdemo\u002Floan-scoring-agent\u002Ffoundry-agent-setup.md).\n\n## Run the demo live\nThe [`demo\u002F`](..\u002F..\u002F..\u002Fhyperscale\u002Fdemo\u002F) folder executes already-deployed objects (it does NOT\nbuild anything). Drive all four steps with the runner:\n\n```powershell\n$demo = 'c:\\sqlaiinaction\\hyperscale\\demo'\n\n# Entra ID via your az login; step 2 on the named replica\n& \"$demo\\Run-LiveDemo.ps1\" -ReplicaDatabase zavalending_NamedReplica\n\n# On-stage pacing (Enter before each step)\n& \"$demo\\Run-LiveDemo.ps1\" -ReplicaDatabase zavalending_NamedReplica -Pause\n```\nThe 4 live steps (`demo\u002Fsql\u002F`), in order:\n| # | Script | Target | Shows |\n|---|--------|--------|-------|\n| 1 | `00-reset.sql` | primary | reset demo state (rows >100, ApplicationId 1 → Pending) |\n| 2 | `03-vector-search-replica.sql` | **replica** (or primary) | Narrative Search (ranked similar loans) |\n| 3 | `04-dml-insert-search.sql` | primary | insert 3 loans, instantly searchable (no rebuild) |\n| 4 | `07-execute-scoring.sql` | primary | AI Loan Scoring → Phi-4 → auditable decision |\n\nRunner params: `-Server` (default `zavafinsqlserver.database.windows.net`), `-Database`\n(default `zavalending`), `-ReplicaDatabase` (step 2 target; else primary), `-ReplicaServer`\n(only if the replica is on a different server), `-AuthMethod`\n{`ActiveDirectoryDefault`(default) | `ActiveDirectoryInteractive` | `ActiveDirectoryDeviceCode`\n| `SqlPassword`}, `-SqlUser`\u002F`-SqlPassword` (SqlPassword only), `-Pause`.\n\nExpected step-4 result: `ApplicationId 1` (Art Vandelay, SmallBusiness $150k) → **Approved**,\nRiskScore ~15 (Low), 10 similar loans, model `Phi-4`, a few seconds.\n\n## Teardown\n[`build\u002Fsql\u002Fbasedeploy\u002FTeardown-Hyperscale.ps1`](..\u002F..\u002F..\u002Fhyperscale\u002Fbuild\u002Fsql\u002Fbasedeploy\u002FTeardown-Hyperscale.ps1)\n— confirmation-gated. Default deletes the DB + named replica; `-RemoveServer` \u002F\n`-RemoveResourceGroup` widen scope; `-Force` skips the prompt.\n\n```powershell\n& 'c:\\sqlaiinaction\\hyperscale\\build\\sql\\basedeploy\\Teardown-Hyperscale.ps1' -ResourceGroup zavafinrg -Server zavafinsqlserver\n```\n\n## Troubleshooting\n- `Sqlcmd: '…': Unknown Option` on `-f`\u002F`--authentication-method` → you hit **ODBC** sqlcmd.\n  Install go-sqlcmd (`winget install sqlcmd`); the runners auto-detect it.\n- `The -G and the --authentication-method options are mutually exclusive` → drop `-G`; keep\n  only `--authentication-method=…`.\n- `Msg 31629 … exceeded the timeout value` (step 4) → **Phi-4 deployment capacity too low**\n  (capacity 1 ≈ 1K TPM throttles). Raise it:\n  `az cognitiveservices account deployment create -g \u003Crg> -n \u003Caccount> --deployment-name Phi-4 --model-name Phi-4 --model-version 7 --model-format Microsoft --sku-name GlobalStandard --sku-capacity 50`.\n  A killed terminal \u002F cold start can also cause it — re-run.\n- Login\u002Fauth failures → confirm `az login` and that you're the server's **Entra admin**\n  (`Provision-Hyperscale.ps1` sets it; or `az sql server ad-admin create`).\n- `Msg 42274 … does not support explicit TOP_N` → old legacy syntax on a V3 index; use\n  `TOP (N) WITH APPROXIMATE` (the current procs already do).\n\n## Related\n- Full narrative + folder map: [`hyperscale\u002FREADME.md`](..\u002F..\u002F..\u002Fhyperscale\u002FREADME.md)\n- Build detail + prerequisites: [`hyperscale\u002Fbuild\u002FREADME.md`](..\u002F..\u002F..\u002Fhyperscale\u002Fbuild\u002FREADME.md)\n- Base deploy + provisioning: [`hyperscale\u002Fbuild\u002Fsql\u002Fbasedeploy\u002FREADME.md`](..\u002F..\u002F..\u002Fhyperscale\u002Fbuild\u002Fsql\u002Fbasedeploy\u002FREADME.md)\n- Live demo steps: [`hyperscale\u002Fdemo\u002FREADME.md`](..\u002F..\u002F..\u002Fhyperscale\u002Fdemo\u002FREADME.md)\n",{"name":5,"description":7},"main","40bff503a54ac860d895552d2bc92af2aaabcc19",".github\u002Fskills\u002Fhyperscaleai",0,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fsqlaiinaction","https:\u002F\u002Fgithub.com\u002Fmicrosoft","https:\u002F\u002Fopensource.microsoft.com","Open source projects and samples from Microsoft","2026-08-19 04:59:09",{"source":8,"skillName":5,"commands":44,"prompt":54,"zipAvailable":55},[45,48,51],{"tool":46,"command":47},"npx","npx skills add microsoft\u002Fsqlaiinaction --skill hyperscaleai",{"tool":49,"command":50},"bunx","bunx skills add microsoft\u002Fsqlaiinaction --skill hyperscaleai",{"tool":52,"command":53},"pnpm","pnpm dlx skills add microsoft\u002Fsqlaiinaction --skill hyperscaleai","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fsqlaiinaction\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fhyperscaleai\u002FSKILL.md",true,[57,63,67,71,75,79,83,87,91,95,99,103,107,111,115,119,122,126,130,134,138,142],{"path":58,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":61,"sourceHtmlUrl":62},"actions\u002Fapprove.md","REFERENCE","参考文档",1928,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fmagpie\u002Fblob\u002Fmain\u002Fplugins\u002Fmagpie-pr-management\u002Fskills\u002Fmerge-candidates\u002Factions\u002Fapprove.md",{"path":64,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":65,"sourceHtmlUrl":66},"actions\u002Fhand-off.md",670,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fmagpie\u002Fblob\u002Fmain\u002Fplugins\u002Fmagpie-pr-management\u002Fskills\u002Fmerge-candidates\u002Factions\u002Fhand-off.md",{"path":68,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":69,"sourceHtmlUrl":70},"actions\u002Fpresent.md",2790,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fmagpie\u002Fblob\u002Fmain\u002Fplugins\u002Fmagpie-pr-management\u002Fskills\u002Fmerge-candidates\u002Factions\u002Fpresent.md",{"path":72,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":73,"sourceHtmlUrl":74},"adopter-config.md",711,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fmagpie\u002Fblob\u002Fmain\u002Fplugins\u002Fmagpie-pr-management\u002Fskills\u002Fmerge-candidates\u002Fadopter-config.md",{"path":76,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":77,"sourceHtmlUrl":78},"classifications\u002Fg1-ready-label.md",557,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fmagpie\u002Fblob\u002Fmain\u002Fplugins\u002Fmagpie-pr-management\u002Fskills\u002Fmerge-candidates\u002Fclassifications\u002Fg1-ready-label.md",{"path":80,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":81,"sourceHtmlUrl":82},"classifications\u002Fg2-real-ci-green.md",762,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fmagpie\u002Fblob\u002Fmain\u002Fplugins\u002Fmagpie-pr-management\u002Fskills\u002Fmerge-candidates\u002Fclassifications\u002Fg2-real-ci-green.md",{"path":84,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":85,"sourceHtmlUrl":86},"classifications\u002Fg3-checks-done.md",491,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fmagpie\u002Fblob\u002Fmain\u002Fplugins\u002Fmagpie-pr-management\u002Fskills\u002Fmerge-candidates\u002Fclassifications\u002Fg3-checks-done.md",{"path":88,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":89,"sourceHtmlUrl":90},"classifications\u002Fg4-workflow-approval.md",589,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fmagpie\u002Fblob\u002Fmain\u002Fplugins\u002Fmagpie-pr-management\u002Fskills\u002Fmerge-candidates\u002Fclassifications\u002Fg4-workflow-approval.md",{"path":92,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":93,"sourceHtmlUrl":94},"classifications\u002Fg5-batch-conflict.md",742,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fmagpie\u002Fblob\u002Fmain\u002Fplugins\u002Fmagpie-pr-management\u002Fskills\u002Fmerge-candidates\u002Fclassifications\u002Fg5-batch-conflict.md",{"path":96,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":97,"sourceHtmlUrl":98},"classifications\u002Fg5-blocked.md",392,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fmagpie\u002Fblob\u002Fmain\u002Fplugins\u002Fmagpie-pr-management\u002Fskills\u002Fmerge-candidates\u002Fclassifications\u002Fg5-blocked.md",{"path":100,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":101,"sourceHtmlUrl":102},"classifications\u002Fg5-conflict.md",331,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fmagpie\u002Fblob\u002Fmain\u002Fplugins\u002Fmagpie-pr-management\u002Fskills\u002Fmerge-candidates\u002Fclassifications\u002Fg5-conflict.md",{"path":104,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":105,"sourceHtmlUrl":106},"classifications\u002Fg5-unknown.md",319,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fmagpie\u002Fblob\u002Fmain\u002Fplugins\u002Fmagpie-pr-management\u002Fskills\u002Fmerge-candidates\u002Fclassifications\u002Fg5-unknown.md",{"path":108,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":109,"sourceHtmlUrl":110},"classifications\u002Fg6-collaborator-threads.md",624,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fmagpie\u002Fblob\u002Fmain\u002Fplugins\u002Fmagpie-pr-management\u002Fskills\u002Fmerge-candidates\u002Fclassifications\u002Fg6-collaborator-threads.md",{"path":112,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":113,"sourceHtmlUrl":114},"classifications\u002Fg7-changes-requested.md",607,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fmagpie\u002Fblob\u002Fmain\u002Fplugins\u002Fmagpie-pr-management\u002Fskills\u002Fmerge-candidates\u002Fclassifications\u002Fg7-changes-requested.md",{"path":116,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":117,"sourceHtmlUrl":118},"classifications\u002Fneeds-approval.md",737,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fmagpie\u002Fblob\u002Fmain\u002Fplugins\u002Fmagpie-pr-management\u002Fskills\u002Fmerge-candidates\u002Fclassifications\u002Fneeds-approval.md",{"path":120,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":77,"sourceHtmlUrl":121},"classifications\u002Fpath-denied.md","https:\u002F\u002Fgithub.com\u002Fapache\u002Fmagpie\u002Fblob\u002Fmain\u002Fplugins\u002Fmagpie-pr-management\u002Fskills\u002Fmerge-candidates\u002Fclassifications\u002Fpath-denied.md",{"path":123,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":124,"sourceHtmlUrl":125},"classifications\u002Fpath-unmatched.md",549,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fmagpie\u002Fblob\u002Fmain\u002Fplugins\u002Fmagpie-pr-management\u002Fskills\u002Fmerge-candidates\u002Fclassifications\u002Fpath-unmatched.md",{"path":127,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":128,"sourceHtmlUrl":129},"classifications\u002Fready-to-merge.md",505,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fmagpie\u002Fblob\u002Fmain\u002Fplugins\u002Fmagpie-pr-management\u002Fskills\u002Fmerge-candidates\u002Fclassifications\u002Fready-to-merge.md",{"path":131,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":132,"sourceHtmlUrl":133},"classifications\u002Ftier-a.md",493,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fmagpie\u002Fblob\u002Fmain\u002Fplugins\u002Fmagpie-pr-management\u002Fskills\u002Fmerge-candidates\u002Fclassifications\u002Ftier-a.md",{"path":135,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":136,"sourceHtmlUrl":137},"classifications\u002Ftier-b.md",513,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fmagpie\u002Fblob\u002Fmain\u002Fplugins\u002Fmagpie-pr-management\u002Fskills\u002Fmerge-candidates\u002Fclassifications\u002Ftier-b.md",{"path":139,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":140,"sourceHtmlUrl":141},"classifications\u002Ftoo-large.md",617,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fmagpie\u002Fblob\u002Fmain\u002Fplugins\u002Fmagpie-pr-management\u002Fskills\u002Fmerge-candidates\u002Fclassifications\u002Ftoo-large.md",{"path":143,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":144,"sourceHtmlUrl":145},"why-not-merge.md",1341,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fmagpie\u002Fblob\u002Fmain\u002Fplugins\u002Fmagpie-pr-management\u002Fskills\u002Fmerge-candidates\u002Fwhy-not-merge.md",[147,161,171,187,199,218],{"skillNo":148,"name":149,"nameZh":6,"description":150,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":151,"categories":152,"keywords":157,"publishedAt":29},"01M69BCMJP8JZZ7V6HJJ3PM18N","zavalivesite-demo","Build \u002F prep \u002F run \u002F teardown lifecycle for the \"SQL and AI for Developers in Action\" (azuresqlcontainer) live-site demo — the Azure SQL preview container, one-command demo prep, idempotent container start, connectivity test, and teardown. Use when the user asks to prep\u002Fbuild\u002Fstart\u002Frecreate\u002Ftest\u002Freset\u002Fteardown the live site (Zava On-Call Console) demo environment. NOT for incident triage — that is the live-site-sql skill.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fsqlaiinaction\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fzavalivesite-demo\u002FSKILL.md",[153,154],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":155,"categoryName":156,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[158,159,160,25,26,27,28],"zavalivesite demo","triage","test",{"skillNo":162,"name":163,"nameZh":6,"description":164,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":165,"categories":166,"keywords":168,"publishedAt":29},"01M69BCJDBJYX2MDVJGRD0QAN8","zavahospital","ZavaHospital – AI-powered inpatient clinical assistant using SQL Server 2025 vector search + NVIDIA NIM on AKS (GPU). Use when: deploying zavahospital build scripts, building encounter\u002Fdoctor-note embeddings, running vector search or clinical recommendation procs, presenting the on-stage demo, or working in sqlserver2025\u002Fzavahospital\u002F.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fsqlaiinaction\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fzavahospital\u002FSKILL.md",[167],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[163,169,26,170],"assistant","sql server",{"skillNo":172,"name":173,"nameZh":6,"description":174,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":175,"categories":176,"keywords":183,"publishedAt":29},"01M69BCFPN3MJQWK63RGCHA419","zavacliniq","ZavaClinIQ – AI-powered outpatient clinical assistant using SQL Server 2025 vector search + Foundry Local (phi-4, qwen3-embedding). Use when: deploying zavacliniq scripts, building clinical evidence embeddings, running vector search procs, generating AI care plans via RAG, working in sqlserver2025\u002Fzavacliniq\u002F.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fsqlaiinaction\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fzavacliniq\u002FSKILL.md",[177,178],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":179,"categoryName":180,"taxonomyType":181,"taxonomyTypeDesc":182},"01JBSEEDCAT000000000000033","数据分析师","PROFESSION","适用职业",[173,26,169,170,184,185,186],"rag","foundry local","foundry",{"skillNo":188,"name":189,"nameZh":6,"description":190,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":191,"categories":192,"keywords":196,"publishedAt":29},"01M69BCDBWJJCCPNAAAP1F30J7","live-site-sql","Live-site triage playbook for Azure SQL on-call incidents — protocol, diagnostic catalog (dx_index_exists, dx_resource_pressure, dx_deadlock_recent), hybrid search, and grounded mitigation generation. Loaded by the live-site-sql custom agent. Use when the user asks to mitigate, triage, or diagnose a Zava SQL incident.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fsqlaiinaction\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Flive-site-sql\u002FSKILL.md",[193,194,195],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":155,"categoryName":156,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":179,"categoryName":180,"taxonomyType":181,"taxonomyTypeDesc":182},[197,26,27,198,25,159],"live site sql","diagnose",{"skillNo":200,"name":201,"nameZh":6,"description":202,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":203,"categories":204,"keywords":208,"publishedAt":29},"01M69BC8WVW4HXH0NVJMDG27G9","html-slide-to-png","Render a fixed-size HTML slide\u002Fdiagram to a crisp, full-frame PNG for PowerPoint or docs. Use when asked to \"generate a PNG from an HTML slide\", \"make a slide image\", \"export architecture-slide.html to PNG\", or when a browser-tool screenshot comes out clipped\u002Fblank. Uses Edge\u002FChrome CLASSIC headless — NOT the VS Code Playwright browser tool (its headed viewport is stuck tiny and clips everything).","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fsqlaiinaction\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fhtml-slide-to-png\u002FSKILL.md",[205],{"categoryNo":206,"categoryName":207,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发",[209,210,211,212,213,214,215,216,217],"html slide to png","generate","powerpoint","diagram","architecture","playwright","chrome","docs","image",{"skillNo":219,"name":220,"nameZh":6,"description":221,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":222,"categories":223,"keywords":224,"publishedAt":29},"01M69BC6Q4KJ8WBWF87R69EPM6","demo-runbook","Presenter guide for walking Anna (or anyone) through the SQL + AI in Action demos live on stage. Use when the user asks to \"walk me through the \u003Cdemo> demo\", \"what's my next step \u002F what do I say next \u002F give me the next prompt\", \"how do I present \u003Cdemo>\", or is mid-demo and needs the next beat's narration, literal prompt, and expected result. Routes to the per-demo PRESENTER-RUNBOOK.md files. Covers zavacliniq, zavahospital, azuresqlcontainer (live-site), and hyperscale. Does NOT build\u002Fdeploy — hand off environment lifecycle to the demo-specific skills.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fsqlaiinaction\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fdemo-runbook\u002FSKILL.md",[],[225,24,26],"demo runbook"]