uhygfd commited on
Commit
fcac8bc
1 Parent(s): 8507427

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +31 -30
app.py CHANGED
@@ -1,37 +1,38 @@
1
- from chatterbot import ChatBot
2
- from chatterbot.trainers import ListTrainer
3
  import gradio as gr
4
 
5
- # Создание экземпляра бота
6
- chatbot = ChatBot('WikiBot')
7
-
8
- # Обучение бота
9
- trainer = ListTrainer(chatbot)
10
-
11
- # Загрузка данных из файла dataset.txt
12
- with open('dataset.txt', 'r', encoding='utf-8') as file:
13
- data = file.readlines()
14
-
15
- # Обучение бота данным из файла
16
- trainer.train(data)
17
-
18
- # Функция для получения ответа от бота
19
- def get_response(query):
20
- response = chatbot.get_response(query)
21
- return str(response)
22
-
23
- # Функция для обработки ввода пользователя
24
- def chat_with_bot(user_input):
25
- return get_response(user_input)
26
-
27
- # Создание Gradio интерфейса
28
- interface = gr.Interface(
29
- fn=chat_with_bot,
 
 
30
  inputs="text",
31
  outputs="text",
32
- title="WikiBot",
33
- description="Введите ваш вопрос и получите ответ от бота, обученного на данных из Википедии."
34
  )
35
 
36
  # Запуск интерфейса
37
- interface.launch()
 
1
+ import spacy
 
2
  import gradio as gr
3
 
4
+ # Загрузка модели spaCy
5
+ nlp = spacy.load("ru_core_news_md") # или "ru_core_news_md" для русского языка
6
+
7
+ # Функция для загрузки статей из файла
8
+ def load_articles(file_path):
9
+ with open(file_path, "r", encoding="utf-8") as f:
10
+ articles = f.readlines()
11
+ return [article.strip() for article in articles]
12
+
13
+ # Функция для нахождения самой релевантной статьи
14
+ def find_most_relevant_article(query, articles):
15
+ query_doc = nlp(query)
16
+ similarities = [(article, query_doc.similarity(nlp(article))) for article in articles]
17
+ most_relevant_article = max(similarities, key=lambda x: x[1])
18
+ return most_relevant_article[0]
19
+
20
+ # Загрузка статей из файла
21
+ file_path = "dataset.txt"
22
+ articles = load_articles(file_path)
23
+
24
+ # Определение функции для интерфейса Gradio
25
+ def get_relevant_article(query):
26
+ return find_most_relevant_article(query, articles)
27
+
28
+ # Создание интерфейса Gradio
29
+ iface = gr.Interface(
30
+ fn=get_relevant_article,
31
  inputs="text",
32
  outputs="text",
33
+ title="Поиск релевантных статей из Википедии",
34
+ description="Введите запрос, чтобы найти самую релевантную статью из датасета."
35
  )
36
 
37
  # Запуск интерфейса
38
+ iface.launch()