| import gradio as gr |
| import os |
| os.environ["KERAS_BACKEND"] = "tensorflow" |
| import keras |
| import keras_nlp |
| import utils |
|
|
| from googletrans import Translator |
|
|
| css = """ |
| html, body { |
| margin: 0; |
| padding: 0; |
| height: 100%; |
| overflow: hidden; |
| } |
| body::before { |
| content: ''; |
| position: fixed; |
| top: 0; |
| left: 0; |
| width: 100vw; |
| height: 100vh; |
| background-image: url('https://stsci-opo.org/STScI-01J5E849R5W27ZZ2C3QAE9ET75.png'); |
| background-size: cover; |
| background-repeat: no-repeat; |
| opacity: 0.35; |
| background-position: center; |
| z-index: -1; |
| } |
| .gradio-container { |
| display: flex; |
| justify-content: center; |
| align-items: center; |
| height: 100vh; |
| } |
| """ |
|
|
| |
| gemma_lm = keras_nlp.models.CausalLM.from_preset("hf://sultan-hassan/CosmoGemma_2b_en") |
| chat = utils.ChatState(gemma_lm) |
|
|
| |
| translator = Translator() |
|
|
| def launch(message): |
| |
| detected = translator.detect(message) |
| if detected.lang == 'kk' or detected.lang == 'ky': |
| message_en = translator.translate(message, src='kk', dest='en').text |
| else: |
| message_en = message |
|
|
| |
| response_en = chat.send_message(message_en) |
|
|
| |
| response_kk = translator.translate(response_en, src='en', dest='kk').text |
|
|
| return response_kk |
|
|
| examples = [ |
| 'Космологиядағы негізгі зерттеу әдістері қандай?', |
| 'Инфляциялық модельдерде қандай байланыстар инфляция параметрлерін болжауға әсер етеді?', |
| 'Астрономиядағы сигналдағы артық қуаттың себебі неде болуы мүмкін?', |
| ] |
|
|
| iface = gr.Interface(launch, |
| inputs="text", |
| outputs="text", |
| examples=examples, |
| css=css, |
| title="CosmoGemma қазақша сөйлейді 👋", |
| description="CosmoGemma моделін қазақша сұрақтармен пайдаланыңыз, жауаптарды қазақша алыңыз.") |
|
|
| iface.launch() |
|
|