257 lines
8.2 KiB
Python
257 lines
8.2 KiB
Python
import json
|
||
from django.http import StreamingHttpResponse, JsonResponse, FileResponse
|
||
from yj_room_agent.LLM.ai_service import process_chat
|
||
from django.views.decorators.http import require_POST
|
||
import json
|
||
import requests
|
||
from .tools import getinfo
|
||
from .tianyi_ai import knowledge_chat
|
||
|
||
def hello(request):
|
||
return JsonResponse({'msg': 'ok'})
|
||
def query_meeting_type(request):
|
||
"""
|
||
query_params:
|
||
tenantId not null
|
||
pageNum
|
||
pageSize
|
||
"""
|
||
params = request.GET.dict()
|
||
yht_token = ((request.META.get('HTTP_YHT_ACCESS_TOKEN', None))
|
||
or request.headers.get('yht_access_token', None))
|
||
if yht_token:
|
||
params['yht_access_token'] = yht_token
|
||
print("当前params : {0}".format(params))
|
||
tenant_id = params.get('tenantId', None)
|
||
if not tenant_id:
|
||
raise Exception("tenantId 不能为空")
|
||
try:
|
||
access_token = getinfo.get_access_token(tenant_id)
|
||
params['access_token'] = access_token
|
||
|
||
result = getinfo.query_meetingroom_type(params)
|
||
content = json.loads(json.dumps(result))
|
||
print("room type :",content)
|
||
return JsonResponse(content)
|
||
except Exception as ex:
|
||
return JsonResponse(str(ex))
|
||
|
||
def query_meeting(request):
|
||
"""
|
||
query_params:
|
||
tenantId not null
|
||
typeIds
|
||
pageNum
|
||
pageSize
|
||
"""
|
||
params = request.GET.dict()
|
||
yht_token = ((request.META.get('HTTP_YHT_ACCESS_TOKEN', None))
|
||
or request.headers.get('yht_access_token', None))
|
||
print("yht is {0}".format(yht_token))
|
||
if yht_token:
|
||
params['yht_access_token'] = yht_token
|
||
print("当前params : {0}".format(params))
|
||
tenant_id = params.get('tenantId', None)
|
||
if not tenant_id:
|
||
raise Exception("tenantId 不能为空")
|
||
try:
|
||
access_token = getinfo.get_access_token(tenant_id)
|
||
params['access_token'] = access_token
|
||
|
||
result = getinfo.query_meetingroom(params)
|
||
content = json.loads(json.dumps(result))
|
||
print("content :",content)
|
||
return JsonResponse(content)
|
||
except Exception as ex:
|
||
return JsonResponse(str(ex))
|
||
|
||
|
||
def query_meetingooking_info(request):
|
||
"""
|
||
query_params:
|
||
tenantId (not null)
|
||
startTimeStamp
|
||
endTimeStamp
|
||
meetingRoomIds
|
||
meetingRoomTypeIds
|
||
pageNum
|
||
pageSize
|
||
"""
|
||
from .tools import params_filter
|
||
params = request.GET.dict()
|
||
yht_token = ((request.META.get('HTTP_YHT_ACCESS_TOKEN', None))
|
||
or request.headers.get('yht_access_token', None))
|
||
print("yht is {0}".format(yht_token))
|
||
if yht_token:
|
||
params['yht_access_token'] = yht_token
|
||
print("当前params : {0}".format(params))
|
||
tenant_id = params.get('tenantId', None)
|
||
if not tenant_id:
|
||
raise Exception("tenantId 不能为空")
|
||
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 is ------------------ :",content)
|
||
return JsonResponse(content)
|
||
except Exception as ex:
|
||
return JsonResponse(str(ex))
|
||
|
||
|
||
|
||
def book_meeting(request):
|
||
"""
|
||
data{
|
||
"subject": "api333",
|
||
"meetingRoomId": "1711130269642129413",
|
||
"meetingRoomName": "506",
|
||
"meetingDateTimeStamp": 1750099200000,
|
||
"startDateTimeStamp": 1750099200000,
|
||
"endDateTimeStamp": 1750102800000,
|
||
"meetingPersonYhtUserIds": [
|
||
"ec4326d0-d490-4d5a-9105-260b51fd16d0"
|
||
],
|
||
"meetingPersonAmount": 12,
|
||
"remindArray": [
|
||
15
|
||
],
|
||
"content": "会议内容",
|
||
"isSendMail": false,
|
||
"isSendMsg": false
|
||
}
|
||
:params: tenantId (not null)
|
||
:return:
|
||
"""
|
||
if request.method == 'POST':
|
||
params = request.GET.dict()
|
||
|
||
yht_token = ((request.META.get('HTTP_YHT_ACCESS_TOKEN', None))
|
||
or request.headers.get('yht_access_token', None))
|
||
print("yht is {0}".format(yht_token))
|
||
if yht_token:
|
||
params['yht_access_token'] = yht_token
|
||
# data = request.POST.dict()
|
||
data = json.loads(request.body)
|
||
print("data is {0}".format(data))
|
||
print("当前params : {0}".format(params))
|
||
tenant_id = params.get('tenantId', None)
|
||
if not tenant_id:
|
||
raise Exception("tenantId 不能为空")
|
||
try:
|
||
access_token = getinfo.get_access_token(tenant_id)
|
||
params['access_token'] = access_token
|
||
|
||
result = getinfo.book_meeting(params, data)
|
||
content = json.loads(json.dumps(result))
|
||
print("content :", content)
|
||
return JsonResponse(content)
|
||
except Exception as ex:
|
||
return JsonResponse(str(ex))
|
||
|
||
def edit_meeting(request):
|
||
"""
|
||
:params:
|
||
{tenant_id}
|
||
:data {
|
||
id (nor null) string
|
||
subject string
|
||
meetingRoomName string
|
||
meetingDateTimeStamp (==startDateTime ) number
|
||
startDateTimeStamp number
|
||
endDateTimeStamp number
|
||
meetingPersonYhtUserIds strArray
|
||
meetingPersonAmount number
|
||
remindArray 提醒时间(枚举值仅有:5,15,20,30,60,1440,4320)
|
||
content
|
||
}
|
||
:params: tenantId (not null)
|
||
:return:
|
||
"""
|
||
if request.method == 'POST':
|
||
|
||
params = request.GET.dict()
|
||
yht_token = ((request.META.get('HTTP_YHT_ACCESS_TOKEN', None))
|
||
or request.headers.get('yht_access_token', None))
|
||
print("yht is {0}".format(yht_token))
|
||
if yht_token:
|
||
params['yht_access_token'] = yht_token
|
||
data = json.loads(request.body)
|
||
print("data is {0}".format(data))
|
||
print("当前params : {0}".format(params))
|
||
tenant_id = params.get('tenantId', None)
|
||
if not tenant_id:
|
||
raise Exception("tenantId 不能为空")
|
||
try:
|
||
access_token = getinfo.get_access_token(tenant_id)
|
||
params['access_token'] = access_token
|
||
|
||
result = getinfo.edit_meeting_info(params,data)
|
||
content = json.loads(json.dumps(result))
|
||
print("content :", content)
|
||
return JsonResponse(content)
|
||
except Exception as ex:
|
||
return JsonResponse(str(ex))
|
||
|
||
|
||
def cancel_meeting(request):
|
||
"""
|
||
params{
|
||
tenantId
|
||
meetingId
|
||
}
|
||
:return:
|
||
"""
|
||
params = request.GET.dict()
|
||
yht_token = ((request.META.get('HTTP_YHT_ACCESS_TOKEN', None))
|
||
or request.headers.get('yht_access_token', None))
|
||
print("yht is {0}".format(yht_token))
|
||
if yht_token:
|
||
params['yht_access_token'] = yht_token
|
||
print("当前params : {0}".format(params))
|
||
tenant_id = params.get('tenantId', None)
|
||
if not tenant_id:
|
||
raise Exception("tenantId 不能为空")
|
||
try:
|
||
access_token = getinfo.get_access_token(tenant_id)
|
||
params['access_token'] = access_token
|
||
|
||
result = getinfo.cancel_meeting(params)
|
||
content = json.loads(json.dumps(result))
|
||
print("content :", content)
|
||
return JsonResponse(content)
|
||
except Exception as ex:
|
||
return JsonResponse(str(ex))
|
||
|
||
|
||
|
||
@require_POST
|
||
def room_chat(request):
|
||
params = request.GET.dict()
|
||
|
||
yht_token = ((request.META.get('HTTP_YHT_ACCESS_TOKEN', None))
|
||
or request.headers.get('yht_access_token', None))
|
||
if yht_token:
|
||
params['yht_access_token'] = yht_token
|
||
if not yht_token:
|
||
ckk = request.COOKIES
|
||
params['yht_access_token'] = ckk.get('yht_access_token', None)
|
||
body = json.loads(request.body)
|
||
resp = process_chat(body, params)
|
||
return JsonResponse(resp)
|
||
|
||
|
||
@require_POST
|
||
def tian_yi_chat_bot(request):
|
||
data = json.loads(request.body)
|
||
user_query = data.get('user_query')
|
||
session_id = data.get('session_id')
|
||
if not user_query:
|
||
return JsonResponse(data={'message':'user_query 不能为空'},status=400)
|
||
if not session_id:
|
||
return JsonResponse(data={'message': 'session_id 不能为空'},status=400)
|
||
return StreamingHttpResponse(knowledge_chat.do_chat_with_bot(user_query,session_id),content_type='text/html; charset=utf-8')
|