# import streamlit as st
# from transformers import pipeline

# # pipe = pipeline('sentiment-analysis')
# text = st.text_area('enter text: ')

# generator = pipeline("text-generation", model="EleutherAI/gpt-neo-2.7B")


# technical_text = """
# The CRISPR-Cas9 system enables precise genome editing by creating double-strand breaks at specific DNA locations, facilitating targeted genetic modifications.
# """

# # Prompt para transformación
# prompt = f"Rewrite the following technical text in simple terms for a general audience:\n\n{text}\n\nSimplified version:"

# # Generar texto transformado
# result = generator(
#     prompt,
#     max_length=256,
#     num_return_sequences=1,
#     do_sample=True,
#     temperature=0.1,
#     top_p=0.9,
#     repetition_penalty=1.1,
# )

# print(result[0]['generated_text'])


# if text:
#     out = pipe(text)
#     st.json(out)




from transformers import pipeline
import json

# Step 1: Rewriting the technical text in accessible language using T5 model
simplifier = pipeline("summarization", model="t5-small")

def simplify_text(text):
    result = simplifier(text, max_length=100, min_length=50, do_sample=False)
    return result[0]['summary_text']

# Step 2: Translation to English, Arabic, and French using MarianMT models
translator_en = pipeline("translation_es_to_en", model="Helsinki-NLP/opus-mt-es-en")
translator_ar = pipeline("translation_es_to_ar", model="Helsinki-NLP/opus-mt-es-ar")
translator_fr = pipeline("translation_es_to_fr", model="Helsinki-NLP/opus-mt-es-fr")

def translate_text(text):
    translations = {
        "english": translator_en(text)[0]['translation_text'],
        "arabic": translator_ar(text)[0]['translation_text'],
        "french": translator_fr(text)[0]['translation_text']
    }
    return translations

# Step 3: Identify the main topic using DistilBERT
classifier = pipeline("zero-shot-classification", model="distilbert-base-uncased-finetuned-sst-2-english")
labels = ["Technology", "Science", "Health", "Business", "Education", "Other"]

def identify_topic(text):
    classification = classifier(text, candidate_labels=labels)
    return classification['labels'][0]  # Main topic

# Step 4: Detect the tone of the text using RoBERTa
tone_analyzer = pipeline("sentiment-analysis", model="roberta-base")

def detect_tone(text):
    tone_result = tone_analyzer(text)[0]
    return tone_result['label']  # This gives a general idea of the tone (positive, neutral, etc.)

# Step 5: Formatting results for web service
def process_text_for_web_service(text):
    simplified_text = simplify_text(text)
    translations = translate_text(simplified_text)
    main_topic = identify_topic(simplified_text)
    tone = detect_tone(simplified_text)
    
    # Create a structured output
    result = {
        "original_text": text,
        "simplified_text": simplified_text,
        "translations": translations,
        "main_topic": main_topic,
        "tone": tone
    }
    
    # Convert to JSON for web service
    return json.dumps(result, ensure_ascii=False, indent=4)

# Example input text (in Spanish)
input_text = "La inteligencia artificial (IA) está revolucionando la industria de la tecnología al permitir nuevas aplicaciones en múltiples campos, desde la salud hasta la educación."

# Run the process
formatted_output = process_text_for_web_service(input_text)

# Output the JSON formatted result
print(formatted_output)