Spaces:
Runtime error
Runtime error
import streamlit as st | |
from transformers import AutoModelForSeq2SeqLM, AutoTokenizer, pipeline | |
def main(): | |
st.set_page_config(page_title="LinguaSphere: Aya by CohereAI", layout="wide") | |
st.title("LinguaSphere: Aya by CohereAI") | |
# Load translation model and tokenizer | |
translation_checkpoint = "CohereForAI/aya-101" | |
translation_tokenizer = AutoTokenizer.from_pretrained(translation_checkpoint) | |
translation_model = AutoModelForSeq2SeqLM.from_pretrained(translation_checkpoint) | |
# Load sentiment analysis model | |
sentiment_analysis_pipeline = pipeline("sentiment-analysis", model="CohereForAI/aya-101") | |
# Load named entity recognition (NER) model | |
ner_pipeline = pipeline("ner", model="CohereForAI/aya-101") | |
# Load summarization model | |
summarization_pipeline = pipeline("summarization", model="CohereForAI/aya-101") | |
# Sidebar options | |
st.sidebar.title("Options") | |
show_model_info = st.sidebar.checkbox("Show Model Information") | |
show_task_description = st.sidebar.checkbox("Show Task Description") | |
show_about = st.sidebar.checkbox("About") | |
if show_about: | |
st.sidebar.subheader("About") | |
st.sidebar.markdown( | |
"LinguaSphere is a Streamlit app powered by Aya, a multilingual model developed by CohereAI." | |
) | |
if show_model_info: | |
st.sidebar.subheader("Model Information") | |
st.sidebar.markdown( | |
""" | |
The Aya model is a massively multilingual generative language model developed by Cohere For AI. | |
It is capable of performing various natural language processing tasks such as translation, sentiment analysis, | |
named entity recognition, and summarization. | |
""" | |
) | |
if show_task_description: | |
st.sidebar.subheader("Task Descriptions") | |
st.sidebar.markdown( | |
""" | |
- **Translation:** Translate text from one language to another. | |
- **Text Generation:** Generate text based on a prompt. | |
- **Sentiment Analysis:** Analyze the sentiment of text. | |
- **Named Entity Recognition:** Identify named entities in text. | |
- **Summarization:** Generate a summary of text. | |
""" | |
) | |
task = st.selectbox( | |
"Select Task", | |
[ | |
"Translation", | |
"Text Generation", | |
"Sentiment Analysis", | |
"Named Entity Recognition", | |
"Summarization", | |
], | |
) | |
if task == "Translation": | |
source_language = st.selectbox( | |
"Source Language", ["English", "Turkish", "Hindi"] | |
) | |
target_language = st.selectbox( | |
"Target Language", ["Nepali", "Turkish", "English"] | |
) | |
source_text = st.text_area("Enter text in " + source_language, "") | |
if st.button("Translate"): | |
source_text = source_text.strip() | |
if source_language == "English": | |
source_text = "Translate to " + target_language + ": " + source_text | |
else: | |
source_text = source_text + "।" | |
inputs = translation_tokenizer.encode(source_text, return_tensors="pt") | |
outputs = translation_model.generate(inputs, max_length=128) | |
translated_text = translation_tokenizer.decode( | |
outputs[0], skip_special_tokens=True | |
) | |
st.write("Translated text in " + target_language + ":", translated_text) | |
elif task == "Text Generation": | |
prompt = st.text_area("Enter prompt for text generation", "") | |
language = st.selectbox("Select Language", ["English", "Turkish", "Hindi"]) | |
if st.button("Generate"): | |
prompt = prompt.strip() | |
if language == "English": | |
prompt = "Generate text: " + prompt | |
elif language == "Hindi": | |
prompt = prompt + "।" | |
inputs = translation_tokenizer.encode(prompt, return_tensors="pt") | |
outputs = translation_model.generate(inputs, max_length=128) | |
generated_text = translation_tokenizer.decode( | |
outputs[0], skip_special_tokens=True | |
) | |
st.write("Generated text:", generated_text) | |
elif task == "Sentiment Analysis": | |
text = st.text_area("Enter text for sentiment analysis", "") | |
if st.button("Analyze Sentiment"): | |
result = sentiment_analysis_pipeline(text) | |
st.write("Sentiment:", result[0]["label"]) | |
elif task == "Named Entity Recognition": | |
text = st.text_area("Enter text for named entity recognition", "") | |
if st.button("Recognize Entities"): | |
entities = ner_pipeline(text) | |
st.write("Entities:") | |
for entity in entities: | |
st.write(entity) | |
elif task == "Summarization": | |
text = st.text_area("Enter text for summarization", "") | |
if st.button("Summarize"): | |
summary = summarization_pipeline(text) | |
st.write("Summary:", summary[0]["summary_text"]) | |
if __name__ == "__main__": | |
main() | |