diff --git a/.env b/.env index ddfbc32..1d834b9 100644 --- a/.env +++ b/.env @@ -11,11 +11,11 @@ DJANGO_ALLOWED_HOSTS=192.168.237.130,127.0.0.1,10.212.26.130 #是否开启debug模式 DJANGO_DEBUG_ENABLE=True -DEFAULT_AUTH_URL = 'https://oa-dev.yced.com.cn/iuap-api-auth' -DEFAULT_GATEWAY_URL = 'https://oa-dev.yced.com.cn/iuap-api-gateway ' +DEFAULT_AUTH_URL = 'https://oa-pre.yced.com.cn/iuap-api-auth' +DEFAULT_GATEWAY_URL = 'https://oa-pre.yced.com.cn/iuap-api-gateway ' TEMP_TENANT_ID = 'pr3rl2oj' -APPKEY = 'e5d615eb169944abb3a1db5bd699ca65' -APPSECRET = '84bb250c995c6161a97aebc2296abe558f6551ac' +APPKEY = '422b4eb9c97b448689c0d444072a55ad' +APPSECRET = '371f07c8abe30577c608be6ba60198a914f98297' DEFAULT_HEADER = {'Content-Type': 'application/json'} # General Purpose Interface diff --git a/yj_room_agent/LLM/ai_service.py b/yj_room_agent/LLM/ai_service.py index d820003..fdd6455 100644 --- a/yj_room_agent/LLM/ai_service.py +++ b/yj_room_agent/LLM/ai_service.py @@ -136,7 +136,7 @@ def book_room(data: dict, params: dict) -> str: 查询租户下预定信息 ''' def query_booking_info(params: dict) -> str: - tenant_id = params.get('ytenantId', None) + tenant_id = params.get('tenantId', None) access_token = getinfo.get_access_token(tenant_id) params['access_token'] = access_token meeting_room = getinfo.query_meetingbooking_info(params) @@ -246,6 +246,8 @@ 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) @@ -299,7 +301,7 @@ def build_prompt(params): 可用会议室信息: {room_info} 请按以下步骤处理: - 1. 解析用户预订需求(时间、人数、设备要求等) + 1. 解析用户预订需求(时间、人数、设备要求等),会议室名称和type_name里面可能包含了区域信息,注意根据地理信息过滤 2. 根据可用会议室列表推荐合适选项,推荐选项时,没有用户明确需要预订哪间会议室时,不需要提取用户预订信息,直接返回推荐会议室列表,按照自然语言返回即可 3. 只有当用户确定要预订某间会议室,而不是在询问合适会议室时,请根据上下文提取用户预订信息,预订时间等信息并返回而不是直接提示预订成功,结果请只返回json格式得预订信息且不需要包含多余的描述内容以及标签等,输出结果示例如下: {book_for_mart_str} @@ -421,7 +423,7 @@ def process_query_book_room(**kwargs) -> str: book_promot = f''' 系统调用API查询当前租户下已经预订的会议室的结果如下: {result} - 请帮用户解析已有的预订会议室的结果,并根据结果给予用户相应自然语言反馈 + 请帮用户解析已有的预订会议室的结果,解析结果中需要返回会议ID,并根据结果给予用户相应自然语言反馈 ''' return book_promot @@ -433,7 +435,7 @@ def process_cancel_room_meeting(data, params) -> str: meetingId = data.get("meetingId", None) if meetingId: params["meetingId"] = meetingId - result = cancel_meeting(params=params) + result = cancel_meeting2(params=params) book_promot = f''' 系统调用API取消预订会议室的结果如下: {result} diff --git a/yj_room_agent/tools/getinfo.py b/yj_room_agent/tools/getinfo.py index dcdc9d5..f540499 100644 --- a/yj_room_agent/tools/getinfo.py +++ b/yj_room_agent/tools/getinfo.py @@ -6,6 +6,7 @@ from yj_room_agent import settings import requests import urllib from decouple import config + APPKEY = config('APPKEY', default="") APPSECRET = config('APPSECRET', default="") @@ -24,6 +25,8 @@ CANCEL_MEETING2 = config('CANCEL_MEETING2', default="") EDIT_MEETING = config('EDIT_MEETING', default="") DEFAULT_HEADER = {'Content-Type': 'application/json'} page_size = config('DEFAULT_PAGESIZE', 800) + + def check_required_params(required_fields, params): """ 检查提供的数据字典是否包含所有必需的字段,并且这些字段的值非空。 @@ -42,6 +45,8 @@ def check_required_params(required_fields, params): return False, missing_or_empty_fields else: return True, None + + def get_access_token(tenant_id): ''' :param params: keys=>[tenantId, appKey] @@ -102,11 +107,15 @@ def get_domain(params): else: raise Exception(f"请求失败 状态码: {respones.status_code}") + ''' 查询会议室类型 ''' -def query_meetingroom_type(params:dict): + + +def query_meetingroom_type(params: dict): # ytenantId + params = params.copy() params['ytenantId'] = params.pop('tenantId') print("now params ", params) tenant_id = params.get("ytenantId", None) @@ -121,8 +130,11 @@ def query_meetingroom_type(params:dict): ''' 查询会议室信息 ''' -def query_meetingroom(params:dict): + + +def query_meetingroom(params: dict): # ytenantId + params = params.copy() params['ytenantId'] = params.pop('tenantId') print("now params ", params) tenant_id = params.get("ytenantId", None) @@ -130,7 +142,6 @@ def query_meetingroom(params:dict): gateway_url, token_url = get_domain({"tenantId": tenant_id}) request_url = gateway_url + QUERY_MEETING_ROOM print("request url ", request_url) - # params['pageNum'] = page_num params['pageSize'] = page_size print("paramas ", params) @@ -144,7 +155,9 @@ def query_meetingroom(params:dict): ''' 查询会议预定信息 ''' -def query_meetingbooking_info(params:dict): + + +def query_meetingbooking_info(params: dict): # ytenantId params = params.copy() params['ytenantId'] = params.pop('tenantId') @@ -160,10 +173,13 @@ def query_meetingbooking_info(params:dict): headers=DEFAULT_HEADER) return respones.json() + ''' 预定会议室 ''' -def book_meeting_room(params:dict, data:dict): + + +def book_meeting_room(params: dict, data: dict): # tenantId print("now params ", params) tenant_id = params.get("tenantId", None) @@ -172,9 +188,9 @@ def book_meeting_room(params:dict, data:dict): request_url = gateway_url + BOOK_MEETING_ROOM print("request url ", request_url) print("paramas ", params) - print("data: ",data) + print("data: ", data) respones = requests.post(url=request_url, params=params, - headers=DEFAULT_HEADER, data=json.dumps(data)) + headers=DEFAULT_HEADER, data=json.dumps(data)) print("respone ", respones) return respones.json() @@ -182,7 +198,9 @@ def book_meeting_room(params:dict, data:dict): ''' 预定会议 ''' -def book_meeting(params:dict, data:dict): + + +def book_meeting(params: dict, data: dict): # tenantId print("now params ", params) tenant_id = params.get("tenantId", None) @@ -191,16 +209,19 @@ def book_meeting(params:dict, data:dict): request_url = gateway_url + BOOKMEETING print("request url ", request_url) print("paramas ", params) - print("data: ",data) + print("data: ", data) respones = requests.post(url=request_url, params=params, - headers=DEFAULT_HEADER, data=json.dumps(data)) + headers=DEFAULT_HEADER, data=json.dumps(data)) print("respone ", respones) return respones.json() + ''' 会议编辑 ''' -def edit_meeting_info(params:dict, data:dict): + + +def edit_meeting_info(params: dict, data: dict): # tenantId print("now params ", params) tenant_id = params.get("tenantId", None) @@ -215,10 +236,13 @@ def edit_meeting_info(params:dict, data:dict): print("respone ", respones) return respones.json() + ''' 取消会议1 怀疑是假接口 ''' -def cancel_meeting_booking(params:dict): + + +def cancel_meeting_booking(params: dict): # tenantId tenant_id = params.pop('tenantId') print("now params ", params) @@ -228,14 +252,17 @@ def cancel_meeting_booking(params:dict): print("request url ", request_url) print("paramas ", params) respones = requests.post(url=request_url, params=params, - headers=DEFAULT_HEADER) + headers=DEFAULT_HEADER) print("respone ", respones) return respones.json() + ''' 取消会议2 ''' -def cancel_meeting(params:dict): + + +def cancel_meeting(params: dict): # tenantId tenant_id = params.get('tenantId') print("now params ", params) @@ -247,4 +274,4 @@ def cancel_meeting(params:dict): respones = requests.get(url=request_url, params=params, headers=DEFAULT_HEADER) print("respone ", respones) - return respones.json() \ No newline at end of file + return respones.json()