🛡️ 더치트(THECHEATER) 프로젝트 설명서

중고거래 사기 피해자 지원 AI 챗봇 서비스

📌 1. 프로젝트 개요

더치트는 중고거래 사기 피해자들을 위한 AI 챗봇 서비스입니다. Google Gemini AI를 활용하여 피해자들이 대화할 때 상황에 맞는 답변을 제시해줍니다.

목표

  • 중고거래 사기 피해자들 간의 정보 공유 촉진
  • AI를 통한 실시간 상담 및 조언 제공
  • 사기 피해 대응 방법 자동화
  • 피해자 커뮤니티 형성 지원

기술 스택

  • BackendGo (Echo Framework)
  • FrontendHTML5, CSS3, JavaScript
  • DatabaseSQLite3
  • AIGoogle Gemini API
  • DeploySystemd Service

⭐ 2. 주요 기능

💬 실시간 챗 인터페이스

두 사용자(A, B) 간의 대화 시뮬레이션 및 AI 추천 답변 제공

🔄 적응형 모드

대화 내용의 키워드를 감지하여 자동으로 프롬프트 변경

🤖 다중 AI 모델

Gemini Flash Lite/Flash/Pro/3 Pro Preview 중 선택 가능

📝 프롬프트 관리

9개의 사전 설정 프롬프트 + 커스텀 프롬프트 생성

🧪 API 테스트

헬스 체크, 커스텀 요청 등 API 직접 테스트

📊 샘플 시나리오

10개의 중고거래 사기 샘플 + 5개의 적응형 모드 샘플

🚀 3. 사용 방법

3.1 채팅 테스트 페이지 (/ )

  • 프롬프트 선택: 상단 드롭다운에서 사용할 프롬프트 선택
  • 적응형 모드: 체크박스로 활성화 (대화 내용으로 프롬프트 자동 변경)
  • AI 모델 선택: 원하는 모델 카드 선택
  • 샘플 로드: 아래 샘플 버튼으로 미리 작성된 대화 로드
  • 메시지 입력: 사용자 A, B가 각각 메시지 입력
  • AI 추천: 🤖 AI 버튼 클릭하여 다음 답변 제시받기

3.2 프롬프트 관리 페이지 (/prompts)

  • 목록 조회: 등록된 모든 프롬프트 확인
  • 필터링: 전체/일반/적응형 필터로 분류
  • 프롬프트 수정: 기존 프롬프트 수정 (기본 프롬프트 제외)
  • 프롬프트 추가: 새로운 커스텀 프롬프트 생성
  • 프롬프트 삭제: 불필요한 프롬프트 제거

3.3 API 테스트 페이지 (/api-test)

  • 헬스 체크: 서버 상태 확인
  • 초기 메시지: 메시지 0개 상태에서 AI 응답
  • 간단한 추천: 기본 대화로 AI 추천 받기
  • 커스텀 요청: JSON 형식으로 직접 요청 전송

📝 4. 프롬프트 시스템

4.1 사전 설정 프롬프트 (일반)

  • default: 일반 대화용 프롬프트 - 중고거래 사기 의심 상황
  • victim_support: 피해자 지원용 프롬프트 - 신고, 법적 대응, 환불 등
  • online_fraud_victims_meeting: 온라인 사기 피해자 모임
  • offline_fraud_victims_meeting: 오프라인 사기 피해자 모임

4.2 사전 설정 프롬프트 (적응형)

  • fraud_immediately_after: 사기 직후 피해자 - 초기 대응 및 긴급 조치
  • fraud_investigation: 사기 조사 진행 중 피해자 - 증거 수집 및 신고 전략
  • fraud_legal_action: 법적 조치 진행 중 피해자 - 소송 절차 및 법률 상담
  • fraud_recovery: 피해 회복 단계 피해자 - 환불/배상 절차 및 심리 회복
  • platform_specific_fraud: 플랫폼별 사기 피해 - 당근마켓/번개장터/중고나라 특화

4.3 프롬프트 작성 가이드

커스텀 프롬프트 생성 시 다음 요소를 포함하세요:

  • AI의 역할 명시
  • 응답 형식 지정 (3-5개 옵션, 번호 붙이기)
  • 대화 맥락 이해 지침
  • 응답 톤 가이드

🔄 5. 적응형 모드

5.1 작동 방식

  • 사용자가 적응형 모드를 활성화
  • 대화 메시지에서 키워드 자동 감지
  • 일치하는 프롬프트로 자동 전환
  • 사용자 작업 없이 최적의 프롬프트 선택

5.2 키워드 예시

  • fraud_immediately_after: 사기, 직후, 긴급, 지급정지, 신고, 캡처, 증거, 신원추적
  • fraud_investigation: 수사, 조사, 경찰, 진전, 증거, 계좌추적, 용의자, 신원
  • fraud_legal_action: 소송, 법원, 변호사, 판결, 증인, 심리, 형사고소, 민사소송
  • fraud_recovery: 배상금, 환불, 회복, 트라우마, 심리, 치유, 미래, 신뢰

5.3 활용 팁

  • 처음 메시지에 키워드 포함하면 더 정확한 감지
  • 최소 2개 이상의 키워드 일치 시 전환
  • 프롬프트 수동 변경도 가능

🔌 6. API 사용

6.1 기본 정보

기본 URL: /api/v1

6.2 주요 엔드포인트

GET /health - 헬스 체크

curl http://localhost:9091/api/v1/health

POST /chat/recommendation - 추천 메시지

{ "sender_id": "victim_user_001", "receiver_id": "counselor_bot_001", "messages": [ { "sender_id": "victim_user_001", "receiver_id": "counselor_bot_001", "role": "user", "content": "선입금을 요구하는 사기가 있다고 들었어요", "timestamp": "2025-01-15T14:20:00Z" }, { "sender_id": "counselor_bot_001", "receiver_id": "victim_user_001", "role": "assistant", "content": "네, 그런 사기가 많습니다", "timestamp": "2025-01-15T14:20:03Z" } ], "custom_prompt": "프롬프트 내용", "model": "gemini-2.5-flash-lite" }

GET /prompts - 모든 프롬프트 조회

curl http://localhost:9091/api/v1/prompts

GET /prompts/{id} - 특정 프롬프트 조회

curl http://localhost:9091/api/v1/prompts/1

6.3 요청/응답 형식

요청 필드

  • sender_id (문자열): 현재 메시지를 보낼 사용자 ID (AI 추천을 받을 사용자)
  • receiver_id (문자열): 메시지를 받을 상대방 ID
  • messages (배열): 대화 히스토리
    • sender_id: 해당 메시지를 보낸 사람 ID
    • receiver_id: 해당 메시지를 받은 사람 ID
    • role: "user" 또는 "assistant"
    • content: 메시지 내용
    • timestamp (선택사항): ISO 8601 형식의 메시지 전송 시각
  • custom_prompt (선택사항): 커스텀 프롬프트 내용
  • model (선택사항): 사용할 Gemini 모델명

응답 형식

{ "suggestions": [ "추천 메시지 1번 옵션...", "추천 메시지 2번 옵션...", "추천 메시지 3번 옵션..." ], "is_ai": true }
  • suggestions (배열): 추천 메시지 목록 (여러 옵션 제공)
  • is_ai (불린): AI 생성 여부 (false일 경우 사전 정의된 메시지)

❓ 7. FAQ

Q: 적응형 모드와 일반 모드의 차이는?

A: 일반 모드에서는 사용자가 프롬프트를 직접 선택하고, 적응형 모드에서는 대화 내용을 분석하여 자동으로 최적의 프롬프트를 선택합니다.

Q: 어떤 AI 모델을 선택해야 하나요?

A: 기본적으로 Flash Lite를 권장합니다. 더 정교한 응답이 필요하면 Flash나 Pro를 선택하세요.

Q: 프롬프트를 수정할 수 있나요?

A: 기본 프롬프트(default, victim_support)를 제외한 모든 프롬프트는 수정 가능합니다. 프롬프트 관리 페이지에서 "수정" 버튼을 클릭하세요.

Q: 새로운 프롬프트를 만들고 싶어요.

A: 프롬프트 관리 페이지에서 "새 프롬프트 추가" 버튼을 클릭하여 생성할 수 있습니다.

Q: API를 통해서도 프롬프트를 추가할 수 있나요?

A: 네, POST /api/v1/prompts 엔드포인트를 사용하여 프롬프트를 추가할 수 있습니다.

Q: 적응형 모드에서 프롬프트가 변경되지 않습니다.

A: 감지 기준은 최소 2개 이상의 키워드 일치입니다. 대화에 해당 프롬프트의 키워드를 포함시켜 주세요.

Q: 서비스를 재시작하려면?

A: 터미널에서 ./reload.sh를 실행하면 빌드 후 자동으로 서비스가 재시작됩니다.