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模式 #是否开启debug模式
DJANGO_DEBUG_ENABLE=True DJANGO_DEBUG_ENABLE=True
DEFAULT_AUTH_URL = 'https://oa-dev.yced.com.cn/iuap-api-auth' DEFAULT_AUTH_URL = 'https://oa-pre.yced.com.cn/iuap-api-auth'
DEFAULT_GATEWAY_URL = 'https://oa-dev.yced.com.cn/iuap-api-gateway ' DEFAULT_GATEWAY_URL = 'https://oa-pre.yced.com.cn/iuap-api-gateway '
TEMP_TENANT_ID = 'pr3rl2oj' TEMP_TENANT_ID = 'pr3rl2oj'
APPKEY = 'e5d615eb169944abb3a1db5bd699ca65' APPKEY = '422b4eb9c97b448689c0d444072a55ad'
APPSECRET = '84bb250c995c6161a97aebc2296abe558f6551ac' APPSECRET = '371f07c8abe30577c608be6ba60198a914f98297'
DEFAULT_HEADER = {'Content-Type': 'application/json'} DEFAULT_HEADER = {'Content-Type': 'application/json'}
# General Purpose Interface # General Purpose Interface

View File

@@ -136,7 +136,7 @@ def book_room(data: dict, params: dict) -> str:
查询租户下预定信息 查询租户下预定信息
''' '''
def query_booking_info(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) access_token = getinfo.get_access_token(tenant_id)
params['access_token'] = access_token params['access_token'] = access_token
meeting_room = getinfo.query_meetingbooking_info(params) meeting_room = getinfo.query_meetingbooking_info(params)
@@ -246,6 +246,8 @@ def cancel_meeting2(params: dict)->str:
raise Exception("tenantId 不能为空") raise Exception("tenantId 不能为空")
access_token = getinfo.get_access_token(tenant_id) access_token = getinfo.get_access_token(tenant_id)
params['access_token'] = access_token params['access_token'] = access_token
params['isSendMail'] = True
params['isSendMsg'] = True
book_meeting = getinfo.cancel_meeting(params) book_meeting = getinfo.cancel_meeting(params)
content = json.loads(json.dumps(book_meeting)) content = json.loads(json.dumps(book_meeting))
print("content is :", content) print("content is :", content)
@@ -299,7 +301,7 @@ def build_prompt(params):
可用会议室信息: 可用会议室信息:
{room_info} {room_info}
请按以下步骤处理: 请按以下步骤处理:
1. 解析用户预订需求(时间、人数、设备要求等) 1. 解析用户预订需求(时间、人数、设备要求等),会议室名称和type_name里面可能包含了区域信息注意根据地理信息过滤
2. 根据可用会议室列表推荐合适选项,推荐选项时,没有用户明确需要预订哪间会议室时,不需要提取用户预订信息,直接返回推荐会议室列表,按照自然语言返回即可 2. 根据可用会议室列表推荐合适选项,推荐选项时,没有用户明确需要预订哪间会议室时,不需要提取用户预订信息,直接返回推荐会议室列表,按照自然语言返回即可
3. 只有当用户确定要预订某间会议室,而不是在询问合适会议室时,请根据上下文提取用户预订信息,预订时间等信息并返回而不是直接提示预订成功,结果请只返回json格式得预订信息且不需要包含多余的描述内容以及<think>标签等,输出结果示例如下: 3. 只有当用户确定要预订某间会议室,而不是在询问合适会议室时,请根据上下文提取用户预订信息,预订时间等信息并返回而不是直接提示预订成功,结果请只返回json格式得预订信息且不需要包含多余的描述内容以及<think>标签等,输出结果示例如下:
{book_for_mart_str} {book_for_mart_str}
@@ -421,7 +423,7 @@ def process_query_book_room(**kwargs) -> str:
book_promot = f''' book_promot = f'''
系统调用API查询当前租户下已经预订的会议室的结果如下: 系统调用API查询当前租户下已经预订的会议室的结果如下:
{result} {result}
请帮用户解析已有的预订会议室的结果并根据结果给予用户相应自然语言反馈 请帮用户解析已有的预订会议室的结果,解析结果中需要返回会议ID,并根据结果给予用户相应自然语言反馈
''' '''
return book_promot return book_promot
@@ -433,7 +435,7 @@ def process_cancel_room_meeting(data, params) -> str:
meetingId = data.get("meetingId", None) meetingId = data.get("meetingId", None)
if meetingId: if meetingId:
params["meetingId"] = meetingId params["meetingId"] = meetingId
result = cancel_meeting(params=params) result = cancel_meeting2(params=params)
book_promot = f''' book_promot = f'''
系统调用API取消预订会议室的结果如下: 系统调用API取消预订会议室的结果如下:
{result} {result}

View File

@@ -6,6 +6,7 @@ from yj_room_agent import settings
import requests import requests
import urllib import urllib
from decouple import config from decouple import config
APPKEY = config('APPKEY', default="") APPKEY = config('APPKEY', default="")
APPSECRET = config('APPSECRET', default="") APPSECRET = config('APPSECRET', default="")
@@ -24,6 +25,8 @@ CANCEL_MEETING2 = config('CANCEL_MEETING2', default="")
EDIT_MEETING = config('EDIT_MEETING', default="") EDIT_MEETING = config('EDIT_MEETING', default="")
DEFAULT_HEADER = {'Content-Type': 'application/json'} DEFAULT_HEADER = {'Content-Type': 'application/json'}
page_size = config('DEFAULT_PAGESIZE', 800) page_size = config('DEFAULT_PAGESIZE', 800)
def check_required_params(required_fields, params): def check_required_params(required_fields, params):
""" """
检查提供的数据字典是否包含所有必需的字段,并且这些字段的值非空。 检查提供的数据字典是否包含所有必需的字段,并且这些字段的值非空。
@@ -42,6 +45,8 @@ def check_required_params(required_fields, params):
return False, missing_or_empty_fields return False, missing_or_empty_fields
else: else:
return True, None return True, None
def get_access_token(tenant_id): def get_access_token(tenant_id):
''' '''
:param params: keys=>[tenantId, appKey] :param params: keys=>[tenantId, appKey]
@@ -102,11 +107,15 @@ def get_domain(params):
else: else:
raise Exception(f"请求失败 状态码: {respones.status_code}") raise Exception(f"请求失败 状态码: {respones.status_code}")
''' '''
查询会议室类型 查询会议室类型
''' '''
def query_meetingroom_type(params:dict):
def query_meetingroom_type(params: dict):
# ytenantId # ytenantId
params = params.copy()
params['ytenantId'] = params.pop('tenantId') params['ytenantId'] = params.pop('tenantId')
print("now params ", params) print("now params ", params)
tenant_id = params.get("ytenantId", None) 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 # ytenantId
params = params.copy()
params['ytenantId'] = params.pop('tenantId') params['ytenantId'] = params.pop('tenantId')
print("now params ", params) print("now params ", params)
tenant_id = params.get("ytenantId", None) tenant_id = params.get("ytenantId", None)
@@ -130,7 +142,6 @@ def query_meetingroom(params:dict):
gateway_url, token_url = get_domain({"tenantId": tenant_id}) gateway_url, token_url = get_domain({"tenantId": tenant_id})
request_url = gateway_url + QUERY_MEETING_ROOM request_url = gateway_url + QUERY_MEETING_ROOM
print("request url ", request_url) print("request url ", request_url)
# params['pageNum'] = page_num
params['pageSize'] = page_size params['pageSize'] = page_size
print("paramas ", params) 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 # ytenantId
params = params.copy() params = params.copy()
params['ytenantId'] = params.pop('tenantId') params['ytenantId'] = params.pop('tenantId')
@@ -160,10 +173,13 @@ def query_meetingbooking_info(params:dict):
headers=DEFAULT_HEADER) headers=DEFAULT_HEADER)
return respones.json() return respones.json()
''' '''
预定会议室 预定会议室
''' '''
def book_meeting_room(params:dict, data:dict):
def book_meeting_room(params: dict, data: dict):
# tenantId # tenantId
print("now params ", params) print("now params ", params)
tenant_id = params.get("tenantId", None) 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 request_url = gateway_url + BOOK_MEETING_ROOM
print("request url ", request_url) print("request url ", request_url)
print("paramas ", params) print("paramas ", params)
print("data: ",data) print("data: ", data)
respones = requests.post(url=request_url, params=params, 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) print("respone ", respones)
return respones.json() 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 # tenantId
print("now params ", params) print("now params ", params)
tenant_id = params.get("tenantId", None) tenant_id = params.get("tenantId", None)
@@ -191,16 +209,19 @@ def book_meeting(params:dict, data:dict):
request_url = gateway_url + BOOKMEETING request_url = gateway_url + BOOKMEETING
print("request url ", request_url) print("request url ", request_url)
print("paramas ", params) print("paramas ", params)
print("data: ",data) print("data: ", data)
respones = requests.post(url=request_url, params=params, 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) print("respone ", respones)
return respones.json() return respones.json()
''' '''
会议编辑 会议编辑
''' '''
def edit_meeting_info(params:dict, data:dict):
def edit_meeting_info(params: dict, data: dict):
# tenantId # tenantId
print("now params ", params) print("now params ", params)
tenant_id = params.get("tenantId", None) tenant_id = params.get("tenantId", None)
@@ -215,10 +236,13 @@ def edit_meeting_info(params:dict, data:dict):
print("respone ", respones) print("respone ", respones)
return respones.json() return respones.json()
''' '''
取消会议1 怀疑是假接口 取消会议1 怀疑是假接口
''' '''
def cancel_meeting_booking(params:dict):
def cancel_meeting_booking(params: dict):
# tenantId # tenantId
tenant_id = params.pop('tenantId') tenant_id = params.pop('tenantId')
print("now params ", params) print("now params ", params)
@@ -228,14 +252,17 @@ def cancel_meeting_booking(params:dict):
print("request url ", request_url) print("request url ", request_url)
print("paramas ", params) print("paramas ", params)
respones = requests.post(url=request_url, params=params, respones = requests.post(url=request_url, params=params,
headers=DEFAULT_HEADER) headers=DEFAULT_HEADER)
print("respone ", respones) print("respone ", respones)
return respones.json() return respones.json()
''' '''
取消会议2 取消会议2
''' '''
def cancel_meeting(params:dict):
def cancel_meeting(params: dict):
# tenantId # tenantId
tenant_id = params.get('tenantId') tenant_id = params.get('tenantId')
print("now params ", params) print("now params ", params)
@@ -247,4 +274,4 @@ def cancel_meeting(params:dict):
respones = requests.get(url=request_url, params=params, respones = requests.get(url=request_url, params=params,
headers=DEFAULT_HEADER) headers=DEFAULT_HEADER)
print("respone ", respones) print("respone ", respones)
return respones.json() return respones.json()