Spaces:
Sleeping
Sleeping
File size: 1,040 Bytes
af60cba |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# modules/info_extractor.py
import re
from .config_loader import ConfigLoader
class InfoExtractor:
def __init__(self, config_loader: ConfigLoader):
self.configs = config_loader
def extract(self, user_input: str) -> dict:
"""从用户输入中提取目的地、天数和旅行风格"""
extracted_info = {}
user_lower = user_input.lower()
# 提取目的地
for alias, city_info in self.configs.cities.items():
if alias in user_lower:
extracted_info["destination"] = city_info
break
# 提取天数
match = re.search(r'(\d+)\s*天', user_input)
if match:
extracted_info["duration"] = {"days": int(match.group(1))}
# 提取旅行风格 (persona)
for p_name, p_info in self.configs.personas.items():
if p_info['name'] in user_input or p_name in user_input:
extracted_info["persona"] = p_info
break
return extracted_info
|