Merge remote-tracking branch 'origin/dev' into dev

# Conflicts:
#	yj_room_agent/LLM/ai_service.py
#	yj_room_agent/tools/getinfo.py
This commit is contained in:
yujj128
2025-06-10 11:00:42 +08:00
3 changed files with 52 additions and 23 deletions

8
.env
View File

@@ -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

View File

@@ -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格式得预订信息且不需要包含多余的描述内容以及<think>标签等,输出结果示例如下:
{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}

View File

@@ -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)