Spaces:
Sleeping
Sleeping
import requests | |
import streamlit as st | |
from langchain_community.chat_models.gigachat import GigaChat | |
from bs4 import BeautifulSoup | |
from translate import Translator | |
st.title('Мини-википедия') | |
def get_wikipedia_summary(title): | |
url = f"https://en.wikipedia.org/api/rest_v1/page/summary/{title}" | |
response = requests.get(url) | |
if response.status_code == 200: | |
data = response.json() | |
return data.get('extract', 'Сюжет не найден.') | |
else: | |
return f'Статья не найдена. Статус запроса: {response.status_code}' | |
def translate_and_format_title(title): | |
translator = Translator(from_lang="russian", to_lang="english") | |
translated_title = translator.translate(title) | |
return translated_title | |
query = st.text_input('Ваш запрос') | |
lang = st.radio('Выберите язык описания', ['Английский', 'Русский']) | |
gen_button = st.button('Получить ответ от Википедии') | |
giga = GigaChat( | |
credentials='MjA2MGEzNjItZjE0Mi00NWE5LTllMDItMWVjZWRlNDA2ODM0OjNhNzNlZDJmLTY4NWUtNDI1Zi1iZjg4LTkxOWFjMjkxZDg0OA==', verify_ssl_certs=False) | |
if gen_button: | |
if query: | |
eng_query = translate_and_format_title(query) | |
st.write(eng_query) | |
if lang == 'Английский': | |
st.write(get_wikipedia_summary(eng_query)) | |
else: | |
text = get_wikipedia_summary(eng_query) | |
with st.spinner('Перевод...'): | |
st.write(giga.invoke(f"Переведи этот текст: {text}").content) | |