尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
Shifoxonalarda bemorlarning fikr-mulohaza va shikoyatlarini QR-kod orqali to'liq anonim tarzda yig'ib, sun'iy intellekt yordamida tahlil qiluvchi va tegishli bo'limga yo'naltiruvchi platforma. Umummilliy AI Xakaton (Xorazm, 2026) uchun.查看完整 README ↗
Shifoxonalarda bemorlarning fikr-mulohaza va shikoyatlarini QR-kod orqali to'liq anonim tarzda yig'ib, sun'iy intellekt yordamida tahlil qiluvchi va tegishli bo'limga yo'naltiruvchi platforma. Umummilliy AI Xakaton (Xorazm, 2026) uchun.
/dashboard); bemor tomonida
hech qanday autentifikatsiya yo'qsrc/lib/ai) — hozircha Gemini
(gemini-3.6-flash) ulangan; AI_PROVIDER=anthropic + ANTHROPIC_API_KEY
qo'yilsa, kod o'zgarishsiz Claude'ga o'tadisrc/lib/conversation),
matn ham, ovoz ham shuni ishlatadi. Gemini (gemini-3.6-flash, structured output) faqat
maydonlarni ajratadi va javob matnini yozadi; bosqichlar, savollar chegarasi (max 3) va
tasdiqlash serverda kod bilan boshqariladisrc/lib/voice) — NeuronAI asosiy (VOICE_PROVIDER),
ishlamasa yoki balansi tugasa VoiceLab'ga avtomatik o'tadi. Ovoz suhbat mantig'iga
qo'shilmaydi: STT matn beradi, motorning matn javobi TTS bilan o'qiladiPushNotificationBanner, Sozlamalar). Telegram bilan parallel ishlaydi
(src/lib/push, public/sw.js)qrcode + @react-pdf/renderersrc/lib/createFeedback.tsdagi bitta pipeline'ni ishlatadinpm install
npm run dev
.env.local allaqachon barcha kalitlar bilan to'ldirilgan (MongoDB, Gemini, Firebase
web config + Admin SDK, VoiceLab). Ixtiyoriy qolgan narsa:
ANTHROPIC_API_KEY — agar Claude'ga o'tmoqchi bo'lsangiz (AI_PROVIDER=anthropic)CONVERSATION_SECRET — suhbat holati tokenini imzolaydi (openssl rand -hex 32)NEXT_PUBLIC_VAPID_PUBLIC_KEY, VAPID_PRIVATE_KEY, VAPID_SUBJECT — panel bildirishnomalari
uchun (npx web-push generate-vapid-keys); public kalit build vaqtida kerakTo'liq ro'yxat uchun .env.examplega qarang.
# Bitta hospital + 3 ta bo'lim yaratadi, /f/... havolalarini chop etadi
npm run seed
# Firebase Auth foydalanuvchisini (Console orqali yaratilgan) MongoDB Staff bilan bog'laydi
node --env-file=.env.local scripts/create-staff.mjs [email protected] "Ism Familiya"
Login qilish uchun avval Firebase Console > Authentication'da foydalanuvchi (email + parol) yaratish kerak — o'zi ro'yxatdan o'tish yo'q (spetsifikatsiya talabi).
npm run test # Vitest — suhbat motori, holat tokeni, ovoz VAD/failover, retry, tracking code
# Gemini prompt sifati (haqiqiy API, kvota sarflaydi):
LIVE_GEMINI=1 node --env-file=.env.local node_modules/.bin/vitest run src/lib/conversation/live.eval.test.ts
npm run lint # ESLint
npx tsc --noEmit
npm run build # production build
src/app/f/[hospitalId]/[departmentId] — bemor formasi (autentifikatsiyasiz)src/app/dashboard — xodimlar paneli (Firebase Auth talab qilinadi)src/app/(marketing) (/, /narxlar) — bosh sahifa va narxlarsrc/lib/ai — provayderdan mustaqil AI qatlami (Gemini/Anthropic)src/lib/voice — STT/TTS qatlami, VoiceLab → NeuronAI avtomatik fallback bilansrc/lib/conversation — suhbat motori: engine.ts (state machine), model.ts (Gemini),
token.ts (imzolangan holat), finalize.ts (tasdiqlangach yuborish)src/components/patient — ConversationView (matn va ovoz uchun umumiy chat),
TextComposer, VoiceControls (mikrofon/orb, STT/TTS)src/lib/createFeedback.ts — yagona feedback-yaratish pipeline (web forma +
ikkala Telegram bot shu bittasini chaqiradi)src/lib/telegram — ikkala botning grammY logikasi (staffBot.ts,
patientBot.ts, notifyStaff.ts)src/app/api/telegram — webhook route'lar, staff link-token API, digest cronsrc/models — Mongoose sxemalari (Hospital, Department, Staff, Feedback, Lead,
TelegramLinkToken, TelegramNotification)scripts/ — seed va staff-yaratish skriptlariissueTag (masalan dori_vaqtida_berilmadi) beradi; dashboard bir xil tag +
bo'lim bo'yicha 14 kunlik oynada 3+ xabarni "tizimli muammo" deb belgilaydi.
Oddiy, tez va tushunarli — embedding pipeline shart emas.So'rov yuborish /
Aloqaga chiqish) — dizaynga va spetsifikatsiyaga mos, checkout yo'q.withRetry 503/429 kabi vaqtinchalik xatolarni
backoff bilan qayta uradi; agar baribir muvaffaqiyatsiz bo'lsa, xabar "o'rta"
jiddiylik bilan saqlanadi — bemor hech qachon xabarini yo'qotmaydi./api/voice/stt audio baytlarini faqat so'rov davomida
xotirada ushlaydi, diskka yoki DB'ga yozmaydi — javob qaytgach yo'qoladi.