회의록: 전사 토큰·임직원 명단 퍼지 매칭 후 LLM에 표기 통일 블록만 주입
Made-with: Cursor
This commit is contained in:
87
.env.example
87
.env.example
@@ -1,48 +1,23 @@
|
||||
# DEV: 개발 | PROD: 운영(임직원 이메일 로그인, 구 REAL) | SUPER: 데모·제한 완화
|
||||
OPS_STATE=DEV
|
||||
# 환경
|
||||
OPS_STATE=PROD # DEV: 개발 | PROD: 운영(임직원 이메일 로그인) | SUPER: 데모·제한 완화 (REAL 은 PROD 와 동일)
|
||||
|
||||
PORT=8030
|
||||
# HTTP 수신 주소 (기본 0.0.0.0 = 모든 인터페이스, 로컬만이면 127.0.0.1)
|
||||
HOST=0.0.0.0
|
||||
ADMIN_TOKEN=xavis-admin
|
||||
# --- OPS_STATE=PROD: 매직 링크 이메일 (앱 서버가 아웃바운드로 TCP 연결 가능한 SMTP만 동작)
|
||||
# BASE_URL=https://실제-도메인
|
||||
# AUTH_SECRET=운영용-비밀값
|
||||
# 사내 전용 게이트웨이(gw.* 등)는 클라우드에서 587이 ECONNREFUSED로 막히는 경우가 많음 →
|
||||
# Google Workspace SMTP 릴레이(smtp-relay.gmail.com + 발신 IP 허용), SendGrid, SES 등 사용 권장.
|
||||
# SMTP_HOST=smtp-relay.gmail.com
|
||||
# SMTP_PORT=587
|
||||
# SMTP_SECURE=0
|
||||
# SMTP_USER=
|
||||
# SMTP_PASS=
|
||||
# SMTP_FROM=noreply@xavis.co.kr
|
||||
# 선택: 587에서 STARTTLS 강제(기본 on). 특수 서버만 0
|
||||
# SMTP_REQUIRE_TLS=1
|
||||
# 이메일 로그인 세션: 로그인한 달력일(OPS_SESSION_TZ) + OPS_SESSION_TTL_DAYS일의 23:59:59까지(기본 15일)
|
||||
# OPS_SESSION_TZ=Asia/Seoul
|
||||
# OPS_SESSION_TTL_DAYS=15
|
||||
PAGE_SIZE=9
|
||||
# 학습센터 동영상 파일 업로드 최대 크기(MB, 기본 500). 리버스 프록시(Nginx 등)의 client_max_body_size도 같이 늘려야 합니다.
|
||||
LECTURE_VIDEO_MAX_MB=500
|
||||
# 대시보드 메뉴·경로 허용 이메일(OPS 로그인 @xavis.co.kr), 쉼표 구분. 비우면 대시보드 비표시
|
||||
DASHBOARD_MENU_ALLOWED_EMAILS=hmjin@xavis.co.kr,dsyoon@xavis.co.kr
|
||||
# DEV에서만: 관리자 모드일 때 MEETING_DEV_EMAIL을 허용 목록과 대조(로컬 테스트). 운영에서는 미설정 권장
|
||||
# DASHBOARD_MENU_DEV_USE_MEETING_EMAIL=1
|
||||
|
||||
# 1=PostgreSQL 단일 소스, 0=data/lectures.json 사용
|
||||
ENABLE_POSTGRES=1
|
||||
DB_HOST=your-db-host
|
||||
DB_HOST=localhost
|
||||
DB_PORT=5432
|
||||
DB_DATABASE=your_database
|
||||
DB_USERNAME=your_user
|
||||
DB_PASSWORD=your_password
|
||||
DB_DATABASE=ai_web_platform
|
||||
DB_USERNAME=xavis
|
||||
DB_PASSWORD=wkqltm@@00492
|
||||
|
||||
# DB 연결이 없거나 실패하면 회의록 AI는 data/meeting-ai.json에 저장됩니다(로컬 개발에 유용).
|
||||
# 회의 음성 업로드 최대 크기(MB, 기본 300). OpenAI 전사 API는 요청당 약 25MB이므로 초과분은 서버에서 ffmpeg로 분할 후 전사합니다.
|
||||
MEETING_AUDIO_MAX_MB=300
|
||||
# 회의록 저장 후 OpenAI JSON으로 체크리스트 추출 → 업무 체크리스트 자동 반영 (1=기본, 0=비활성)
|
||||
MEETING_AUTO_CHECKLIST=1
|
||||
# 추출 시 회의록 본문 최대 길이(문자). 긴 경우 끝부분(체크리스트가 뒤에 있을 때)만 사용
|
||||
MEETING_CHECKLIST_EXTRACT_MAX_CHARS=24000
|
||||
|
||||
ENABLE_PPT_THUMBNAIL=1
|
||||
THUMBNAIL_WIDTH=1000
|
||||
THUMBNAIL_MAX_RETRY=2
|
||||
@@ -50,12 +25,26 @@ THUMBNAIL_RETRY_DELAY_MS=5000
|
||||
THUMBNAIL_EVENT_KEEP=200
|
||||
THUMBNAIL_EVENT_PAGE_SIZE=50
|
||||
|
||||
|
||||
[인증 메일 정보]
|
||||
BASE_URL=https://ai.xavis.co.kr # 메일 속 링크에 사용
|
||||
AUTH_SECRET=xavis-admin # 세션 서명 (ADMIN_TOKEN 폴백 가능)
|
||||
# 메일 발송 (선택, 없으면 콘솔에 링크만)
|
||||
SMTP_HOST=gw.xavis.co.kr
|
||||
SMTP_PORT=25
|
||||
SMTP_SECURE=0
|
||||
SMTP_USER=dsyoon
|
||||
SMTP_PASS=!xavis5004
|
||||
SMTP_FROM=dsyoon@xavis.co.kr
|
||||
|
||||
|
||||
[채팅 기능 정보]
|
||||
# 채팅 기능용 API 키
|
||||
# OpenAI: https://platform.openai.com/api-keys
|
||||
OPENAI_API_KEY=
|
||||
OPENAI_API_KEY=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
|
||||
# 선택: UI의 gpt-5.4 / gpt-5-mini에 대응하는 실제 Chat Completions 모델 ID (미설정 시 gpt-4o / gpt-4o-mini)
|
||||
# OPENAI_MODEL_DEFAULT=gpt-4o
|
||||
# OPENAI_MODEL_MINI=gpt-4o-mini
|
||||
OPENAI_MODEL_DEFAULT=gpt-5-mini
|
||||
OPENAI_MODEL_MINI=gpt-5-mini
|
||||
# OpenAI Responses API 내장 웹 검색(기본 on). 끄려면 아래 주석 해제 후 0
|
||||
# OPENAI_WEB_SEARCH=0
|
||||
# 웹 검색 위치 힌트(선택)
|
||||
@@ -63,16 +52,26 @@ OPENAI_API_KEY=
|
||||
# OPENAI_WEB_SEARCH_CITY=
|
||||
# OPENAI_WEB_SEARCH_REGION=
|
||||
# OPENAI_WEB_SEARCH_TIMEZONE=Asia/Seoul
|
||||
# gpt-4o 전사 API: 요청당 오디오+토큰 한도 → ffmpeg 분할 길이(초). 짧을수록 안전(호출 수 증가)
|
||||
OPENAI_TRANSCRIBE_SEGMENT_SEC=30
|
||||
|
||||
# Anthropic Claude (claude-*): https://console.anthropic.com/
|
||||
CLAUDE_API_KEY=
|
||||
# Google Gemini (gemini-*): https://aistudio.google.com/apikey
|
||||
GENAI_API_KEY=
|
||||
|
||||
# OPS_STATE=DEV + 관리자 토큰일 때 회의록 AI 등에 쓸 가상 사용자 이메일 (미설정 시 dev@xavis.co.kr)
|
||||
# MEETING_DEV_EMAIL=you@example.com
|
||||
# SUPER 모드에서 회의록·체크리스트용 데모 사용자 이메일 (미설정 시 MEETING_DEV_EMAIL 또는 demo@xavis.local)
|
||||
# MEETING_SUPER_EMAIL=demo@xavis.local
|
||||
# 회의록 음성 전사 기본 모델 (미설정 시 gpt-4o-mini-transcribe)
|
||||
# OPENAI_WHISPER_MODEL=gpt-4o-mini-transcribe
|
||||
# gpt-4o 전사 API: 요청당 오디오 토큰 한도 → ffmpeg 분할 길이(초, 15~600, 기본 120). 한도 오류 시 30 또는 15
|
||||
# OPENAI_TRANSCRIBE_SEGMENT_SEC=30
|
||||
|
||||
|
||||
[회의록 기능 정보]
|
||||
# 임직원 명단(회의록 인명 정규화). 기본 data/meeting-employee-names.txt 한 줄에 한 이름(또는 쉼표 구분)
|
||||
# MEETING_EMPLOYEE_NAMES_FILE=./data/meeting-employee-names.txt
|
||||
# 0 이면 전사→명단 퍼지 매칭 블록 비활성화
|
||||
# MEETING_NAME_NORMALIZATION=1
|
||||
# 관리자 토큰일 때 회의록 AI 등에 쓸 가상 사용자 이메일 (미설정 시 dev@xavis.co.kr)
|
||||
EETING_DEV_EMAIL=dsyoon@xavis.co.kr
|
||||
# 선택: Whisper 전사 모델 (기본 whisper-1)
|
||||
OPENAI_WHISPER_MODEL=gpt-4o-mini-transcribe
|
||||
MEETING_DEV_EMAIL=dsyoon@xavis.co.kr
|
||||
|
||||
[경영성과 대시보드]
|
||||
DASHBOARD_MENU_ALLOWED_EMAILS=hmjin@xavis.co.kr,dsyoon@xavis.co.kr
|
||||
|
||||
Reference in New Issue
Block a user