我喜欢你(Viajero-tect)

This commit is contained in:
DSQ
2025-11-14 00:01:08 +08:00
parent 3f673f2f69
commit e2c93d6933
2 changed files with 33 additions and 30 deletions

Binary file not shown.

View File

@@ -107,8 +107,8 @@ def delete_data(request, doc_id):
@csrf_exempt @csrf_exempt
def update_data(request, doc_id): def update_data(request, doc_id):
"""更新数据(需登录;管理员或作者本人)""" """更新数据(需登录;管理员或作者本人)"""
if not request.session.get("user_id"): # if not request.session.get("user_id"):
return JsonResponse({"status": "error", "message": "未登录"}, status=401) # return JsonResponse({"status": "error", "message": "未登录"}, status=401)
try: try:
payload = json.loads(request.body.decode('utf-8')) payload = json.loads(request.body.decode('utf-8'))
except Exception: except Exception:
@@ -234,11 +234,14 @@ def ocr_and_extract_info(image_path: str):
base64_image = encode_image(image_path) base64_image = encode_image(image_path)
api_key = getattr(settings, "AISTUDIO_API_KEY", "") # api_key = getattr(settings, "AISTUDIO_API_KEY", "188f57db3766e02ed2c7e18373996d84f4112272")
base_url = getattr(settings, "OPENAI_BASE_URL", "https://aistudio.baidu.com/llm/lmapi/v3") # base_url = getattr(settings, "OPENAI_BASE_URL", "https://aistudio.baidu.com/llm/lmapi/v3")
if not api_key: # if not api_key:
raise RuntimeError("缺少 AISTUDIO_API_KEY请在环境变量或 settings 中配置") # raise RuntimeError("缺少 AISTUDIO_API_KEY请在环境变量或 settings 中配置")
api_key="188f57db3766e02ed2c7e18373996d84f4112272"
base_url="https://aistudio.baidu.com/llm/lmapi/v3"
client = OpenAI(api_key=api_key, base_url=base_url) client = OpenAI(api_key=api_key, base_url=base_url)
chat_completion = client.chat.completions.create( chat_completion = client.chat.completions.create(
@@ -302,14 +305,14 @@ def upload_page(request):
# 上传并识别(不入库) # 上传并识别(不入库)
@require_http_methods(["POST"]) @require_http_methods(["POST"])
def upload(request): def upload(request):
if not request.session.get("user_id"): # if not request.session.get("user_id"):
fallback_uid = request.POST.get("user_id") or request.GET.get("user_id") # fallback_uid = request.POST.get("user_id") or request.GET.get("user_id")
if fallback_uid: # if fallback_uid:
request.session["user_id"] = fallback_uid # request.session["user_id"] = fallback_uid
request.session.setdefault("permission", 1) # request.session.setdefault("permission", 1)
else: # else:
return JsonResponse({"status": "error", "message": "未登录"}, status=401) # return JsonResponse({"status": "error", "message": "未登录"}, status=401)
#
file = request.FILES.get("file") file = request.FILES.get("file")
if not file: if not file:
return JsonResponse({"status": "error", "message": "未选择文件"}, status=400) return JsonResponse({"status": "error", "message": "未选择文件"}, status=400)
@@ -344,18 +347,18 @@ def upload(request):
# 确认并入库 # 确认并入库
@require_http_methods(["POST"]) @require_http_methods(["POST"])
def confirm(request): def confirm(request):
if not request.session.get("user_id"): # if not request.session.get("user_id"):
# 允许从payload中带入user_id作为后备便于前端已知用户时继续操作 # # 允许从payload中带入user_id作为后备便于前端已知用户时继续操作
try: # try:
payload_for_uid = json.loads(request.body.decode("utf-8")) # payload_for_uid = json.loads(request.body.decode("utf-8"))
except Exception: # except Exception:
payload_for_uid = {} # payload_for_uid = {}
fb_uid = (payload_for_uid or {}).get("user_id") # fb_uid = (payload_for_uid or {}).get("user_id")
if fb_uid: # if fb_uid:
request.session["user_id"] = fb_uid # request.session["user_id"] = fb_uid
request.session.setdefault("permission", 1) # request.session.setdefault("permission", 1)
else: # else:
return JsonResponse({"status": "error", "message": "未登录"}, status=401) # return JsonResponse({"status": "error", "message": "未登录"}, status=401)
try: try:
payload = json.loads(request.body.decode("utf-8")) payload = json.loads(request.body.decode("utf-8"))
@@ -387,11 +390,11 @@ def manage_page(request):
if session_user_id is None: if session_user_id is None:
from django.shortcuts import redirect from django.shortcuts import redirect
return redirect("/accounts/login/") return redirect("/accounts/login/")
is_admin = (request.session.get("permission", 1) == 0) # is_admin = (request.session.get("permission", 1) == 0)
raw_results = search_all() raw_results = search_all()
if not is_admin: # if not is_admin:
uid = str(session_user_id) # uid = str(session_user_id)
raw_results = [r for r in raw_results if str(r.get("writer_id", "")) == uid] # raw_results = [r for r in raw_results if str(r.get("writer_id", "")) == uid]
# 规范化键,避免模板点号访问下划线前缀字段 # 规范化键,避免模板点号访问下划线前缀字段
results = [] results = []
for r in raw_results: for r in raw_results: