46 lines
1.4 KiB
Python
46 lines
1.4 KiB
Python
import re
|
||
from datetime import datetime
|
||
|
||
|
||
def extract_and_save_customer_info_flow(client, message: str, customer_id: str, db):
|
||
"""从消息中提取客户信息并保存。"""
|
||
if not message or not customer_id:
|
||
return
|
||
|
||
email_pattern = r"[\w\.-]+@[\w\.-]+\.\w+"
|
||
email_match = re.search(email_pattern, message)
|
||
if email_match:
|
||
db.update_email(customer_id, email_match.group())
|
||
|
||
phone_pattern = r"1[3-9]\d{9}"
|
||
phone_match = re.search(phone_pattern, message)
|
||
if phone_match:
|
||
db.update_phone(customer_id, phone_match.group())
|
||
|
||
wechat_pattern = r"[Vv微信]+号[::]?\s*([\w-]+)"
|
||
wechat_match = re.search(wechat_pattern, message)
|
||
if wechat_match:
|
||
db.update_wechat(customer_id, wechat_match.group(1))
|
||
|
||
budget_keywords = ["预算", "不超过", "最多", "便宜点", "便宜"]
|
||
for keyword in budget_keywords:
|
||
if keyword in message:
|
||
db.add_personality_tag(customer_id, "关注价格")
|
||
break
|
||
|
||
personality_keywords = {
|
||
"爽快": "爽快",
|
||
"干脆": "爽快",
|
||
"纠结": "纠结",
|
||
"墨迹": "纠结",
|
||
"砍价": "砍价",
|
||
"贵": "砍价",
|
||
}
|
||
for keyword, tag in personality_keywords.items():
|
||
if keyword in message:
|
||
db.add_personality_tag(customer_id, tag)
|
||
|
||
profile = db.get_customer(customer_id)
|
||
profile.last_contact = datetime.now().isoformat()
|
||
db.save_customer(profile)
|