|
|
|
@ -16,10 +16,15 @@ load_dotenv() |
|
|
|
|
client = OpenAI(api_key=settings.DEEPSEEK_API_KEY, base_url=settings.DEEPSEEK_API_URL) |
|
|
|
|
|
|
|
|
|
#分类提示词 |
|
|
|
|
CATEGORY_PROMPT = """你是一个分类助手,请根据用户的问题判断属于哪一类: |
|
|
|
|
1. 如果用户是问“某个保定市景区现在适不适合去”,或者“某个保定市景区现在人多么”此类涉及某个景区人数或者客流量的,注意只有保定的景区,请返回:游玩判断。 |
|
|
|
|
2. 其他均返回保定文旅。 |
|
|
|
|
只能返回以上两个分类词之一,不能多说话,不回复其他多余内容。""" |
|
|
|
|
CATEGORY_PROMPT = """你是一个分类助手,请根据用户的问题判断属于以下哪一类: |
|
|
|
|
如果用户的问题涉及保定市某个景区当前的人数、客流量、拥挤程度或是否适合前往(例如:“某个保定市景区现在人多么”、“某个保定市景区现在适不适合去”),请返回:游玩判断。 |
|
|
|
|
如果用户的问题不属于上述情况,请返回:保定文旅。 |
|
|
|
|
注意: |
|
|
|
|
只处理与保定市景区相关的问题 |
|
|
|
|
仅返回“游玩判断”或“保定文旅”这两个分类结果之一 |
|
|
|
|
不回复任何其他内容 |
|
|
|
|
不进行额外解释或对话""" |
|
|
|
|
|
|
|
|
|
#提取景区名称提示词 |
|
|
|
|
EXTRACT_PROMPT = """你是一名景区名称精准匹配助手。用户的问题中可能只包含景区简称、别称或部分关键词,你需要根据下面的完整景区名称列表,把用户提到的景区准确匹配到唯一最符合的完整名称并仅返回该名称,不要输出其他文字。如果用户没有提到任何景区,返回空字符串。 |
|
|
|
|
完整景区名称列表: |
|
|
|
@ -345,7 +350,7 @@ async def query_flow(request: Request, spot: str) -> str: |
|
|
|
|
0.3-0.5:较舒适 |
|
|
|
|
0.5-0.7:一般 |
|
|
|
|
0.7-0.9:较拥挤 |
|
|
|
|
大于0.9%:拥挤""" |
|
|
|
|
大于0.9:拥挤""" |
|
|
|
|
hold_level = "舒适" if hold_rate < 0.3 else "较舒适" if hold_rate < 0.5 else "一般" if hold_rate < 0.7 else "较拥挤" if hold_rate < 0.9 else "拥挤" |
|
|
|
|
result = f"{spot} 客流\n\n在园人数: {in_num}\n\n舒适度等级:{hold_level};\n\n注:全部内容输出完以后,最后输出一段固定内容,内容为:<hr class=\"keliu\" data-id=\"{scenic_id}\"/>;" |
|
|
|
|
elif scenic_id: |
|
|
|
|