SQL-chat / app.py
Nurisslam's picture
Update app.py
44e2851 verified
raw
history blame
2.58 kB
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):
# 1. Қолданушы сұрағын ағылшыншаға аударамыз (егер сұрақ қазақша болса ғана)
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
# 2. Модельге ағылшынша сұрақты жібереміз, чат тарихын қосып
response_en = chat.send_message(message_en)
# 3. Модельдің ағылшынша жауабын қазақшаға аударамыз
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()