feat:过滤state
This commit is contained in:
@@ -137,10 +137,14 @@ def book_room(data: dict, params: dict) -> str:
|
||||
'''
|
||||
def query_booking_info(params: dict) -> str:
|
||||
tenant_id = params.get('tenantId', None)
|
||||
if not tenant_id:
|
||||
raise Exception("tenantId 不能为空")
|
||||
access_token = getinfo.get_access_token(tenant_id)
|
||||
params['access_token'] = access_token
|
||||
meeting_room = getinfo.query_meetingbooking_info(params)
|
||||
content = json.loads(json.dumps(meeting_room))
|
||||
result = params_filter.filter_state(meeting_room)
|
||||
content = json.loads(json.dumps(result))
|
||||
print("filter result is :", result)
|
||||
return str(content)
|
||||
|
||||
|
||||
@@ -246,8 +250,6 @@ def cancel_meeting2(params: dict)->str:
|
||||
raise Exception("tenantId 不能为空")
|
||||
access_token = getinfo.get_access_token(tenant_id)
|
||||
params['access_token'] = access_token
|
||||
params['isSendMail'] = True
|
||||
params['isSendMsg'] = True
|
||||
book_meeting = getinfo.cancel_meeting(params)
|
||||
content = json.loads(json.dumps(book_meeting))
|
||||
print("content is :", content)
|
||||
@@ -301,7 +303,7 @@ def build_prompt(params):
|
||||
可用会议室信息:
|
||||
{room_info}
|
||||
请按以下步骤处理:
|
||||
1. 解析用户预订需求(时间、人数、设备要求等),会议室名称和type_name里面可能包含了区域信息,注意根据地理信息过滤
|
||||
1. 解析用户预订需求(时间、人数、设备要求等)
|
||||
2. 根据可用会议室列表推荐合适选项,推荐选项时,没有用户明确需要预订哪间会议室时,不需要提取用户预订信息,直接返回推荐会议室列表,按照自然语言返回即可
|
||||
3. 只有当用户确定要预订某间会议室,而不是在询问合适会议室时,请根据上下文提取用户预订信息,预订时间等信息并返回而不是直接提示预订成功,结果请只返回json格式得预订信息且不需要包含多余的描述内容以及<think>标签等,输出结果示例如下:
|
||||
{book_for_mart_str}
|
||||
@@ -423,7 +425,7 @@ def process_query_book_room(**kwargs) -> str:
|
||||
book_promot = f'''
|
||||
系统调用API查询当前租户下已经预订的会议室的结果如下:
|
||||
{result}
|
||||
请帮用户解析已有的预订会议室的结果,解析结果中需要返回会议ID,并根据结果给予用户相应自然语言反馈
|
||||
请帮用户解析已有的预订会议室的结果,并根据结果给予用户相应自然语言反馈
|
||||
'''
|
||||
return book_promot
|
||||
|
||||
@@ -435,7 +437,7 @@ def process_cancel_room_meeting(data, params) -> str:
|
||||
meetingId = data.get("meetingId", None)
|
||||
if meetingId:
|
||||
params["meetingId"] = meetingId
|
||||
result = cancel_meeting2(params=params)
|
||||
result = cancel_meeting(params=params)
|
||||
book_promot = f'''
|
||||
系统调用API取消预订会议室的结果如下:
|
||||
{result}
|
||||
|
||||
@@ -7,6 +7,7 @@ import requests
|
||||
import urllib
|
||||
from decouple import config
|
||||
|
||||
|
||||
APPKEY = config('APPKEY', default="")
|
||||
APPSECRET = config('APPSECRET', default="")
|
||||
|
||||
@@ -58,7 +59,7 @@ def get_access_token(tenant_id):
|
||||
params = {}
|
||||
params['timestamp'] = str(int(time.time() * 1000))
|
||||
params['appKey'] = APPKEY
|
||||
print()
|
||||
print(params)
|
||||
app_secret = APPSECRET
|
||||
sort_param = sign_opt.opt_sort_data(params)
|
||||
print("sort_param", sort_param)
|
||||
@@ -152,6 +153,8 @@ def query_meetingroom(params: dict):
|
||||
return respones.json()
|
||||
|
||||
|
||||
|
||||
|
||||
'''
|
||||
查询会议预定信息
|
||||
'''
|
||||
@@ -171,6 +174,7 @@ def query_meetingbooking_info(params: dict):
|
||||
params['pageSize'] = 800
|
||||
respones = requests.get(url=request_url, params=params,
|
||||
headers=DEFAULT_HEADER)
|
||||
|
||||
return respones.json()
|
||||
|
||||
|
||||
|
||||
@@ -18,4 +18,15 @@ def filter_params(data, endpoint_name):
|
||||
return {k: v for k, v in data.items() if k in whitelist}
|
||||
elif isinstance(data, list):
|
||||
return [filter_params(item, endpoint_name) for item in data]
|
||||
return data
|
||||
return data
|
||||
|
||||
def filter_state(content:dict):
|
||||
filtered_data = []
|
||||
for room in content['data']:
|
||||
filtered_meetings = [meeting for meeting in room['meetingDTOList'] if meeting['state'] != 3]
|
||||
if filtered_meetings: # 只保留有会议的会议室
|
||||
filtered_room = room.copy()
|
||||
filtered_room['meetingDTOList'] = filtered_meetings
|
||||
filtered_data.append(filtered_room)
|
||||
result = {'code': content['code'], 'data': filtered_data}
|
||||
return result
|
||||
@@ -67,6 +67,7 @@ def query_meetingooking_info(request):
|
||||
pageNum
|
||||
pageSize
|
||||
"""
|
||||
from .tools import params_filter
|
||||
params = request.GET.dict()
|
||||
print("当前params : {0}".format(params))
|
||||
tenant_id = params.get('tenantId', None)
|
||||
@@ -75,10 +76,12 @@ def query_meetingooking_info(request):
|
||||
try:
|
||||
access_token = getinfo.get_access_token(tenant_id)
|
||||
params['access_token'] = access_token
|
||||
|
||||
print("params is -----", params)
|
||||
result = getinfo.query_meetingbooking_info(params)
|
||||
print("params is -----",params)
|
||||
result = params_filter.filter_state(result)
|
||||
content = json.loads(json.dumps(result))
|
||||
print("content :",content)
|
||||
print("content is ------------------ :",content)
|
||||
return JsonResponse(content)
|
||||
except Exception as ex:
|
||||
return JsonResponse(str(ex))
|
||||
|
||||
Reference in New Issue
Block a user