mirror of
https://github.com/imartinez/privateGPT.git
synced 2025-06-28 16:26:56 +00:00
Added delete schema
This commit is contained in:
parent
0a326c1e43
commit
2fe78b4b5f
10
.env
10
.env
@ -16,8 +16,8 @@ ACCESS_TOKEN_EXPIRE_MINUTES=60
|
||||
REFRESH_TOKEN_EXPIRE_MINUTES = 120 # 7 days
|
||||
|
||||
|
||||
SMTP_SERVER=smtp.gmail.com
|
||||
SMTP_PORT=587
|
||||
SMTP_SENDER_EMAIL=shresthasaurab030@outlook.com
|
||||
SMTP_USERNAME=shresthasaurab030
|
||||
SMTP_PASSWORD=huurxwxeorxjorzw
|
||||
SMTP_SERVER=mail.gibl.com.np
|
||||
SMTP_PORT=25
|
||||
SMTP_SENDER_EMAIL=noreply@gibl.com.np
|
||||
SMTP_USERNAME=noreply@gibl.com.np
|
||||
SMTP_PASSWORD=*G15y^N0reP!y
|
||||
|
12
poetry.lock
generated
12
poetry.lock
generated
@ -941,6 +941,16 @@ idna = ["idna (>=2.1,<4.0)"]
|
||||
trio = ["trio (>=0.14,<0.23)"]
|
||||
wmi = ["wmi (>=1.5.1,<2.0.0)"]
|
||||
|
||||
[[package]]
|
||||
name = "docx2txt"
|
||||
version = "0.8"
|
||||
description = "A pure python-based utility to extract text and images from docx files."
|
||||
optional = false
|
||||
python-versions = "*"
|
||||
files = [
|
||||
{file = "docx2txt-0.8.tar.gz", hash = "sha256:2c06d98d7cfe2d3947e5760a57d924e3ff07745b379c8737723922e7009236e5"},
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "ecdsa"
|
||||
version = "0.18.0"
|
||||
@ -6306,4 +6316,4 @@ chroma = ["chromadb"]
|
||||
[metadata]
|
||||
lock-version = "2.0"
|
||||
python-versions = ">=3.11,<3.12"
|
||||
content-hash = "a81365f3feb2e4d69b3d6244c60330549234d13484a787ae8fe6de1b66a201b6"
|
||||
content-hash = "305eb6301c5ad6fae8ca068bf5c4e121c06a342043320f8f2154761df242d904"
|
||||
|
@ -4,8 +4,11 @@ import uvicorn
|
||||
|
||||
from private_gpt.main import app
|
||||
from private_gpt.settings.settings import settings
|
||||
from fastapi.staticfiles import StaticFiles
|
||||
|
||||
# Set log_config=None to do not use the uvicorn logging configuration, and
|
||||
# use ours instead. For reference, see below:
|
||||
# https://github.com/tiangolo/fastapi/discussions/7457#discussioncomment-5141108
|
||||
app.mount("/static", StaticFiles(directory=r"C:\Users\Dbuser\QuickGPT\backend\privateGPT\private_gpt\static"), name="static")
|
||||
|
||||
uvicorn.run(app, host="0.0.0.0", port=settings().server.port, log_config=None)
|
||||
|
@ -2,4 +2,4 @@ import os
|
||||
from pathlib import Path
|
||||
|
||||
PROJECT_ROOT_PATH: Path = Path(__file__).parents[1]
|
||||
UPLOAD_DIR = os.path.join(os.getcwd(), "uploads")
|
||||
UPLOAD_DIR = r"C:\Users\Dbuser\QuickGPT\backend\privateGPT\private_gpt\static"
|
||||
|
@ -2,7 +2,7 @@ import logging
|
||||
from pathlib import Path
|
||||
from typing import Literal
|
||||
|
||||
from fastapi import APIRouter, Depends, HTTPException, Request, UploadFile, File, status, Security
|
||||
from fastapi import APIRouter, Depends, HTTPException, Request, UploadFile, File, status, Security, Body
|
||||
from fastapi.responses import JSONResponse
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
@ -35,6 +35,8 @@ class IngestResponse(BaseModel):
|
||||
model: Literal["private-gpt"]
|
||||
data: list[IngestedDoc]
|
||||
|
||||
class DeleteFilename(BaseModel):
|
||||
filename: str
|
||||
|
||||
@ingest_router.post("/ingest", tags=["Ingestion"], deprecated=True)
|
||||
def ingest(request: Request, file: UploadFile) -> IngestResponse:
|
||||
@ -121,10 +123,10 @@ def delete_ingested(request: Request, doc_id: str) -> None:
|
||||
service.delete(doc_id)
|
||||
|
||||
|
||||
@ingest_router.delete("/ingest/file/{filename}", tags=["Ingestion"])
|
||||
@ingest_router.post("/ingest/file/delete", tags=["Ingestion"])
|
||||
def delete_file(
|
||||
request: Request,
|
||||
filename: str,
|
||||
delete_input: DeleteFilename,
|
||||
current_user: models.User = Security(
|
||||
deps.get_current_user,
|
||||
)) -> dict:
|
||||
@ -133,6 +135,9 @@ def delete_file(
|
||||
The `filename` can be obtained from the `GET /ingest/list` endpoint.
|
||||
The document will be effectively deleted from your storage context.
|
||||
"""
|
||||
filename = delete_input.filename
|
||||
print(filename)
|
||||
|
||||
service = request.state.injector.get(IngestService)
|
||||
try:
|
||||
doc_ids = service.get_doc_ids_by_filename(filename)
|
||||
|
@ -20,7 +20,7 @@ class Source(BaseModel):
|
||||
|
||||
file_name = doc_metadata.get("file_name", "-") if doc_metadata else "-"
|
||||
page_label = doc_metadata.get("page_label", "-") if doc_metadata else "-"
|
||||
page_link = str(Path(f"{UPLOAD_DIR}/{file_name}#page={page_label}"))
|
||||
page_link = str(f"http://10.1.101.125:88/static/{file_name}#page={page_label}")
|
||||
|
||||
source = Source(file=file_name, page=page_label, text=chunk.text, page_link=page_link)
|
||||
curated_sources.add(source)
|
||||
|
@ -22,8 +22,11 @@ def send_registration_email(fullname: str, email: str, random_password: str) ->
|
||||
msg["From"] = settings.SMTP_SENDER_EMAIL
|
||||
msg["To"] = email
|
||||
|
||||
print(settings.SMTP_SERVER)
|
||||
print(settings.SMTP_PORT)
|
||||
|
||||
with smtplib.SMTP(settings.SMTP_SERVER, settings.SMTP_PORT) as server:
|
||||
server.starttls()
|
||||
server.login(settings.SMTP_USERNAME, settings.SMTP_PASSWORD)
|
||||
# server.starttls()
|
||||
# server.login(settings.SMTP_USERNAME, settings.SMTP_PASSWORD)
|
||||
server.sendmail(settings.SMTP_SENDER_EMAIL, email, msg.as_string())
|
||||
|
||||
|
@ -23,6 +23,7 @@ bcrypt = "^4.1.2"
|
||||
python-jose = "^3.3.0"
|
||||
psycopg2-binary = "^2.9.9"
|
||||
passlib = "^1.7.4"
|
||||
docx2txt = "^0.8"
|
||||
|
||||
[tool.poetry.group.dev.dependencies]
|
||||
black = "^22"
|
||||
|
Loading…
Reference in New Issue
Block a user