Files
baiyue-logistics-chat/logistics_chat/quote_followup_fields.py
T

24 lines
1.5 KiB
Python

"""Ask only for shipment fields absent from the current effective quote."""
def missing_fields(intent):
fields=[]
if not (intent['warehouse'] or intent['postal']):fields.append('目的仓码或邮编')
packages=intent.get('packages') or []
allocations=intent.get('allocations') or []
boxes=intent.get('boxes') or packages or allocations and all(part.get('boxes') or part.get('packages') for part in allocations)
if not boxes:fields.append('箱数')
if not intent['weight'] and not allocations:
fields.append('总重或各箱重量')
elif not packages and not (intent.get('boxes')==1 and intent['weight']) and not (
allocations and all(part.get('packages') or part.get('boxes')==1 for part in allocations)):
fields.append('各箱重量')
dimensions=(intent['dims'] or packages and all(part.get('dims') for part in packages)
or allocations and all(part.get('packages') and all(box.get('dims') for box in part['packages']) for part in allocations))
if not dimensions:fields.append('每箱长宽高')
if intent.get('english'):
names={'目的仓码或邮编':'destination warehouse code or ZIP code','箱数':'carton count',
'总重或各箱重量':'total weight or each carton weight','各箱重量':'each carton weight','每箱长宽高':'each carton dimensions'}
return 'Please provide '+', '.join(names[field] for field in fields)+'.' if fields else None
return '请补充'+'、'.join(fields)+',继续核对到仓运费和箱规费用。' if fields else None