Files
AIclinicalresearch/backend/update-env-closeai.ps1
HaHafeng beb7f7f559 feat(asl): Implement full-text screening core LLM service and validation system (Day 1-3)
Core Components:
- PDFStorageService with Dify/OSS adapters
- LLM12FieldsService with Nougat-first + dual-model + 3-layer JSON parsing
- PromptBuilder for dynamic prompt assembly
- MedicalLogicValidator with 5 rules + fault tolerance
- EvidenceChainValidator for citation integrity
- ConflictDetectionService for dual-model comparison

Prompt Engineering:
- System Prompt (6601 chars, Section-Aware strategy)
- User Prompt template (PICOS context injection)
- JSON Schema (12 fields constraints)
- Cochrane standards (not loaded in MVP)

Key Innovations:
- 3-layer JSON parsing (JSON.parse + json-repair + code block extraction)
- Promise.allSettled for dual-model fault tolerance
- safeGetFieldValue for robust field extraction
- Mixed CN/EN token calculation

Integration Tests:
- integration-test.ts (full test)
- quick-test.ts (quick test)
- cached-result-test.ts (fault tolerance test)

Documentation Updates:
- Development record (Day 2-3 summary)
- Quality assurance strategy (full-text screening)
- Development plan (progress update)
- Module status (v1.1 update)
- Technical debt (10 new items)

Test Results:
- JSON parsing success rate: 100%
- Medical logic validation: 5/5 passed
- Dual-model parallel processing: OK
- Cost per PDF: CNY 0.10

Files: 238 changed, 14383 insertions(+), 32 deletions(-)
Docs: docs/03-涓氬姟妯″潡/ASL-AI鏅鸿兘鏂囩尞/05-寮€鍙戣褰?2025-11-22_Day2-Day3_LLM鏈嶅姟涓庨獙璇佺郴缁熷紑鍙?md
2025-11-22 22:21:12 +08:00

90 lines
2.5 KiB
PowerShell
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# PowerShell脚本自动添加CloseAI配置到.env文件
# 使用方法:在 backend 目录下运行 .\update-env-closeai.ps1
$envFile = ".env"
# 检查.env文件是否存在
if (-not (Test-Path $envFile)) {
Write-Host "错误:.env文件不存在" -ForegroundColor Red
Write-Host "请先创建.env文件" -ForegroundColor Yellow
exit 1
}
# 读取现有配置
$envContent = Get-Content $envFile -Raw
# 检查是否已经包含CloseAI配置
if ($envContent -match "CLOSEAI_API_KEY") {
Write-Host "检测到.env文件中已包含CloseAI配置" -ForegroundColor Yellow
$overwrite = Read-Host "是否要覆盖现有配置?(y/n)"
if ($overwrite -ne "y") {
Write-Host "取消更新" -ForegroundColor Yellow
exit 0
}
# 删除旧的CloseAI配置
$envContent = $envContent -replace "(?ms)# ={32}.*?# CloseAI.*?# ={32}.*?(?=\r?\n# ={32}|\r?\n\r?\n|\Z)", ""
}
# CloseAI配置内容
$closeaiConfig = @"
# ================================
# CloseAIOpenAIClaude
# ================================
# CloseAIAPIOpenAIClaude访
# https://platform.openai-proxy.org
# API KeyOpenAIClaude
CLOSEAI_API_KEY=sk-cu0iepbXYGGx2jc7BqP6ogtSWmP6fk918qV3RUdtGC3Edlpo
# OpenAI
CLOSEAI_OPENAI_BASE_URL=https://api.openai-proxy.org/v1
# Claude
CLOSEAI_CLAUDE_BASE_URL=https://api.openai-proxy.org/anthropic
#
# - OpenAI: gpt-5-pro (), gpt-4-turbo-preview, gpt-3.5-turbo
# - Claude: claude-sonnet-4-5-20250929 (), claude-3-5-sonnet-20241022
"@
# 添加到文件末尾
$envContent = $envContent.TrimEnd() + "`r`n" + $closeaiConfig
# 写回文件
Set-Content -Path $envFile -Value $envContent -NoNewline
Write-Host "✅ CloseAI配置已成功添加到.env文件" -ForegroundColor Green
Write-Host ""
Write-Host "已添加的配置:" -ForegroundColor Cyan
Write-Host "- CLOSEAI_API_KEY: sk-cu0iep...真实API Key" -ForegroundColor White
Write-Host "- CLOSEAI_OPENAI_BASE_URL: https://api.openai-proxy.org/v1" -ForegroundColor White
Write-Host "- CLOSEAI_CLAUDE_BASE_URL: https://api.openai-proxy.org/anthropic" -ForegroundColor White
Write-Host ""
Write-Host "可用模型:" -ForegroundColor Cyan
Write-Host "- GPT-5-Pro: gpt-5-pro" -ForegroundColor White
Write-Host "- Claude-4.5-Sonnet: claude-sonnet-4-5-20250929" -ForegroundColor White
Write-Host ""
Write-Host "下一步:重启后端服务以应用新配置" -ForegroundColor Yellow