feat: add pcf analysis web app and api
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
from app.config import AppConfig
|
||||
from app.deepseek import persist_high_confidence_mappings
|
||||
from app.models import MappingDecision
|
||||
import yaml
|
||||
|
||||
|
||||
def test_high_confidence_mapping_is_accepted(tmp_path):
|
||||
source = AppConfig.load()
|
||||
config_path = tmp_path / "mapping.yaml"
|
||||
config_path.write_text(source.path.read_text(encoding="utf-8"), encoding="utf-8")
|
||||
config = AppConfig.load(config_path)
|
||||
|
||||
accepted = persist_high_confidence_mappings(
|
||||
config,
|
||||
[
|
||||
MappingDecision(
|
||||
source_field="LINE-NO",
|
||||
target_field="line_no",
|
||||
confidence=0.96,
|
||||
reason="字段名和样例都表示管线号",
|
||||
),
|
||||
MappingDecision(
|
||||
source_field="UNKNOWN-X",
|
||||
target_field="diameter",
|
||||
confidence=0.3,
|
||||
),
|
||||
],
|
||||
threshold=0.85,
|
||||
)
|
||||
|
||||
assert accepted == {"LINE-NO": "line_no"}
|
||||
reloaded = AppConfig.load(config_path)
|
||||
assert reloaded.dynamic_field_mappings["LINE-NO"] == "line_no"
|
||||
assert "UNKNOWN-X" not in reloaded.dynamic_field_mappings
|
||||
|
||||
|
||||
def test_deepseek_key_reads_from_config(tmp_path):
|
||||
source = AppConfig.load()
|
||||
config_path = tmp_path / "mapping.yaml"
|
||||
data = yaml.safe_load(source.path.read_text(encoding="utf-8"))
|
||||
data.setdefault("deepseek", {})["api_key"] = "test-key"
|
||||
config_path.write_text(yaml.safe_dump(data, allow_unicode=True, sort_keys=False), encoding="utf-8")
|
||||
config = AppConfig.load(config_path)
|
||||
|
||||
from app.deepseek import DeepSeekMapper
|
||||
|
||||
mapper = DeepSeekMapper(config)
|
||||
assert mapper.api_key == "test-key"
|
||||
assert mapper.enabled
|
||||
Reference in New Issue
Block a user