Files
aiagent/backend/scripts/debug_cache_query.py
renjianbo 41ffd31923 feat: P0 commercial readiness — password security, legal, account management
Backend changes for Phase A of v1.0 commercial launch:

P0-3: Password Security
- Remove hardcoded admin/123456 defaults from 34+ bootstrap scripts
- Add PLATFORM_USERNAME/PLATFORM_PASSWORD env vars to config
- Add PUT /api/v1/auth/change-password endpoint (requires old password)

P0-1: User Agreement & Privacy Policy
- Add agreed_terms/agreed_terms_version/agreed_terms_at to User model
- New GET /api/v1/legal/privacy and GET /api/v1/legal/terms endpoints
- New POST /api/v1/legal/agree endpoint to record consent
- Register endpoint now validates agreed_terms must be True

P0-6: Account Management
- Add phone/status/is_email_verified to User model
- Add DELETE /api/v1/auth/account for account deletion (with password confirmation)
- Add PUT /api/v1/auth/phone for phone binding
- Reject authentication for deleted accounts (status=deleted)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-07-01 22:01:54 +08:00

39 lines
1.2 KiB
Python

import os
"""单次执行后打印 cache-query 与 llm-unified 输出,用于排查记忆。"""
import json
import requests
B = "http://127.0.0.1:8037"
AID = "688c2c41-dcd1-4285-b193-6bed00c485c2"
UID = "debug_uid_fresh_99"
MSG = "我叫李小红"
r = requests.post(
B + "/api/v1/auth/login",
data={"username": os.getenv("PLATFORM_USERNAME"), "password": os.getenv("PLATFORM_PASSWORD")},
headers={"Content-Type": "application/x-www-form-urlencoded"},
timeout=15,
)
h = {"Authorization": f"Bearer {r.json()['access_token']}", "Content-Type": "application/json"}
eid = requests.post(
B + "/api/v1/executions",
headers=h,
json={"agent_id": AID, "input_data": {"query": MSG, "USER_INPUT": MSG, "user_id": UID}},
timeout=30,
).json()["id"]
import time
for _ in range(90):
d = requests.get(f"{B}/api/v1/executions/{eid}", headers=h, timeout=60).json()
if d["status"] not in ("pending", "running"):
break
time.sleep(0.6)
od = d.get("output_data") or {}
nr = od.get("node_results") or {}
cq = nr.get("cache-query") or {}
llm = nr.get("llm-unified") or {}
print("cache-query memory user_profile:", (cq.get("memory") or {}).get("user_profile"))
print("llm output:", (llm.get("output") or "")[:600])