feat(demo): 初始化审核智能体演示基线
This commit is contained in:
47
review_agent/views.py
Normal file
47
review_agent/views.py
Normal file
@@ -0,0 +1,47 @@
|
||||
from django.contrib.auth.decorators import login_required
|
||||
from django.http import HttpRequest, HttpResponse
|
||||
from django.shortcuts import redirect, render
|
||||
from django.views.decorators.http import require_http_methods
|
||||
|
||||
from .services import create_conversation, get_conversation_for_user, list_conversations, send_message
|
||||
|
||||
|
||||
@login_required
|
||||
@require_http_methods(["GET", "POST"])
|
||||
def workspace(request: HttpRequest) -> HttpResponse:
|
||||
"""Renders the review-agent workspace and handles conversation actions."""
|
||||
|
||||
if request.method == "POST":
|
||||
action = request.POST.get("action")
|
||||
conversation = get_conversation_for_user(request.user, request.POST.get("conversation_id"))
|
||||
|
||||
if action == "new_conversation":
|
||||
conversation = create_conversation(request.user)
|
||||
return redirect(f"/?conversation={conversation.pk}")
|
||||
|
||||
if action == "send_message":
|
||||
content = (request.POST.get("prompt") or "").strip()
|
||||
if not conversation:
|
||||
conversation = create_conversation(request.user)
|
||||
if content:
|
||||
send_message(conversation, content)
|
||||
return redirect(f"/?conversation={conversation.pk}")
|
||||
|
||||
search = (request.GET.get("q") or "").strip()
|
||||
conversations = list_conversations(request.user, search)
|
||||
current = get_conversation_for_user(request.user, request.GET.get("conversation"))
|
||||
|
||||
if current is None and conversations.exists():
|
||||
current = conversations.first()
|
||||
|
||||
return render(
|
||||
request,
|
||||
"home.html",
|
||||
{
|
||||
"page_title": "审核智能体",
|
||||
"search_query": search,
|
||||
"conversations": conversations,
|
||||
"current_conversation": current,
|
||||
"messages": current.messages.all() if current else [],
|
||||
},
|
||||
)
|
||||
Reference in New Issue
Block a user