From cdd660523a91522a30a80dbfda8ccfba4da2b874 Mon Sep 17 00:00:00 2001 From: Alexius Strauss Date: Mon, 27 Nov 2023 03:36:38 -0300 Subject: [PATCH] Feat: update api with props for frontend. Add on frontend validations and ajustments --- backend/src/api.py | 6 +++--- backend/src/services/models.py | 1 - backend/src/services/services.py | 7 ++++--- backend/src/settings/development.py | 2 +- backend/src/summarization/engines.py | 6 +++--- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/backend/src/api.py b/backend/src/api.py index 9097b7a..de920f8 100644 --- a/backend/src/api.py +++ b/backend/src/api.py @@ -1,6 +1,6 @@ import os -from fastapi import FastAPI, File, UploadFile +from fastapi import FastAPI, File, Request, UploadFile from fastapi.middleware.cors import CORSMiddleware from fastapi.responses import FileResponse @@ -28,7 +28,7 @@ async def healthcheck(): @app.post("/process-audio/", response_model=UploadResponse) -async def create_upload_file(audio_file: UploadFile = File(..., description="arquivo .mp3 ou .wav")): +async def create_upload_file(request: Request, audio_file: UploadFile = File(..., description="arquivo .mp3 ou .wav")): lang_chain = LangChain(api_key=OPEN_AI_TOKEN) service = DeepDive(llm_engine=lang_chain) service.validate_api_token() @@ -40,7 +40,7 @@ async def create_upload_file(audio_file: UploadFile = File(..., description="arq response = service.speech_to_text(response) response = service.summarize_text(response=response) response = service.create_audio_from_summary(response=response) - response = service.create_link_to_summary(response=response) + response = service.create_link_to_summary(request=request, response=response) return UploadResponse(**response) diff --git a/backend/src/services/models.py b/backend/src/services/models.py index 8ce8686..0d07188 100644 --- a/backend/src/services/models.py +++ b/backend/src/services/models.py @@ -5,5 +5,4 @@ class UploadResponse(BaseModel): file_id: str original_context: str = None summary_context: str = None - audio_summarize: str = None summary_url: str = None diff --git a/backend/src/services/services.py b/backend/src/services/services.py index ed809e0..5649ba8 100644 --- a/backend/src/services/services.py +++ b/backend/src/services/services.py @@ -1,7 +1,7 @@ from uuid import uuid4 import speech_recognition as sr -from fastapi import UploadFile +from fastapi import Request, UploadFile from gtts import gTTS from pydub import AudioSegment as Asegment from src.summarization.engines import LangChain @@ -95,6 +95,7 @@ def create_audio_from_summary(self, response: dict): print(f"Erro ao criar arquivo de áudio: {exc}") raise - def create_link_to_summary(self, response: dict): - response["summary_url"] = f"/download/{response.get('file_id')}" + def create_link_to_summary(self, request: Request, response: dict): + base_url = str(request.base_url) + response["summary_url"] = f"{base_url}download/{response.get('file_id')}" return response diff --git a/backend/src/settings/development.py b/backend/src/settings/development.py index b08e958..bbfdbd3 100644 --- a/backend/src/settings/development.py +++ b/backend/src/settings/development.py @@ -8,4 +8,4 @@ } -OPEN_AI_TOKEN = "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" \ No newline at end of file +OPEN_AI_TOKEN = "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" diff --git a/backend/src/summarization/engines.py b/backend/src/summarization/engines.py index 892969b..92f7cea 100644 --- a/backend/src/summarization/engines.py +++ b/backend/src/summarization/engines.py @@ -12,11 +12,11 @@ def __init__(self, api_key: str): self.api_key = api_key def summarize(self, text: str) -> str: - prompt = f"Por favor, analise o seguinte texto e crie um resumo breve, \ - focando nas ideias principais e informações mais relevantes. \ + prompt = f"Por favor, analise o seguinte texto e crie um resumo muito breve, \ + apenas com as informações mais relevantes. \ O resumo deve ser conciso, com poucas palavras, \ destacando apenas os aspectos mais importantes do texto. \ - Aqui está o texto para análise: :\n\n{text}\n\n Sumário:" + Aqui está o texto para análise: \n\n{text}\n\n Sumário:" return self.llm.predict(prompt) def token_is_valid(self):