chore(rag): remove obsolete PowerShell rebuild script
This commit is contained in:
@@ -1,157 +0,0 @@
|
||||
<#
|
||||
.SYNOPSIS
|
||||
清空 hybrid 知识库(Milvus biz_hybrid + MySQL api_document + L0),并从 knowledge_base 全量重建。
|
||||
|
||||
.DESCRIPTION
|
||||
对应 dense+BM25 混合检索上线后的数据迁移步骤:
|
||||
|
||||
1) 检查服务健康
|
||||
2) 可选:查看当前 /api/knowledge/stats
|
||||
3) POST /api/knowledge/rebuild-hybrid?confirm=REBUILD
|
||||
- drop + recreate milvus.collection(默认 biz_hybrid)
|
||||
- 清空 MySQL api_document
|
||||
- 清空内存 L0 索引
|
||||
- 扫描 knowledge_base/**/*.md 强制导入并写入 dense+BM25
|
||||
|
||||
不会删除旧的 legacy collection `biz`(知识主路径已不再使用它)。
|
||||
|
||||
.PARAMETER BaseUrl
|
||||
服务根地址,默认 http://localhost:9900
|
||||
|
||||
.PARAMETER Confirm
|
||||
必须为 REBUILD 才会真正执行(防止误触)
|
||||
|
||||
.PARAMETER SkipStats
|
||||
跳过重建前后的 stats 查询
|
||||
|
||||
.EXAMPLE
|
||||
# 先启动 Spring Boot,再执行:
|
||||
.\scripts\rebuild-hybrid-knowledge.ps1 -Confirm REBUILD
|
||||
|
||||
.EXAMPLE
|
||||
.\scripts\rebuild-hybrid-knowledge.ps1 -BaseUrl http://127.0.0.1:9900 -Confirm REBUILD
|
||||
#>
|
||||
|
||||
[CmdletBinding()]
|
||||
param(
|
||||
[string]$BaseUrl = "http://localhost:9900",
|
||||
[ValidateSet("REBUILD")]
|
||||
[Parameter(Mandatory = $true)]
|
||||
[string]$Confirm,
|
||||
[switch]$SkipStats
|
||||
)
|
||||
|
||||
$ErrorActionPreference = "Stop"
|
||||
|
||||
function Write-Step([string]$Message) {
|
||||
Write-Host ""
|
||||
Write-Host "==> $Message" -ForegroundColor Cyan
|
||||
}
|
||||
|
||||
function Invoke-Json {
|
||||
param(
|
||||
[Parameter(Mandatory = $true)][string]$Method,
|
||||
[Parameter(Mandatory = $true)][string]$Url,
|
||||
[int]$TimeoutSec = 3600
|
||||
)
|
||||
try {
|
||||
$resp = Invoke-WebRequest -Method $Method -Uri $Url -TimeoutSec $TimeoutSec
|
||||
$body = $resp.Content
|
||||
if ([string]::IsNullOrWhiteSpace($body)) {
|
||||
return @{ statusCode = [int]$resp.StatusCode; body = $null }
|
||||
}
|
||||
return @{
|
||||
statusCode = [int]$resp.StatusCode
|
||||
body = $body | ConvertFrom-Json
|
||||
}
|
||||
}
|
||||
catch {
|
||||
$status = $null
|
||||
$raw = $null
|
||||
if ($_.Exception.Response) {
|
||||
$status = [int]$_.Exception.Response.StatusCode
|
||||
try {
|
||||
$stream = $_.Exception.Response.GetResponseStream()
|
||||
$reader = New-Object System.IO.StreamReader($stream)
|
||||
$raw = $reader.ReadToEnd()
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
throw "HTTP $Method $Url failed (status=$status): $($_.Exception.Message)`n$raw"
|
||||
}
|
||||
}
|
||||
|
||||
$BaseUrl = $BaseUrl.TrimEnd("/")
|
||||
|
||||
Write-Host "Hybrid knowledge rebuild" -ForegroundColor Green
|
||||
Write-Host " BaseUrl : $BaseUrl"
|
||||
Write-Host " Confirm : $Confirm"
|
||||
Write-Host " Source : knowledge_base/ (server-side knowledge.base-path)"
|
||||
Write-Host ""
|
||||
Write-Host "This will DESTROY data in:" -ForegroundColor Yellow
|
||||
Write-Host " - Milvus collection milvus.collection (default: biz_hybrid)"
|
||||
Write-Host " - MySQL table api_document"
|
||||
Write-Host " - In-memory L0 knowledge index"
|
||||
Write-Host "Then re-import all markdown under knowledge_base."
|
||||
Write-Host ""
|
||||
|
||||
# 1) health
|
||||
Write-Step "Check service health"
|
||||
try {
|
||||
$health = Invoke-Json -Method GET -Url "$BaseUrl/milvus/health" -TimeoutSec 30
|
||||
Write-Host (" milvus health status={0}" -f $health.statusCode)
|
||||
if ($health.body) {
|
||||
$health.body | ConvertTo-Json -Depth 6 | Write-Host
|
||||
}
|
||||
}
|
||||
catch {
|
||||
Write-Host " WARN: /milvus/health failed: $_" -ForegroundColor Yellow
|
||||
Write-Host " Continue if app is up but milvus health endpoint has issues."
|
||||
}
|
||||
|
||||
# 2) stats before
|
||||
if (-not $SkipStats) {
|
||||
Write-Step "Knowledge stats (before)"
|
||||
try {
|
||||
$before = Invoke-Json -Method GET -Url "$BaseUrl/api/knowledge/stats" -TimeoutSec 30
|
||||
$before.body | ConvertTo-Json -Depth 6 | Write-Host
|
||||
}
|
||||
catch {
|
||||
Write-Host " WARN: stats before failed: $_" -ForegroundColor Yellow
|
||||
}
|
||||
}
|
||||
|
||||
# 3) rebuild
|
||||
Write-Step "POST /api/knowledge/rebuild-hybrid?confirm=REBUILD"
|
||||
$rebuildUrl = "$BaseUrl/api/knowledge/rebuild-hybrid?confirm=$Confirm"
|
||||
$rebuild = Invoke-Json -Method POST -Url $rebuildUrl -TimeoutSec 7200
|
||||
Write-Host (" HTTP {0}" -f $rebuild.statusCode)
|
||||
$rebuild.body | ConvertTo-Json -Depth 12 | Write-Host
|
||||
|
||||
if (-not $rebuild.body.success) {
|
||||
Write-Host ""
|
||||
Write-Host "Rebuild reported failure. Inspect details above." -ForegroundColor Red
|
||||
exit 2
|
||||
}
|
||||
|
||||
# 4) stats after
|
||||
if (-not $SkipStats) {
|
||||
Write-Step "Knowledge stats (after)"
|
||||
try {
|
||||
$after = Invoke-Json -Method GET -Url "$BaseUrl/api/knowledge/stats" -TimeoutSec 30
|
||||
$after.body | ConvertTo-Json -Depth 6 | Write-Host
|
||||
}
|
||||
catch {
|
||||
Write-Host " WARN: stats after failed: $_" -ForegroundColor Yellow
|
||||
}
|
||||
}
|
||||
|
||||
Write-Host ""
|
||||
Write-Host "Done." -ForegroundColor Green
|
||||
Write-Host "Next:"
|
||||
Write-Host " 1) Ensure application.yml has:"
|
||||
Write-Host " milvus.collection: biz_hybrid"
|
||||
Write-Host " retrieval.search.mode: hybrid"
|
||||
Write-Host " 2) Smoke test lookup_knowledge / chat with a known doc query"
|
||||
Write-Host " 3) Optional: drop legacy collection 'biz' manually in Zilliz console if no longer needed"
|
||||
exit 0
|
||||
Reference in New Issue
Block a user