50 lines
3.7 KiB
Python
50 lines
3.7 KiB
Python
"""Pre-shipment answers from the active US book, without live operational claims."""
|
||
|
||
import re
|
||
|
||
|
||
def preparation_topic(text):
|
||
if re.search(r'理赔|赔偿|索赔|货损|丢件|破损',text):return None
|
||
if re.search(r'截仓|截单|船期|排仓|哪天开船|(?:什么时候|几号).*开船|能.*开船|'
|
||
r'(?:今天|明天|这周|下周).*(?:发货|发走|开船)|赶得上|来得及|(?:保证|必须|月底).*到',text):return 'schedule'
|
||
if re.search(r'上门.*(?:提货|取货|收货|揽收)|提货服务|交仓地址|仓库地址|送哪个仓|仓库在哪|收货时间',text):return 'delivery'
|
||
if re.search(r'报关资料|清关资料|报关.*(?:准备|材料)|申报比例|低申报|怎么申报|如何申报|认证资料',text):return 'documents'
|
||
if re.search(r'查验.*(?:费|承担)|谁.*承担.*查验',text):return 'inspection'
|
||
if '一件代发' not in text and re.search(r'贴标|FBA标|标签|唛头|产地标|外箱.*贴|贴.*条码|made\s+in\s+china',text,re.I):return 'labels'
|
||
if re.search(r'哪些渠道|哪些线路|什么渠道|能发哪些仓|支持.*仓|(?:能发|能走|可以发).*美国',text):return 'coverage'
|
||
return None
|
||
|
||
|
||
def answer_preparation(intent,book):
|
||
topic=preparation_topic(intent['text'])
|
||
if topic is None:return None
|
||
from .quote_fees import document
|
||
|
||
if topic=='coverage':
|
||
services=list(dict.fromkeys(rate['service'] for rate in book['rates']))
|
||
return '美国可查询的线路:'+ '、'.join(services)+'。请提供目的仓码或邮编、重量及交货仓,我再匹配具体可用线路。'
|
||
if topic=='schedule':
|
||
return '请提供计划交仓日期、交货仓和目的仓码。具体截仓、装柜和开船安排需联系人工核对;当前参考时效不能作为月底或指定日期必达的承诺。'
|
||
if topic=='delivery':
|
||
raw=document(book,('不提供上门提货服务',))
|
||
lines=[]
|
||
if raw:lines.append('当前美国渠道资料要求客户自行送货至对应仓库,不提供上门提货服务。')
|
||
lines.append('请确认所选渠道及义乌或华南交仓,仓库地址、联系人和收货时间请联系人工核对后再送仓。')
|
||
return '\n'.join(lines)
|
||
if topic=='labels':
|
||
label=document(book,('外箱','入仓条码','唛头'))
|
||
origin=document(book,('产品上和包装上','产地标识'))
|
||
lines=[]
|
||
if label:lines.append(re.sub(r'^\s*\d+[、..]\s*','',label.strip())+'\n代贴标签具体费用需按所选服务确认。')
|
||
if origin:lines.append('产品和包装还需有“Made in China”产地标识。')
|
||
return '\n'.join(lines) or '请提供渠道和目的仓码,由人工核对外箱标签及代贴要求。'
|
||
if topic=='documents':
|
||
if re.search(r'申报比例|低申报|怎么申报|如何申报',intent['text']):
|
||
return '请提供品名、材质、用途、实际交易金额及销售链接,由业务核对申报资料。申报价需结合实际交易信息确认,不能按统一比例直接代算。'
|
||
raw=document(book,('单独报关需提供资料',))
|
||
if raw:return raw.strip()+'\n请补充具体品名及渠道,涉及商检或认证的资料需逐项核对。'
|
||
return '请提供具体品名和渠道,由人工核对装箱单、发票及对应报关、认证材料。'
|
||
raw=document(book,('查验','不包税货物','比例均摊'))
|
||
if raw:return raw.strip()+'\n具体金额按实际查验费用核算;包税渠道的承担方式需另行确认,不能直接套用不包税条款。'
|
||
return '查验费用和承担方式需按渠道、税费方式及实际费用确认,当前无法给出固定金额。'
|