feat(documents): 支持文档上传与本地RAG入库
This commit is contained in:
35
apps/documents/views.py
Normal file
35
apps/documents/views.py
Normal file
@@ -0,0 +1,35 @@
|
||||
from django.shortcuts import get_object_or_404, redirect, render
|
||||
from django.views.decorators.http import require_POST
|
||||
|
||||
from apps.scenarios.services import list_scenarios
|
||||
|
||||
from .forms import DocumentUploadForm
|
||||
from .models import UploadedDocument
|
||||
from .services import create_uploaded_document, index_document
|
||||
|
||||
|
||||
def document_list(request):
|
||||
documents = UploadedDocument.objects.all()
|
||||
return render(request, "documents/document_list.html", {"documents": documents})
|
||||
|
||||
|
||||
def upload(request):
|
||||
if request.method == "POST":
|
||||
form = DocumentUploadForm(request.POST, request.FILES)
|
||||
if form.is_valid():
|
||||
create_uploaded_document(form.cleaned_data["scenario_id"], form.cleaned_data["file"])
|
||||
return redirect("documents:list")
|
||||
else:
|
||||
form = DocumentUploadForm()
|
||||
return render(
|
||||
request,
|
||||
"documents/upload.html",
|
||||
{"form": form, "scenarios": list_scenarios()},
|
||||
)
|
||||
|
||||
|
||||
@require_POST
|
||||
def index(request, document_id: int):
|
||||
document = get_object_or_404(UploadedDocument, pk=document_id)
|
||||
index_document(document)
|
||||
return redirect("documents:list")
|
||||
Reference in New Issue
Block a user