Skip to content

sinmb79/convai

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CONAI — 건설 AI 통합관리 플랫폼

소형 건설업체의 잡무 70%를 없애는 AI 시스템

현장소장이 직접 해야 할 판단은 그대로 두고, 매일 반복되는 행정 잡무·문서 작업·안전 관리를 AI가 처리합니다.

License: MIT Python Next.js Claude AI


이런 분께 필요합니다

  • ✅ 작업일보를 매일 손으로 쓰고 있다
  • ✅ 주간·월간 보고서 작성에 시간이 많이 걸린다
  • ✅ 검측요청서를 처음부터 매번 만들어야 한다
  • ✅ 날씨 때문에 공정이 꼬인 적이 있다
  • ✅ 건설 법규·시방서를 빠르게 찾고 싶다
  • ✅ 안전 TBM 자료를 매일 새로 만들기 번거롭다
  • ✅ 발주처에게 공사 현황을 실시간으로 보여주고 싶다
  • ✅ 준공도서 패키지를 한 번에 뽑고 싶다

전체 기능 구성

CONAI는 3단계(Phase)로 구성됩니다. 현재 Phase 1~3 모두 구현 완료 상태입니다.

Phase 1 — 기본 업무 자동화

기능 설명
📋 AI 작업일보 인원·작업내용 입력 → AI가 공식 일보 완성, PDF 출력
📅 Gantt 공정표 WBS 기반 공정표, CPM 주공정선 자동 계산
🌤 날씨 공정 경보 기상청 API 연동, 공종별 날씨 제약 자동 경보
🔬 AI 검측요청서 공종 선택 → KCS 기반 체크리스트 자동 생성, PDF 출력
📄 공정보고서 주간·월간 보고서 AI 초안 생성, PDF 출력
🧪 품질시험 관리 시험 기록, 합격/불합격 자동 판정, 합격률 통계
📚 법규 Q&A (RAG) 건설기술진흥법·산안법·KCS 시방서 즉시 검색
🏛 인허가 체크리스트 공종 입력 → AI가 필요 인허가 자동 도출
🤖 카카오 챗봇 카카오톡으로 일보 입력, 법규 질문
⚙️ 커스텀 설정 발주처 프로파일, 공종 라이브러리, JSON 내보내기

Phase 2 — AI 에이전트 4인방

각 에이전트는 독립된 역할을 가진 Claude AI 인스턴스입니다. 에이전트는 제안하고, 현장소장이 결정합니다.

에이전트 역할 주요 기능
🏗 GONGSA (공사) 공정 관리 매일 07:00 자동 브리핑, 공기 지연 감지, 날씨 연동 작업 조정 제안
🔬 PUMJIL (품질) 품질 관리 시공 전 체크리스트 자동 발송, 사진 1차 판독, 시험 기한 추적
🦺 ANJEON (안전) 안전 관리 위험 공정 사전 경보, TBM 자동 생성, 중대재해처벌법 Q&A
📝 GUMU (공무) 행정 관리 인허가 능동 추적, 기성청구 제안, 주간 보고서 초안

에이전트 협업 시나리오 — 여러 에이전트가 하나의 상황을 함께 처리합니다:

  • concrete_pour: 콘크리트 타설 당일 (GONGSA → PUMJIL → ANJEON)
  • excavation: 굴착 작업 당일 (GONGSA → ANJEON → PUMJIL)
  • weekly_report: 주간 보고 (GONGSA → PUMJIL → GUMU)

Phase 2 추가 기능:

기능 설명
📊 EVMS 공정 성과 지수 자동 계산 (PV·EV·AC·SPI·CPI)
📸 Vision AI L1 현장 사진 자동 분류, 공종·위치 태깅, 일보 자동 첨부
👷 Vision AI L2 안전모·안전조끼 착용 감지 (AI 1차 분석, 최종 판정은 책임자)
📍 위험구역 Geofence 굴착면·크레인 반경 등 위험구역 설정, 진입 감지 경보 (익명)

Phase 3 — 완전 자동화

기능 설명
📈 EVMS 완전 자동화 매일 자정 스냅샷 자동 생성, 공기 지연 AI 예측, 기성청구 금액 자동 산출
🌅 아침 브리핑 자동화 매일 07:00 GONGSA가 공정 브리핑 자동 생성
📦 준공도서 패키지 작업일보·품질시험·검측이력·인허가 → PDF 번들 ZIP 자동 생성
🔍 Vision AI L3 설계 도면 vs 현장 사진 비교 판독 (철근 배근, 거푸집 치수)
📐 설계도서 파싱 도면 이미지/텍스트에서 공종·수량·규격 자동 추출
📄 HWP 출력 보고서·일보를 한글(HWP) 형식으로 내보내기 (Pandoc 필요)
🏢 발주처 전용 포털 토큰 기반 읽기 전용 URL — 발주처가 공사 현황을 실시간 확인

시스템 구조

[현장소장]
    │
    ├── 카카오톡 ──────────────────────────────┐
    │                                          ↓
    └── 웹 대시보드 (Next.js) ──── CONAI Backend (FastAPI)
                                        │
                            ┌───────────┼───────────────────┐
                            │           │                   │
                       AI Engine    Core Engine          DB
                      (Claude)     8개 업무 모듈    (Supabase
                            │                      PostgreSQL
                     AI 에이전트                    + pgvector)
                    GONGSA / PUMJIL
                    ANJEON / GUMU

빠른 시작 (5분 세팅)

1단계: 필요한 것 준비하기

아래 서비스에서 API 키를 발급받으세요. (★ 표시가 없으면 선택사항입니다)

서비스 용도 발급처 가격
Anthropic AI 핵심 (일보·에이전트·Q&A) console.anthropic.com 사용량 기반
Supabase 데이터베이스 supabase.com 무료 플랜 있음
기상청 OpenAPI 날씨 예보 data.go.kr 완전 무료
Voyage AI 법규 검색 (RAG) voyageai.com 무료 크레딧 있음
카카오 챗봇 입력 채널 i.kakao.com 무료

💡 카카오 챗봇 없이도 웹 대시보드로 모든 기능을 사용할 수 있습니다.

💡 법규 Q&A를 사용하지 않는다면 Voyage AI 키가 없어도 됩니다.

2단계: 코드 다운로드

git clone https://github.com/sinmb79/convai.git
cd convai

3단계: 환경변수 설정

cp backend/.env.example backend/.env
cp frontend/.env.example frontend/.env.local

backend/.env 파일을 열고 실제 값으로 바꿔주세요:

SECRET_KEY=아무-랜덤-문자열-32자-이상
DATABASE_URL=Supabase에서-복사한-주소
SUPABASE_URL=https://xxx.supabase.co
SUPABASE_ANON_KEY=발급받은-키
SUPABASE_SERVICE_KEY=발급받은-서비스키
ANTHROPIC_API_KEY=sk-ant-...
KMA_API_KEY=기상청에서-발급받은-키
VOYAGE_API_KEY=pa-...  (RAG 사용 시)

frontend/.env.local 파일:

NEXT_PUBLIC_API_URL=http://localhost:8000

💡 SECRET_KEY는 아래 명령으로 만들 수 있습니다:

python -c "import secrets; print(secrets.token_hex(32))"

4단계: 실행하기

방법 A: Docker 사용 (가장 쉬운 방법, 추천)

Docker Desktop 설치 후:

# 전체 실행 (DB + 백엔드 + 프론트엔드 한번에)
docker compose up -d

# DB 테이블 생성 (최초 1회)
docker compose exec backend alembic upgrade head

방법 B: 직접 실행

터미널을 2개 열고:

# 터미널 1 — 백엔드
cd backend
python -m venv .venv
.venv\Scripts\activate        # Windows
# source .venv/bin/activate   # Mac/Linux
pip install -e .
alembic upgrade head
uvicorn app.main:app --reload
# 터미널 2 — 프론트엔드
cd frontend
npm install
npm run dev

5단계: 접속

주소 내용
http://localhost:3000 웹 대시보드
http://localhost:8000/docs 전체 API 목록 (Swagger UI)

첫 계정 만들기:

curl -X POST http://localhost:8000/api/v1/auth/register \
  -H "Content-Type: application/json" \
  -d '{
    "email": "admin@example.com",
    "password": "비밀번호",
    "name": "홍길동",
    "role": "admin"
  }'

DB 마이그레이션 안내

# Phase 1 테이블 생성
alembic upgrade 001

# Phase 2 테이블 추가 (에이전트·EVMS·Geofence)
alembic upgrade 002

# 또는 한번에 최신 버전으로
alembic upgrade head

웹 대시보드 화면 구성

서버 실행 후 http://localhost:3000 에 접속하면 사용할 수 있는 전체 화면 목록입니다.

공통 화면

화면 주소 설명
로그인 /login 이메일·비밀번호 로그인
대시보드 /dashboard 프로젝트별 요약, 오늘 날씨 경보
프로젝트 목록 /projects 현장 목록, 신규 프로젝트 등록
법규 Q&A /rag 건설 법규·시방서 검색 채팅
설정 /settings 발주처 프로파일, 공종 라이브러리 관리

프로젝트 내 모듈 (10개 탭)

프로젝트 상세 페이지(/projects/{id})에서 아래 탭으로 이동합니다.

주소 설명
📅 공정표 /projects/{id}/gantt Gantt 차트, CPM 주공정선 시각화
📋 일보/보고서 /projects/{id}/reports 작업일보·주간·월간 보고서 목록, PDF 다운로드
🔬 검측 /projects/{id}/inspections 검측요청서 목록, AI 생성, PDF 출력
✅ 품질시험 /projects/{id}/quality 시험 기록 입력, 합격률 통계
🌤 날씨 /projects/{id}/weather 7일 예보, 활성 경보 목록
🏛 인허가 /projects/{id}/permits 인허가 체크리스트, AI 자동 도출
🤖 AI 에이전트 /projects/{id}/agents GONGSA·PUMJIL·ANJEON·GUMU 채팅, 협업 시나리오 실행, 아침 브리핑
📊 EVMS /projects/{id}/evms SPI·CPI 지수, 공정률 추이 차트, 공기 예측, 기성청구 금액
👁 Vision AI /projects/{id}/vision 공종 분류 / 안전 점검 / 도면 대조 (탭 전환)
📦 준공도서 /projects/{id}/completion 준공 준비도 체크리스트, ZIP 패키지 다운로드

발주처 전용 포털

로그인 없이 접속 가능한 별도 화면입니다. 현장 관리자가 발급한 토큰만 있으면 됩니다.

화면 주소 설명
발주처 포털 /portal 토큰 입력 → 공사 현황 대시보드 (공정률·SPI·품질합격률·최근 일보)

법규 Q&A 기능 (RAG) 설정

법규 Q&A를 사용하려면 먼저 Supabase에서 pgvector를 활성화하세요:

-- Supabase SQL Editor에서 실행 (최초 1회)
CREATE EXTENSION IF NOT EXISTS vector;

그 다음, 법령·시방서 문서를 색인합니다:

cd backend

# PDF 파일 색인
python scripts/seed_rag.py \
  --file "문서/KCS14 20 10 콘크리트.pdf" \
  --title "KCS 14 20 10 콘크리트 시방서" \
  --type kcs

# 텍스트 파일도 가능
python scripts/seed_rag.py \
  --file "문서/건설기술진흥법.txt" \
  --title "건설기술진흥법" \
  --type law

# 색인된 문서 목록 확인
python scripts/seed_rag.py --list

# 색인 삭제
python scripts/seed_rag.py --delete <source_id>

공개 자료 출처

자료 다운로드
KCS 한국건설기준 kcsc.re.kr
건설기술진흥법 law.go.kr
산업안전보건법 law.go.kr
중대재해처벌법 law.go.kr

⚠️ 법령 문서는 저작권 확인 후 사용하세요. 국가법령정보센터 자료는 공공누리 조건에 따라 활용 가능합니다.


AI 에이전트 사용법

에이전트는 프로젝트 페이지 또는 API를 통해 대화할 수 있습니다.

API 예시:

# 자동 라우팅 (메시지 내용에 따라 적절한 에이전트 선택)
curl -X POST http://localhost:8000/api/v1/projects/{project_id}/agents/chat \
  -H "Authorization: Bearer {토큰}" \
  -H "Content-Type: application/json" \
  -d '{"content": "오늘 콘크리트 타설 가능한가요?"}'
  # → GONGSA가 날씨·공정 현황 기반으로 답변

# 아침 브리핑 수동 생성
curl -X POST http://localhost:8000/api/v1/projects/{project_id}/agents/briefing \
  -H "Authorization: Bearer {토큰}"

# 에이전트 협업 시나리오 실행
curl -X POST http://localhost:8000/api/v1/projects/{project_id}/agents/scenario/concrete_pour \
  -H "Authorization: Bearer {토큰}"
  # → GONGSA, PUMJIL, ANJEON 순서로 브리핑·체크리스트·TBM 자동 생성

발주처 포털 사용법

발주처에게 공사 현황 링크를 제공할 수 있습니다. 로그인 없이 토큰만으로 접근합니다.

웹 화면으로 사용:

  1. 포털 토큰 발급 (아래 API 또는 Swagger UI)
  2. 발주처에게 URL + 토큰 전달: http://내도메인/portal
  3. 발주처가 접속 후 토큰 입력 → 공정률·품질·일보 실시간 확인

API로 사용:

# 포털 토큰 발급 (현장 관리자가 실행)
curl -X POST http://localhost:8000/api/v1/portal/tokens \
  -H "Authorization: Bearer {관리자_토큰}" \
  -H "Content-Type: application/json" \
  -d '{"project_id": "프로젝트_ID", "expires_days": 30, "label": "발주처"}'

# 발급된 토큰으로 발주처가 공사 현황 조회
curl http://localhost:8000/api/v1/portal/dashboard \
  -H "Authorization: Bearer {발급된_포털_토큰}"

준공도서 패키지 생성

# 준공 준비 체크리스트 확인
GET /api/v1/projects/{project_id}/completion/checklist

# 준공도서 ZIP 다운로드 (작업일보·품질시험·검측이력·인허가 현황)
GET /api/v1/projects/{project_id}/completion/download

카카오 챗봇 연동 (선택사항)

  1. Kakao i Open Builder 접속
  2. 새 챗봇 만들기
  3. Skill 서버 URL: https://내도메인/api/v1/kakao/webhook
  4. 챗봇을 카카오채널에 연결

사용 예시:

  • 일보: 콘크리트 5명, 철근 3명, 관로매설 50m 완료 → AI가 작업일보 생성
  • 질문: 콘크리트 타설 최저기온은? → 법규/시방서 검색 후 답변
  • 날씨 → 현장 날씨 경보 확인

프로젝트 구조

convai/
├── backend/                      # Python FastAPI 서버
│   ├── app/
│   │   ├── api/                  # REST API 엔드포인트 (16개)
│   │   │   ├── auth.py           # 로그인·회원가입
│   │   │   ├── projects.py       # 프로젝트·WBS 관리
│   │   │   ├── tasks.py          # 태스크·CPM Gantt
│   │   │   ├── daily_reports.py  # 작업일보 + PDF
│   │   │   ├── reports.py        # 주간·월간 보고서 + PDF
│   │   │   ├── inspections.py    # 검측요청서 + PDF
│   │   │   ├── quality.py        # 품질시험 관리
│   │   │   ├── weather.py        # 날씨 연동·경보
│   │   │   ├── rag.py            # 법규 Q&A
│   │   │   ├── kakao.py          # 카카오 챗봇 웹훅
│   │   │   ├── permits.py        # 인허가 + 자동도출
│   │   │   ├── agents.py         # AI 에이전트 4인방 + 협업
│   │   │   ├── evms.py           # EVMS (공정 성과 지수)
│   │   │   ├── vision.py         # Vision AI L1·L2·L3
│   │   │   ├── geofence.py       # 위험구역 Geofence
│   │   │   ├── completion.py     # 준공도서 패키지
│   │   │   ├── documents.py      # 설계도서 파싱·HWP 출력
│   │   │   └── portal.py         # 발주처 전용 포털
│   │   ├── models/               # 데이터베이스 모델 (15개 테이블)
│   │   ├── schemas/              # 입출력 데이터 형식
│   │   ├── services/             # 핵심 비즈니스 로직
│   │   │   ├── agents/           # AI 에이전트 (GONGSA·PUMJIL·ANJEON·GUMU)
│   │   │   ├── ai_engine.py      # Claude API 래퍼
│   │   │   ├── gantt.py          # CPM 주공정선 계산
│   │   │   ├── weather_service.py # 기상청 API
│   │   │   ├── rag_service.py    # 법규 검색 (pgvector)
│   │   │   ├── pdf_service.py    # PDF 생성 (WeasyPrint)
│   │   │   ├── vision_service.py # Vision AI (Claude Vision)
│   │   │   ├── evms_service.py   # EVMS 계산
│   │   │   ├── completion_service.py # 준공도서 패키지
│   │   │   ├── document_parser.py # 설계도서 파싱
│   │   │   └── scheduler.py      # 자동 배치 (날씨·EVMS·브리핑)
│   │   ├── templates/            # PDF·준공도서 HTML 템플릿
│   │   └── core/                 # 보안·DB·파일저장
│   ├── alembic/                  # DB 마이그레이션 (001·002)
│   ├── scripts/
│   │   └── seed_rag.py           # 법규 문서 색인 도구
│   └── tests/                    # 단위 테스트
│
├── frontend/                     # Next.js 웹 대시보드
│   └── src/
│       ├── app/                  # 페이지 (16개)
│       │   ├── login/            # 로그인
│       │   ├── dashboard/        # 메인 대시보드
│       │   ├── projects/         # 프로젝트 목록
│       │   ├── projects/[id]/    # 프로젝트 상세
│       │   │   ├── gantt/        # 공정표
│       │   │   ├── reports/      # 일보·보고서
│       │   │   ├── inspections/  # 검측
│       │   │   ├── quality/      # 품질시험
│       │   │   ├── weather/      # 날씨 경보
│       │   │   ├── permits/      # 인허가
│       │   │   ├── agents/       # AI 에이전트 채팅
│       │   │   ├── evms/         # EVMS 대시보드
│       │   │   ├── vision/       # Vision AI
│       │   │   └── completion/   # 준공도서 패키지
│       │   ├── rag/              # 법규 Q&A
│       │   ├── settings/         # 설정
│       │   └── portal/           # 발주처 포털
│       ├── components/           # UI 컴포넌트
│       ├── hooks/                # React 훅
│       └── lib/                  # API 클라이언트·타입·유틸
│
├── docs/setup.md                 # 상세 설치 가이드
├── docker-compose.yml            # Docker 개발 환경
└── README.md

자동화 스케줄

서버가 실행되면 아래 작업이 자동으로 실행됩니다:

시간 작업
매 3시간 활성 프로젝트 날씨 데이터 수집 + 경보 평가
매일 00:05 EVMS 스냅샷 자동 저장 (공정률·지수)
매일 07:00 GONGSA 아침 공정 브리핑 자동 생성

기여하기

버그 신고, 기능 제안, 코드 기여 모두 환영합니다!

  1. 이 저장소를 Fork
  2. 새 브랜치 만들기: git checkout -b feature/기능명
  3. 변경사항 커밋: git commit -m "feat: 새 기능 추가"
  4. Push: git push origin feature/기능명
  5. Pull Request 열기

이슈 등록: GitHub Issues


기술 스택

분야 기술
AI Claude API (Sonnet), Claude Vision, Voyage AI 임베딩
백엔드 Python 3.11, FastAPI, SQLAlchemy async, Alembic
프론트엔드 Next.js 15, React 19, TanStack Query, Tailwind CSS, Zustand
데이터베이스 PostgreSQL (Supabase) + pgvector (RAG 벡터 검색)
PDF 출력 WeasyPrint + Jinja2
HWP 출력 Pandoc (선택, 별도 설치 필요)
챗봇 카카오 Skill API
날씨 기상청 단기예보 Open API
스케줄러 APScheduler
배포 Docker Compose, Railway 지원

오픈소스 범위

이 저장소의 모든 코드는 MIT 라이선스로 공개됩니다. 자유롭게 사용, 수정, 배포, 상업적 활용이 가능합니다.


법적 고지

  • AI가 생성한 작업일보·보고서는 반드시 담당자가 검토·확인 후 사용하세요
  • 법규·시방서 Q&A는 참고용이며 법률 자문이 아닙니다
  • Vision AI 사진 분석 결과는 1차 보조 판독이며, 최종 판정은 현장 책임자가 합니다
  • 안전 관련 기능은 전문 안전관리자를 대체하지 않습니다
  • 모든 AI 생성 문서의 최종 책임은 현장 책임자에게 있습니다

라이선스

MIT License — Copyright (c) 2026 22B Labs / The 4th Path


만든 곳

22B Labs / The 4th Path 소형 건설업체의 디지털 전환을 돕습니다.

"대형사가 1222명으로 하는 일을 소형업체 12명이 AI와 함께 해낼 수 있도록"

About

convai

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors