Wenlan
Wenlan is a source-backed AI knowledge base and LLM wiki for AI work: organize documents and decisions into pages you can find, inspect, and review.
翻訳待ち
No updates detected yet. GitHub releases will appear here.
Loading the full README. The saved excerpt is shown below.
voice-agent-v3-2 — голосовий асистент з прямими Google API (без n8n) Статус: міграція з n8n → Google Calendar + Gmail OAuth (локальний desktop MVP) Голосовий асистент: wake word → voice engine (VOICE_ENGINE=live — основний, або realtime — запасний) → локальний Agent Router → Google Calendar / Gmail / нотатки (Drive+Docs) через OAuth Desktop flow. n8n і зовнішній agent-ecosystem не потрібні.Read the full README ↗
Голосовий асистент, з яким можна говорити як з людиною. Він бачить ваш Google Календар, пошту й нотатки, вміє шукати в інтернеті й виконує прохання голосом: «що в мене завтра?», «запиши зустріч з Олегом на п'ятницю о 15:00», «чи є нові листи від бухгалтерії?», «додай у нотатки ідею для демо».
Працює у двох варіантах: десктопна програма з wake word і веб-версія для команди, яку достатньо відкрити в браузері.
🎙️ Спробуйте просто зараз: voice-agents-web-three.vercel.app. Нічого встановлювати не треба, достатньо браузера й мікрофона.
VOICE_ENGINE=realtime).BACKGROUND_LISTENING=false на десктопі.Кожен користувач входить своїм Google-акаунтом. Сторонні сервіси на кшталт n8n не потрібні: агент звертається до Google API напряму.
Браузер (web/, Vercel) ──WebRTC: мікрофон і звук──► OpenAI GPT-Live
│ ▲
│ SDP-оффер, вхід у Google │ sideband (інструменти)
▼ │
Бекенд (server/, Render) ────────────────────────────────┘
└─ Google Calendar / Gmail / нотатки, вебпошук
Wake word «Єва, скажи» → голосова сесія → локальний Agent Router → Google API. Мікрофон, VAD і захист від ехо локальні, токени Google зберігаються в Windows Credential Manager.
Десктоп (main.py) | Веб | |
|---|---|---|
| Запуск розмови | «Єва, скажи» | кнопка «Почати розмову», далі «Єва, скажи» |
| Пауза | «Дякую, Єва» | «Дякую, Єва» або кнопка «Пауза» |
| Звук | локальний мікрофон, VAD, власний захист від ехо | WebRTC у браузері |
| Вхід у Google | OAuth Desktop-клієнт, вікно на тому ж ПК | OAuth Web-клієнт, редірект на бекенд |
| Токени | Windows Credential Manager | пам'ять сервера |
voice/wake_phrases.py, їхня копія для сайту
в web/app.js (тест tests/test_eva_phrases_js.py стежить, щоб вони не розійшлися).voice/conversation.py → Live input). Історію
веде бекенд (сайт) або Assistant (десктоп); «Нова розмова» чи вихід з Google її стирають.set_voice_style, панель на сайті). Тембру й
точної швидкості GPT-Live не має. Гучність — повзунок на сторінці. «Прослухати» грає
зразки з web/samples/.RUN_LIVE_TESTS=1 pytest -q -k live_memory.| Шлях | Призначення |
|---|---|
main.py, assistant.py | десктопний застосунок: життєвий цикл (сон ↔ сесія), пам'ять, спільні хелпери інструментів |
voice/ | драйвери голосових рушіїв (live_driver.py, realtime_driver.py), логіка перебивання, налаштування голосу й мови |
router/agent_router.py | локальний роутер: вільний текст → інтенти |
tools/ | схеми інструментів для Live і Realtime, міст до роутера, вебпошук |
server/ | бекенд веб-версії (FastAPI) |
web/ | фронтенд веб-версії (статичні файли) |
render.yaml, requirements-server.txt | деплой бекенду на Render |
DEPLOY.md | покрокова інструкція з розгортання веб-версії |
Відкрийте voice-agents-web-three.vercel.app → «Почати розмову» → дозвольте мікрофон → говоріть. Щоб агент бачив календар і пошту, натисніть «Підключити Google». Якщо Google попередить, що застосунок не перевірено: «Додатково» → «Перейти до …».
Коротко: OAuth-клієнт Web application у Google Cloud → бекенд на Render (Blueprint з render.yaml) → фронтенд на Vercel (Root Directory = web). Деталі — у DEPLOY.md.
Змінні середовища бекенду:
| Змінна | Опис |
|---|---|
OPENAI_API_KEY | ключ OpenAI |
PUBLIC_BACKEND_URL | публічна адреса бекенду, без / у кінці |
FRONTEND_ORIGINS | адреса(и) фронтенду через кому |
GOOGLE_OAUTH_WEB_CLIENT_ID / GOOGLE_OAUTH_WEB_CLIENT_SECRET | дані Web OAuth-клієнта |
ACCESS_CODE | пароль на сторінку; порожнє значення = доступ для всіх, у кого є посилання |
WEB_SEARCH_API_KEY | ключ Tavily (необов'язково) |
GOOGLE_CALENDAR_TIMEZONE | часовий пояс, за замовчуванням Europe/Kyiv |
uv sync --group server
# .env: OPENAI_API_KEY, PUBLIC_BACKEND_URL=http://localhost:8000,
# GOOGLE_OAUTH_WEB_CLIENT_ID/SECRET (redirect http://localhost:8000/auth/google/callback)
.venv/Scripts/python.exe -m uvicorn server.app:app --port 8000
# фронтенд
python -m http.server 5173 -d web
# відкрити http://localhost:5173/?backend=http://localhost:8000