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
90 lines
2.5 KiB
PowerShell
90 lines
2.5 KiB
PowerShell
# 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 = @"
|
||
|
||
# ================================
|
||
# CloseAI配置(代理OpenAI和Claude)⭐
|
||
# ================================
|
||
# CloseAI是一个API代理平台,提供稳定的OpenAI和Claude访问
|
||
# 官网:https://platform.openai-proxy.org
|
||
|
||
# 统一API Key(同时用于OpenAI和Claude)
|
||
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
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|