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)