Голосовой помощник Python — ответы чата перекрываются с командами ⇐ Python
Голосовой помощник Python — ответы чата перекрываются с командами
Справочная информация Я разрабатываю личного помощника Python с функцией чат-бота. Однако я столкнулся с проблемой, когда ответы чата иногда перекрываются с другими командами, что приводит к неожиданному поведению. В частности, когда я прошу пошутить, команда шутки работает по назначению, но после этого также произносится ответ в чате, что не является желаемым поведением.
Описание проблемы Проблема возникает непоследовательно, что затрудняет выявление четкой закономерности. При выполнении определенных команд, например, просьбы пошутить, соответствующие ответы озвучиваются, как и ожидалось. Однако ответ чат-бота, похоже, срабатывает позже, что приводит к совпадению с выводом предыдущей команды.
Пример кода
if __name__ == "__main__": очистить = лямбда: os.system("cls") # Эта функция очистит любые # команда перед выполнением этого файла Python прозрачный() mystical_greet() пока правда: запрос = takeCommand().lower() если в запросе «википедия»: говорить("Поиск в Википедии...") запрос = query.replace("википедия", "") пытаться: результаты = wikipedia.summary(запрос, предложения=5) кроме wikipedia.DisambiguationError как e: talk("Существует несколько вариантов. Уточните, пожалуйста.") для i, опция в перечислении (e.options, start=1): говорить(f"{i}. {option}") choice = int(input("Введите число по вашему выбору: ")) результаты = wikipedia.summary(e.options[выбор - 1], предложения=5) кроме исключения как ошибки: проходить говорить("Согласно Википедии") говорить (результаты) Элиф "открыть YouTube" в запросе: говорить("Здесь вы переходите на Youtube") webbrowser.open("https://www.youtube.com") Элиф "youtube" в запросе: search_query = query.replace("youtube", "").strip() url_search = цитата (search_query) веб-браузер.open( f"https://www.youtube.com/results?search_ ... url_search}" ) Элиф «открой Google» в запросе: talk("Здесь вы заходите в Google\n") webbrowser.open("google.com") elif «открыть stackoverflow» в запросе: talk("Здесь вы переходите к потоку Stack Over. Приятного кодирования") webbrowser.open("stackoverflow.com") # остальные команды Элиф "шутка" в запросе: шутка = get_joke() говорить (шутка) # остальные команды Элиф "новости" в запросе: user_preference = get_user_preference() если «мир» в user_preference: get_news("мир") Элиф «национальный» в user_preference: get_news( "общий" ) # Вы можете настроить это на определенную категорию для индийских новостей Элиф «заголовки» в user_preference: get_news("верхние заголовки") еще: talk("Извините, я не смог понять ваши предпочтения. Пожалуйста, попробуйте еще раз.") elif "где находится" в запросе: query = query.replace("где находится", "") местоположение = запрос говорить("Пользователя попросили найти") говорить (место) webbrowser.open("https://www.google.nl/maps/place/" + location + "") # остальные команды еще: текст = цитата (запрос) имя бота = цитата (имя_помощника) url = f"https://api.popcat.xyz/chatbot?msg={tex ... e={botname}" пытаться: запрос = Requests.get(url) данные = запрос.json() вывод = данные["ответ"] говорить (вывод) кроме: говорить("Извините, я этого не понимаю") Я ожидаю, что личный помощник будет отвечать на команды без какого-либо дублирования. Чат-бот должен реагировать только на явный запрос или когда ни одна из других команд не выполняется, и не должен мешать выполнению других команд.
Справочная информация Я разрабатываю личного помощника Python с функцией чат-бота. Однако я столкнулся с проблемой, когда ответы чата иногда перекрываются с другими командами, что приводит к неожиданному поведению. В частности, когда я прошу пошутить, команда шутки работает по назначению, но после этого также произносится ответ в чате, что не является желаемым поведением.
Описание проблемы Проблема возникает непоследовательно, что затрудняет выявление четкой закономерности. При выполнении определенных команд, например, просьбы пошутить, соответствующие ответы озвучиваются, как и ожидалось. Однако ответ чат-бота, похоже, срабатывает позже, что приводит к совпадению с выводом предыдущей команды.
Пример кода
if __name__ == "__main__": очистить = лямбда: os.system("cls") # Эта функция очистит любые # команда перед выполнением этого файла Python прозрачный() mystical_greet() пока правда: запрос = takeCommand().lower() если в запросе «википедия»: говорить("Поиск в Википедии...") запрос = query.replace("википедия", "") пытаться: результаты = wikipedia.summary(запрос, предложения=5) кроме wikipedia.DisambiguationError как e: talk("Существует несколько вариантов. Уточните, пожалуйста.") для i, опция в перечислении (e.options, start=1): говорить(f"{i}. {option}") choice = int(input("Введите число по вашему выбору: ")) результаты = wikipedia.summary(e.options[выбор - 1], предложения=5) кроме исключения как ошибки: проходить говорить("Согласно Википедии") говорить (результаты) Элиф "открыть YouTube" в запросе: говорить("Здесь вы переходите на Youtube") webbrowser.open("https://www.youtube.com") Элиф "youtube" в запросе: search_query = query.replace("youtube", "").strip() url_search = цитата (search_query) веб-браузер.open( f"https://www.youtube.com/results?search_ ... url_search}" ) Элиф «открой Google» в запросе: talk("Здесь вы заходите в Google\n") webbrowser.open("google.com") elif «открыть stackoverflow» в запросе: talk("Здесь вы переходите к потоку Stack Over. Приятного кодирования") webbrowser.open("stackoverflow.com") # остальные команды Элиф "шутка" в запросе: шутка = get_joke() говорить (шутка) # остальные команды Элиф "новости" в запросе: user_preference = get_user_preference() если «мир» в user_preference: get_news("мир") Элиф «национальный» в user_preference: get_news( "общий" ) # Вы можете настроить это на определенную категорию для индийских новостей Элиф «заголовки» в user_preference: get_news("верхние заголовки") еще: talk("Извините, я не смог понять ваши предпочтения. Пожалуйста, попробуйте еще раз.") elif "где находится" в запросе: query = query.replace("где находится", "") местоположение = запрос говорить("Пользователя попросили найти") говорить (место) webbrowser.open("https://www.google.nl/maps/place/" + location + "") # остальные команды еще: текст = цитата (запрос) имя бота = цитата (имя_помощника) url = f"https://api.popcat.xyz/chatbot?msg={tex ... e={botname}" пытаться: запрос = Requests.get(url) данные = запрос.json() вывод = данные["ответ"] говорить (вывод) кроме: говорить("Извините, я этого не понимаю") Я ожидаю, что личный помощник будет отвечать на команды без какого-либо дублирования. Чат-бот должен реагировать только на явный запрос или когда ни одна из других команд не выполняется, и не должен мешать выполнению других команд.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Пульт дистанционного управления Android TV v2 вызывает голосовой помощник
Anonymous » » в форуме IOS - 0 Ответы
- 36 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Задача: создать прерываемый голосовой помощник с искусственным интеллектом
Anonymous » » в форуме Python - 0 Ответы
- 15 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Пульт дистанционного управления Android TV v2 вызывает голосовой помощник
Anonymous » » в форуме IOS - 0 Ответы
- 25 Просмотры
-
Последнее сообщение Anonymous
-