|
from llms import LLM |
|
from utils.remote_client import execute_remote_task |
|
|
|
def text_summarization(text: str, model: str, summary_length: str, use_llm: bool = True) -> str: |
|
""" |
|
Summarize the input text using either LLM or traditional (Modal API) method. |
|
""" |
|
if not text.strip(): |
|
return "" |
|
if use_llm: |
|
return _summarization_with_llm(text, model, summary_length) |
|
else: |
|
return _summarization_with_traditional(text, model, summary_length) |
|
|
|
def _summarization_with_llm(text: str, model: str, summary_length: str) -> str: |
|
try: |
|
llm = LLM(model=model) |
|
prompt = ( |
|
f"Summarize the following text in {summary_length} detail. " |
|
f"Text: {text}\nSummary:" |
|
) |
|
summary = llm.generate(prompt) |
|
return summary.strip() |
|
except Exception as e: |
|
print(f"Error in LLM summarization: {str(e)}") |
|
return "Oops! Something went wrong. Please try again later." |
|
|
|
def _summarization_with_traditional(text: str, model: str, summary_length: str) -> str: |
|
try: |
|
payload = { |
|
"text": text, |
|
"model": model, |
|
"summary_length": summary_length, |
|
} |
|
resp = execute_remote_task("summarization", payload) |
|
if "error" in resp: |
|
return "Oops! Something went wrong. Please try again later." |
|
return resp.get("summary", "") |
|
except Exception as e: |
|
print(f"Error in traditional summarization: {str(e)}") |
|
return "Oops! Something went wrong. Please try again later." |