落地私聊图片询价:识图当口播复用三线文字流程,图上航线三字码保持原样,避免被改写成中文地名。
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -189,6 +189,8 @@ _ALIASES = {
|
||||
"客户名称": "客户名称",
|
||||
"货值": "货值",
|
||||
"是否为危险品": "是否为危险品",
|
||||
"通关口岸": "通关口岸",
|
||||
"通关口岸(非必填)": "通关口岸",
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -47,6 +47,35 @@ _PACKS = {
|
||||
}
|
||||
|
||||
_IATA = re.compile(r"^[A-Za-z]{3}$")
|
||||
_IATA_PAIR = re.compile(
|
||||
r"(?<![A-Za-z])([A-Za-z]{3})\s*[-–—/]\s*([A-Za-z]{3})(?![A-Za-z])"
|
||||
)
|
||||
# 原话里的 AAA-BBB 不一定是航线,货币/单位不能当成起运目的。
|
||||
_IATA_PAIR_BLOCK = frozenset(
|
||||
{
|
||||
"USD",
|
||||
"CNY",
|
||||
"EUR",
|
||||
"GBP",
|
||||
"HKD",
|
||||
"JPY",
|
||||
"CBM",
|
||||
"KGS",
|
||||
"PCS",
|
||||
"PKG",
|
||||
"PDF",
|
||||
"JPG",
|
||||
"PNG",
|
||||
"AND",
|
||||
"THE",
|
||||
"FOR",
|
||||
"NOT",
|
||||
"MAX",
|
||||
"MIN",
|
||||
"GMT",
|
||||
"UTC",
|
||||
}
|
||||
)
|
||||
_NUMBER = re.compile(r"(\d+(?:\.\d+)?)")
|
||||
|
||||
|
||||
@@ -67,12 +96,24 @@ def resolve_airport_code(raw: str) -> str:
|
||||
|
||||
def harvest_named_air_route(text: str, facts: dict[str, str] | None = None) -> dict[str, str]:
|
||||
"""
|
||||
当前原话里的「从南京飞吉隆坡 / 北京飞吉隆坡」覆盖起运地、目的地。
|
||||
当前原话里的航线覆盖起运地、目的地。
|
||||
|
||||
只认对照表里的地名,不猜没写过的港口。换城市必须丢掉旧三字码。
|
||||
图上/原话写了 SZX-CGK 这类三字码对,必须保持英文,禁止改写成深圳/雅加达。
|
||||
「从南京飞吉隆坡」仍按对照表收中文地名。换城市必须丢掉旧三字码。
|
||||
"""
|
||||
merged = dict(facts or {})
|
||||
raw = text or ""
|
||||
pair = _IATA_PAIR.search(raw)
|
||||
if pair:
|
||||
origin_code = pair.group(1).upper()
|
||||
dest_code = pair.group(2).upper()
|
||||
blocked = origin_code in _IATA_PAIR_BLOCK or dest_code in _IATA_PAIR_BLOCK
|
||||
if origin_code != dest_code and not blocked:
|
||||
merged["起运港"] = origin_code
|
||||
merged["目的港"] = dest_code
|
||||
merged.pop("originCode", None)
|
||||
merged.pop("destinationCode", None)
|
||||
return merged
|
||||
names = sorted(_AIRPORTS.keys(), key=len, reverse=True)
|
||||
for origin in names:
|
||||
for dest in names:
|
||||
|
||||
Reference in New Issue
Block a user