lepidus / app.py
Loversofdeath's picture
Update app.py
416d60b verified
raw
history blame
1.96 kB
import gradio as gr
import re
# Загружаем текстовые данные из файлов лора
def load_lore_files():
lore_data = {}
for filename in ["vampires.txt"]:
with open(filename, "r", encoding="utf-8") as file:
lore_data[filename] = file.read()
return lore_data
lore_data = load_lore_files()
# Функция для очистки текста от нежелательных символов
def clean_text(text):
# Убираем все символы, кроме букв и пробелов
return re.sub(r'[^a-zA-Zа-яА-ЯёЁ\s]', '', text.lower())
# Функция поиска ответа
def chatbot(message, history, system_message, max_tokens, temperature, top_p):
# Приводим запрос к стандартному виду
cleaned_message = clean_text(message)
response = ""
for filename, text in lore_data.items():
cleaned_text = clean_text(text)
if cleaned_message in cleaned_text:
response += f"В файле {filename} есть что-то похожее на ваш запрос!\n"
if response == "":
return "Извините, ничего не нашёл по вашему запросу."
# Добавляем ответ в историю
history.append((message, response))
return response, history
# Интерфейс чата с Gradio
demo = gr.ChatInterface(
chatbot,
additional_inputs=[
gr.Textbox(value="You are a friendly Chatbot.", label="System message"),
gr.Slider(minimum=1, maximum=2048, value=512, step=1, label="Max new tokens"),
gr.Slider(minimum=0.1, maximum=4.0, value=0.7, step=0.1, label="Temperature"),
gr.Slider(
minimum=0.1,
maximum=1.0,
value=0.95,
step=0.05,
label="Top-p (nucleus sampling)",
),
],
)
if __name__ == "__main__":
demo.launch()