/
Vlaga
/
Archie_Robot
Обзор
Документация
Войти
/
Vlaga
/
Archie_Robot
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
main.py
76 строк
3 KB
Vlaga
upload files
11 фев 2026, 19:25
Верифицирован
11 фев 2026, 19:25
479a33b
Код
Авторство
О чём код?
import threading import time import sys from memory import memory, save_memory from voice import say, get_kent_answer, get_random_initiative from brain import ask_gigachat # Таймер для инициативы last_active = time.time() def check_loneliness(): """Фоновый поток: Арчи сам заговорит, если ты молчишь 40 секунд""" global last_active while True: time.sleep(5) idle = time.time() - last_active if 40 < idle < 46: say(get_random_initiative()) last_active = time.time() # Сбрасываем таймер def start_archie(): global last_active u_name = memory.get("name", "Друг") # Приветствие при запуске if u_name == "Друг": say("Опа! Системы чистые. Я — Арчи. Как тебя звать, бро?") new_name = input("Имя: ").strip().capitalize() memory["name"] = new_name save_memory(memory) u_name = new_name say(f"Запомнил! Теперь ты в базе, {u_name}.") else: say(f"Привет, {u_name}! Я в строю. Все системы Luckfox в норме.") # Запускаем поток инициативы threading.Thread(target=check_loneliness, daemon=True).start() # Основной цикл общения while True: try: # Чистый ввод без лишних стрелочек user_input = input(f"[{u_name}] >> ").strip() # Сброс таймера активности last_active = time.time() if not user_input: continue # 1. Сначала локальные ответы (из voice.py) local_ans = get_kent_answer(user_input) if local_ans: say(local_ans) continue # 2. Обучение (запись интересов) if any(x in user_input.lower() for x in ["люблю", "нравится"]): if "арчи" not in user_input.lower(): memory["likes"].append(user_input) save_memory(memory) say("Записал в локальную память. Теперь я это знаю.") continue # 3. Нейросеть (из brain.py) print("Арчи обращается к облачному мозгу...") answer = ask_gigachat(user_input, u_name, memory.get("likes", [])) say(answer) except KeyboardInterrupt: print("\nВыключение Арчи...") sys.exit() if __name__ == "__main__": start_archie()