Skip to content

Latest commit

 

History

History
123 lines (88 loc) · 7.16 KB

File metadata and controls

123 lines (88 loc) · 7.16 KB

시스템 아키텍처

이 프로젝트는 사용자 프롬프트를 계산기 서비스에 전달하기 전에 콘텐츠 안전성 검사를 수행하는 웹 애플리케이션을 Model Context Protocol (MCP)을 통해 구현한 예시입니다.

System Architecture Diagram

작동 방식

  1. 사용자 입력: 사용자가 웹 인터페이스에 계산 프롬프트를 입력합니다.
  2. 콘텐츠 안전성 검사 (입력): 프롬프트는 Azure Content Safety API로 분석됩니다.
  3. 안전성 판단 (입력):
    • 모든 카테고리에서 심각도(severity)가 2 미만인 경우 안전하다고 판단되어 계산기로 전달됩니다.
    • 잠재적으로 유해한 콘텐츠로 표시되면 프로세스가 중단되고 경고가 반환됩니다.
  4. 계산기 연동: 안전한 콘텐츠는 LangChain4j를 통해 MCP 계산기 서버와 통신하여 처리됩니다.
  5. 콘텐츠 안전성 검사 (출력): 봇의 응답은 Azure Content Safety API로 분석됩니다.
  6. 안전성 판단 (출력):
    • 봇 응답이 안전하면 사용자에게 표시됩니다.
    • 잠재적으로 유해한 응답으로 표시되면 경고 메시지로 대체됩니다.
  7. 응답: 결과(안전한 경우)는 사용자에게 두 번의 안전성 분석 결과와 함께 표시됩니다.

Model Context Protocol (MCP)을 이용한 계산기 서비스 사용법

이 프로젝트는 LangChain4j에서 Model Context Protocol (MCP)을 사용해 계산기 MCP 서비스를 호출하는 방법을 보여줍니다. 구현은 포트 8080에서 실행되는 로컬 MCP 서버를 통해 계산기 연산을 제공합니다.

Azure Content Safety 서비스 설정

콘텐츠 안전성 기능을 사용하기 전에 Azure Content Safety 서비스 리소스를 생성해야 합니다:

  1. Azure Portal에 로그인합니다.
  2. "리소스 만들기"를 클릭하고 "Content Safety"를 검색합니다.
  3. "Content Safety"를 선택하고 "만들기"를 클릭합니다.
  4. 리소스에 고유한 이름을 입력합니다.
  5. 구독과 리소스 그룹을 선택하거나 새로 만듭니다.
  6. 지원되는 지역을 선택합니다 (지역 가용성 참고).
  7. 적절한 가격 책정 계층을 선택합니다.
  8. "만들기"를 클릭하여 리소스를 배포합니다.
  9. 배포가 완료되면 "리소스로 이동"을 클릭합니다.
  10. 왼쪽 메뉴에서 "리소스 관리" 아래의 "키 및 엔드포인트"를 선택합니다.
  11. 다음 단계에서 사용할 키 중 하나와 엔드포인트 URL을 복사합니다.

환경 변수 설정

GitHub 모델 인증을 위해 GITHUB_TOKEN 환경 변수를 설정하세요:

export GITHUB_TOKEN=<your_github_token>

콘텐츠 안전성 기능을 위해 다음을 설정하세요:

export CONTENT_SAFETY_ENDPOINT=<your_content_safety_endpoint>
export CONTENT_SAFETY_KEY=<your_content_safety_key>

이 환경 변수들은 애플리케이션이 Azure Content Safety 서비스에 인증하는 데 사용됩니다. 설정하지 않으면 데모용 자리 표시자 값이 사용되지만 콘텐츠 안전성 기능은 제대로 작동하지 않습니다.

계산기 MCP 서버 시작

클라이언트를 실행하기 전에 localhost:8080에서 SSE 모드로 계산기 MCP 서버를 시작해야 합니다.

프로젝트 설명

이 프로젝트는 LangChain4j와 Model Context Protocol (MCP)을 통합하여 계산기 서비스를 호출하는 방법을 보여줍니다. 주요 기능은 다음과 같습니다:

  • MCP를 사용해 기본 수학 연산을 위한 계산기 서비스에 연결
  • 사용자 프롬프트와 봇 응답 모두에 대한 이중 콘텐츠 안전성 검사
  • LangChain4j를 통한 GitHub의 gpt-4.1-nano 모델 연동
  • MCP 전송에 Server-Sent Events (SSE) 사용

콘텐츠 안전성 통합

이 프로젝트는 사용자 입력과 시스템 응답 모두에서 유해한 콘텐츠가 없도록 포괄적인 콘텐츠 안전성 기능을 포함합니다:

  1. 입력 검사: 모든 사용자 프롬프트는 증오 발언, 폭력, 자해, 성적 콘텐츠 등 유해 콘텐츠 카테고리에 대해 처리 전에 분석됩니다.

  2. 출력 검사: 잠재적으로 검열되지 않은 모델을 사용하더라도, 생성된 모든 응답은 사용자에게 표시되기 전에 동일한 콘텐츠 안전성 필터를 거칩니다.

이중 검사 방식을 통해 어떤 AI 모델을 사용하더라도 시스템이 안전하게 유지되며, 사용자와 AI 생성 출력 모두를 유해한 콘텐츠로부터 보호합니다.

웹 클라이언트

애플리케이션은 사용자가 Content Safety Calculator 시스템과 상호작용할 수 있는 직관적인 웹 인터페이스를 제공합니다:

웹 인터페이스 기능

  • 계산 프롬프트 입력을 위한 간단하고 직관적인 폼
  • 입력과 출력 모두에 대한 이중 콘텐츠 안전성 검증
  • 프롬프트와 응답 안전성에 대한 실시간 피드백
  • 쉽게 이해할 수 있는 색상 구분 안전성 표시기
  • 다양한 기기에서 작동하는 깔끔하고 반응형 디자인
  • 사용자를 위한 안전한 예시 프롬프트 제공

웹 클라이언트 사용법

  1. 애플리케이션을 시작합니다:

    mvn spring-boot:run
  2. 브라우저를 열고 http://localhost:8087로 접속합니다.

  3. 제공된 텍스트 영역에 계산 프롬프트를 입력합니다 (예: "24.5와 17.3의 합을 계산해 주세요").

  4. "Submit" 버튼을 클릭하여 요청을 처리합니다.

  5. 결과를 확인합니다. 결과에는 다음이 포함됩니다:

    • 프롬프트에 대한 콘텐츠 안전성 분석
    • 계산된 결과 (프롬프트가 안전한 경우)
    • 봇 응답에 대한 콘텐츠 안전성 분석
    • 입력 또는 출력이 플래그된 경우 안전성 경고

웹 클라이언트는 두 단계의 콘텐츠 안전성 검증을 자동으로 처리하여, 어떤 AI 모델을 사용하더라도 모든 상호작용이 안전하고 적절하게 이루어지도록 보장합니다.

면책 조항:
이 문서는 AI 번역 서비스 Co-op Translator를 사용하여 번역되었습니다. 정확성을 위해 최선을 다하고 있으나, 자동 번역에는 오류나 부정확한 부분이 있을 수 있음을 유의해 주시기 바랍니다. 원문은 해당 언어의 원본 문서가 권위 있는 출처로 간주되어야 합니다. 중요한 정보의 경우 전문적인 인간 번역을 권장합니다. 본 번역의 사용으로 인해 발생하는 오해나 잘못된 해석에 대해 당사는 책임을 지지 않습니다.