Last active
July 30, 2021 13:02
-
-
Save sshaplygin/4b4c47345a064c04c4af39538ad93c4d to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import requests | |
query = 'Только не по лицу' | |
genre = 10 | |
def get_genres(): | |
""" | |
Функция отправляет запрос к Балабобе, | |
и получает в ответ список жанров. | |
""" | |
genres_url = 'https://zeapi.yandex.net/lab/api/yalm/intros' | |
try: | |
response = requests.get(genres_url) | |
response = response.json() | |
intros_key = 'intros' | |
if intros_key not in response: | |
print(f'Изменился ответ от {genres_url}. Не удалось найти поле: {intros_key}!') | |
return [] | |
genres_list = response[intros_key] | |
except: | |
print('Во время выполнения функции get_genres() возникла ошибка!') | |
genres_list = [] | |
return genres_list | |
required_genre_len = 3 | |
def print_genres(genres_list): | |
""" | |
Печатает в форматированном виде список доступных жанров, | |
полученный из функции get_genres() | |
genres: ответ от функции get_genres(), который нужно распечатать | |
""" | |
print("Список жанров, в которых можно продолжить фразу:") | |
for genre in genres_list: | |
if len(genre) != required_genre_len: | |
print('Элемент genre списка genres_list имеет некоректную длину. Ожидалась длина равная 3.') | |
continue | |
print(f'{genre[0]} - {genre[1]} - {genre[2]}') | |
def generate_text(query, genre): | |
""" | |
Функция отправляет POST-запрос к Балабобе, | |
и получает ответ в виде словаря. | |
Параметры POST-запроса: | |
query: ключевая фраза | |
genre: id жанра, в котором Балабоба должен сгенерировать текст | |
""" | |
generate_url = 'https://zeapi.yandex.net/lab/api/yalm/text3' | |
data = { | |
"query": query, | |
"intro": genre | |
} | |
try: | |
response = requests.post(generate_url, json=data) | |
dict_response = response.json() | |
except: | |
print('Во время выполнения функции generate_text() возникла ошибка!') | |
dict_response = {} | |
return dict_response | |
def print_text(text_dict): | |
""" | |
Печатает текст ответа в форматированном виде. | |
dict_response: ответ на запрос в виде словаря | |
""" | |
print('\n' + 'Ответ на ваш запрос:' + '\n') | |
query_field = 'query' | |
text_field = 'text' | |
if query_field not in text_dict or text_field not in text_dict: | |
nessesary_fields = [] | |
if query_field not in text_dict: | |
nessesary_fields.append(query_field) | |
if text_field not in text_dict: | |
nessesary_fields.append(text_field) | |
print(f'text_dict не содержит необходимые поля: {", ".join(nessesary_fields)}') | |
return | |
print(f'{text_dict[query_field]}{text_dict[text_field]}') | |
genres_list = get_genres() | |
print_genres(genres_list) | |
text_dict = generate_text(query, genre) | |
print_text(text_dict) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment