Add Ask Mento, customer mood, and Pipecat speech-to-text.
Ship assistant answers, contact moods, voice dictation, and the related CRM UI so these can be deployed to production. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -33,3 +33,9 @@ AI_BASE_URL=https://api.gapgpt.app/v1
|
||||
AI_API_KEY=change-me
|
||||
AI_MODEL=gpt-4o-mini
|
||||
AI_TIMEOUT_MS=45000
|
||||
|
||||
# Speech-to-text — Pipecat sidecar on 127.0.0.1:3040 (not public)
|
||||
STT_ENABLED=true
|
||||
STT_URL=http://127.0.0.1:3040
|
||||
STT_INTERNAL_TOKEN=change-me-stt-internal-token
|
||||
STT_TIMEOUT_MS=60000
|
||||
|
||||
+28
-7
@@ -8,7 +8,9 @@ PM2: `mento-crm-api` (cwd: `apps/api`، اسکریپت: `dist/src/main.js`)
|
||||
کد از Gitea: `http://get.feep.ir/Mahdi/CRM_Montzar.git`
|
||||
|
||||
پورتهای اشغالشده روی همین سرور (دست نزنید):
|
||||
۳۰۰۰ مونتایم · ۳۰۰۱ فوریسند · ۳۰۱۰ سوپرادمین · ۳۰۲۰ کاتالوگ
|
||||
۳۰۰۰ مونتایم · ۳۰۰۱ فوریسند · ۳۰۱۰ سوپرادمین · ۳۰۲۰ کاتالوگ
|
||||
|
||||
پورت داخلی STT (فقط localhost، عمومی نکنید): **۳۰۴۰** — PM2 `mento-stt`
|
||||
|
||||
---
|
||||
|
||||
@@ -116,7 +118,22 @@ mkdir -p uploads
|
||||
# اختیاری یکبار: npm run db:seed
|
||||
```
|
||||
|
||||
### ۶) PM2 — فقط پروسهٔ جدید
|
||||
### ۶) تبدیل صوت به متن (Pipecat)
|
||||
|
||||
فقط STT. روی سرور Python 3.11+ لازم است.
|
||||
|
||||
```bash
|
||||
cd /var/www/crm/apps/stt
|
||||
python3.11 -m venv .venv
|
||||
.venv/bin/pip install -r requirements.txt
|
||||
cp .env.example .env
|
||||
nano .env
|
||||
```
|
||||
|
||||
`OPENAI_API_KEY` و `OPENAI_BASE_URL` را مثل `AI_*` در `apps/api/.env` بگذارید.
|
||||
`STT_INTERNAL_TOKEN` باید با مقدار همین کلید در `apps/api/.env` یکی باشد.
|
||||
|
||||
### ۷) PM2 — فقط پروسههای جدید
|
||||
|
||||
پروسههای موجود را stop نکنید.
|
||||
|
||||
@@ -125,11 +142,12 @@ pm2 start /var/www/crm/deploy/ecosystem.config.cjs
|
||||
pm2 save
|
||||
pm2 list
|
||||
curl -sI http://127.0.0.1:3030/api/health
|
||||
curl -s http://127.0.0.1:3040/health
|
||||
```
|
||||
|
||||
باید `200` بیاید. خطا: `pm2 logs mento-crm-api --lines 80`
|
||||
باید `200` بیاید. خطا: `pm2 logs mento-crm-api --lines 80` یا `pm2 logs mento-stt --lines 80`
|
||||
|
||||
### ۷) Nginx
|
||||
### ۸) Nginx
|
||||
|
||||
```bash
|
||||
sudo cp /var/www/crm/deploy/nginx-crm.montzar.ir.conf /etc/nginx/sites-available/crm.montzar.ir
|
||||
@@ -140,7 +158,7 @@ sudo nginx -t && sudo systemctl reload nginx
|
||||
**HTTPS روی همین باکس:** مثل `ktg.montzar.ir`، فرانتپروکسی (`91.247.174.1`) SSL را تمام میکند و به این سرور **HTTP :80** میزند.
|
||||
اگر Certbot روی این vhost `return 404` یا فقط HTTPS بگذارد، سایت از بیرون قطع میشود — vhost را روی الگوی HTTP نگه دارید (فایل `deploy/nginx-crm.montzar.ir.conf`).
|
||||
|
||||
### ۸) تست
|
||||
### ۹) تست
|
||||
|
||||
1. `https://crm.montzar.ir` → ورود پنل
|
||||
2. دمو: `owner@demo.local` / `demo1234` (اگر seed زده باشید)
|
||||
@@ -165,6 +183,9 @@ cd apps/api && npx prisma migrate deploy && npx prisma generate && cd ../..
|
||||
npm run build -w @mento/api
|
||||
npm run build -w @mento/web
|
||||
pm2 restart mento-crm-api
|
||||
# اگر requirements.txt عوض شد:
|
||||
# cd apps/stt && .venv/bin/pip install -r requirements.txt && cd ../..
|
||||
pm2 restart mento-stt
|
||||
```
|
||||
|
||||
پاک نکنید: `uploads/` و `apps/api/.env`
|
||||
@@ -212,7 +233,7 @@ grep -c AutomationAction /var/www/crm/node_modules/@mento/shared/dist/index.d.ts
|
||||
| این پروژه | بقیه — دست نزنید |
|
||||
|---|---|
|
||||
| دامنه `crm.montzar.ir` | `ktg` / `adm` / مونتایم |
|
||||
| پورت ۳۰۳۰ | ۳۰۰۰ / ۳۰۰۱ / ۳۰۱۰ / ۳۰۲۰ |
|
||||
| PM2 نام `mento-crm-api` | پروسههای موجود |
|
||||
| پورت ۳۰۳۰ و ۳۰۴۰ (STT فقط localhost) | ۳۰۰۰ / ۳۰۰۱ / ۳۰۱۰ / ۳۰۲۰ |
|
||||
| PM2 نام `mento-crm-api` و `mento-stt` | پروسههای موجود |
|
||||
| `/var/www/crm` | `/var/www/ktg` و … |
|
||||
| دیتابیس `mento_crm` روی `:15432` | Postgres مونتایم |
|
||||
|
||||
@@ -21,5 +21,16 @@ module.exports = {
|
||||
max_memory_restart: "600M",
|
||||
time: true,
|
||||
},
|
||||
{
|
||||
name: "mento-stt",
|
||||
cwd: "/var/www/crm/apps/stt",
|
||||
script: ".venv/bin/python",
|
||||
args: "-m uvicorn main:app --host 127.0.0.1 --port 3040",
|
||||
interpreter: "none",
|
||||
instances: 1,
|
||||
exec_mode: "fork",
|
||||
max_memory_restart: "500M",
|
||||
time: true,
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user