Atualizar app/app.py
This commit is contained in:
+50
-7
@@ -690,11 +690,11 @@ def chat():
|
||||
@login_required
|
||||
@rate_limited
|
||||
def chat_stream():
|
||||
model = request.args.get("model", "llama3.2")
|
||||
|
||||
cid = request.args.get("conversation_id")
|
||||
email = session["user"]["email"] if app.config["AUTH_MODE"] == "oauth" else session["db_user"]["email"]
|
||||
|
||||
db = SessionLocal()
|
||||
email = session["user"]["email"] if app.config["AUTH_MODE"] == "oauth" else session["db_user"]["email"]
|
||||
msgs = (
|
||||
db.query(Message)
|
||||
.join(Conversation, Message.conversation_id == Conversation.id)
|
||||
@@ -702,11 +702,13 @@ def chat_stream():
|
||||
.order_by(Message.created_at)
|
||||
.all()
|
||||
)
|
||||
|
||||
|
||||
db.close()
|
||||
|
||||
chatml = [{"role": m.role, "content": m.content} for m in msgs]
|
||||
# segue chamada ao Ollama
|
||||
|
||||
model = request.args.get("model", "llama3.2")
|
||||
#cid = request.args.get("conversation_id")
|
||||
|
||||
def generate():
|
||||
url = f"{app.config['OLLAMA_BASE_URL']}/api/chat"
|
||||
@@ -772,6 +774,26 @@ def export_md(cid):
|
||||
db.close()
|
||||
return Response(md, mimetype="text/markdown")
|
||||
|
||||
|
||||
|
||||
@app.route("/api/file/<file_id>")
|
||||
@login_required
|
||||
def get_file(file_id):
|
||||
email = session["user"]["email"] if app.config["AUTH_MODE"] == "oauth" else session["db_user"]["email"]
|
||||
|
||||
db = SessionLocal()
|
||||
f = db.query(File).filter_by(id=file_id, user_email=email).first()
|
||||
db.close()
|
||||
|
||||
if not f:
|
||||
return jsonify({"erro": "Arquivo não encontrado."}), 404
|
||||
|
||||
return send_file(f.path)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
from weasyprint import HTML
|
||||
|
||||
import uuid
|
||||
@@ -788,9 +810,14 @@ def import_file(cid):
|
||||
return jsonify({"error": "No file"}), 400
|
||||
|
||||
ext = file.filename.lower().split(".")[-1]
|
||||
temp_path = f"/data/{uuid.uuid4()}.{ext}"
|
||||
file.save(temp_path)
|
||||
|
||||
file_id = str(uuid.uuid4())
|
||||
path = f"/data/{file_id}_{file.filename}"
|
||||
|
||||
file.save(path)
|
||||
|
||||
db.add(File(id=file_id, user_email=email, path=path, original_name=file.filename))
|
||||
db.commit()
|
||||
|
||||
if ext == "pdf":
|
||||
text = extract_text(temp_path)
|
||||
elif ext == "docx":
|
||||
@@ -913,6 +940,22 @@ def get_file(file_id):
|
||||
return send_file(f.path)
|
||||
|
||||
|
||||
@app.route("/api/stream/<cid>")
|
||||
@login_required
|
||||
def stream(cid):
|
||||
email = session["user"]["email"] if app.config["AUTH_MODE"] == "oauth" else session["db_user"]["email"]
|
||||
|
||||
db = SessionLocal()
|
||||
conv = db.query(Conversation).filter_by(id=cid, user_email=email).first()
|
||||
db.close()
|
||||
|
||||
if not conv:
|
||||
return jsonify({"erro": "Conversa não encontrada."}), 404
|
||||
|
||||
# segue streaming normalmente
|
||||
# TODO
|
||||
...
|
||||
|
||||
|
||||
|
||||
@app.route("/api/stream")
|
||||
|
||||
Reference in New Issue
Block a user