feat:查询会议室流程打通

This commit is contained in:
雷雨
2025-12-02 10:41:29 +08:00
parent eec994ca84
commit e8f95dff59
3 changed files with 40 additions and 20 deletions

8
.env
View File

@@ -1,19 +1,19 @@
#api key
MODEL_API_KEY=sk-jixyuwdltfawojgwywogkkdoqwpxblabprxybltlacbpqnip
MODEL_API_KEY=sk-trjqfqhisfwuooakphcqbacotdrfqxnohmmtxzakfpjpinrq
#模型地址
MODEL_BASE_URL=https://api.siliconflow.cn/v1
#模型名称
MODEL_NAME=Qwen/Qwen3-Next-80B-A3B-Instruct
#模型活跃度
MODEL_TEMPERATURE=0.4
MODEL_TEMPERATURE=0.5
#放行host地址
DJANGO_ALLOWED_HOSTS=192.168.237.130,127.0.0.1,10.212.26.130,192.168.31.115
#是否开启debug模式
DJANGO_DEBUG_ENABLE=True
DJANGO_LOG_LEVEL=INFO
DEFAULT_AUTH_URL = 'https://oa-pre.cyj.cn/iuap-api-auth'
DEFAULT_GATEWAY_URL = 'https://oa-pre.cyj.cn/iuap-api-gateway '
DEFAULT_AUTH_URL = 'https://fmis-pre.cyj.cn/iuap-api-auth'
DEFAULT_GATEWAY_URL = 'https://fmis-pre.cyj.cn/iuap-api-gateway'
TEMP_TENANT_ID = 'pr3rl2oj'
#APPKEY = 'e5d615eb169944abb3a1db5bd699ca65'
#APPSECRET = '84bb250c995c6161a97aebc2296abe558f6551ac'

View File

@@ -3,10 +3,10 @@ from decouple import config
from datetime import datetime
from langchain_openai import ChatOpenAI
from typing import TypedDict, Annotated, List, Optional, Union
import logging
import logging,json
from yj_room_agent.db import snow_id, db_main
from yj_room_agent.template import template
from yj_room_agent.tools import json_tools
from yj_room_agent.tools import json_tools, getinfo, params_filter
from langgraph.graph import StateGraph, END, START
from langgraph.checkpoint.memory import MemorySaver
from yj_room_agent.temp_history import msg_history
@@ -117,26 +117,44 @@ def pre_book_meeting_node_handler(state: RoomChatAgentState) -> str:
# 查询空闲会议室,需要判断历史消息或者用户输入,查询空闲会议室,返回结果
def query_avliable_meeting_room_node(state: RoomChatAgentState) -> dict:
simple_data = [{
'room_id': "17592186050581",
'room_name': "成都527"
}, {
'room_id': "17592186050582",
'room_name': "成都528"
}]
return {'last_node': 'query_avali_room', 'avli_room_data': simple_data}
param = state.get('params', {})
pre_data = state.get('pre_book_meeting_data', {})
content = getinfo.query_meetingroom(param)
result = params_filter.filter_meetingroom(content['data'])
logger.info(" filter data: {0}".format(result))
result = params_filter.filter_params(result, "query_meeting_room")
logger.debug("query_room_info result => {0}".format(result))
# 字典中只要key存在哪怕对应的value是'',也能取出来空字符串 data.get('capacity', 0)可能是空字符串
capacity = pre_data.get('capacity', 0)
capacity_limit = int(capacity) if capacity not in [None, ''] else 0
logger.info("capacity limit {0} {1}".format(capacity_limit, type(capacity_limit)))
new_list = []
if pre_data.get('Region') and pre_data.get('Region') != 'None':
region = pre_data.get('Region')
for b in result:
logger.info("b.capacity {0} {1}".format(b.get('capacity', 0), type(b.get('capacity', 0))))
if ((region in b.get('name', 'default') or region in b.get('typeName', 'default')) and b.get('capacity',
0) >= capacity_limit):
new_list.append(b)
else:
for b in result:
if b.get('capacity', 0) >= capacity_limit:
new_list.append(b)
return {'avli_room_data': new_list, 'last_node': 'query_avali_room'}
def book_meeting_node(state: RoomChatAgentState) -> dict:
logger.info(f"user:{state.get('user_id', '1')} ---------------进入 pre_book_meeting_node(预约会议) 节点-")
data={
'code':200,
'message':'预约会议成功',
'data':{
'meeting_id': '17592186050585',
data = {
'code': 200,
'message': '预约会议成功',
'data': {
'meeting_id': '17592186050585',
}
}
return {'last_node': 'book_meeting','book_meeting_data':data}
return {'last_node': 'book_meeting', 'book_meeting_data': data}
# 取消会议室,需要判断历史消息或者用户输入,判断是否有会议室号,如果有,则取消会议,如果没有,触发查询已预订会议

View File

@@ -210,6 +210,8 @@ def query_meetingroom(params: dict):
logger.info("request url => {0}".format(request_url))
if not params.get("pageSize", None):
params['pageSize'] = page_size
token=get_access_token(tenant_id)
params['access_token'] = token
logger.debug("query_meetingroom params => {0}".format(params))
respones = requests.get(url=request_url, params=params,
headers=header,verify=False)