2025-07-18 17:47:30 +09:00
2025-07-18 17:32:56 +09:00
2025-07-18 17:32:56 +09:00
2025-07-18 17:32:56 +09:00
2025-07-18 17:47:30 +09:00
2025-07-18 17:32:56 +09:00
2025-07-18 17:32:56 +09:00
2025-07-18 17:32:56 +09:00
2025-07-18 17:32:56 +09:00
2025-07-18 17:35:58 +09:00
2025-07-18 17:32:56 +09:00

🤖 OpenAPI 명세 조회 챗봇 (LLM-Gateway Spec Chatbot)

이 프로젝트는 특정 URL에서 제공하는 OpenAPI 명세(Specification) 파일을 기반으로 사용자의 질문에 답변하는 Streamlit 기반의 챗봇 애플리케이션입니다. Gemini AI 모델을 활용하여 자연어 질문을 이해하고, API 명세에 근거한 정확한 정보를 한국어로 제공합니다.

전체 애플리케이션은 Docker 컨테이너 환경에서 실행되도록 구성되어 있어, 간편하게 설치하고 실행할 수 있습니다.

주요 기능

  • OpenAPI 명세 기반 답변: 로컬에 저장된 api_spec.json 파일을 분석하여 API의 엔드포인트, 파라미터, 요약 정보 등에 대해 답변합니다.
  • 자연어 질의응답: Google의 Gemini 모델을 통해 사용자의 자연어 질문을 이해하고 지능적인 답변을 생성합니다.
  • 동적 명세 새로고침: UI의 버튼 클릭 한 번으로 최신 API 명세를 원격 URL에서 다시 가져와 앱에 반영할 수 있습니다.
  • 한국어 지원: 모든 답변은 한국어로 제공됩니다.

🛠️ 기술 스택

  • 언어: Python 3.9
  • 프레임워크: Streamlit
  • AI 모델: Google Gemini 1.5 Flash
  • 컨테이너: Docker, Docker Compose
  • 주요 라이브러리: google-generativeai, requests, pandas

📂 디렉토리 구조

chatbot_app/
├── static/
│   ├── api_spec.json   # API 명세 파일
│   └── logo.png        # UI에 표시될 로고 이미지
├── .env.chatbot        # 환경 변수 파일 (API 키 저장)
├── docker-compose.yml  # Docker Compose 설정 파일
├── Dockerfile          # Docker 이미지 빌드 파일
├── main.py             # Streamlit 애플리케이션 메인 코드
├── README.md           # 프로젝트 설명 파일 (현재 파일)
└── requirements.txt    # Python 의존성 목록

🚀 설치 및 실행 방법

사전 준비 사항

  • Docker가 설치되어 있어야 합니다.
  • Docker Compose가 설치되어 있어야 합니다. (최신 버전의 Docker Desktop에는 기본 포함)

설치 절차

  1. 프로젝트 준비: 이 chatbot_app 디렉토리를 준비합니다.

  2. 정적 파일 배치: chatbot_app/static/ 디렉토리 안에 다음 두 파일을 위치시킵니다.

    • api_spec.json: 조회할 대상의 OpenAPI 명세 파일
    • logo.png: UI 사이드바에 표시할 로고 이미지
  3. 환경 변수 설정: chatbot_app/.env.chatbot 파일을 열고, YOUR_GEMINI_API_KEY 부분을 실제 발급받은 Google Gemini API 키로 교체합니다.

    # YOUR_GEMINI_API_KEY를 실제 키로 변경하세요.
    GOOGLE_API_KEY="YOUR_GEMINI_API_KEY"
  4. 애플리케이션 빌드 및 실행: 터미널에서 chatbot_app 디렉토리로 이동한 후, 다음 명령어를 실행합니다.

    docker-compose up --build -d
    • --build: 이미지를 새로 빌드합니다. (코드 변경 시 필요)
    • -d: 컨테이너를 백그라운드에서 실행합니다.
  5. 챗봇 접속: 빌드가 완료되고 컨테이너가 실행되면, 웹 브라우저를 열고 다음 주소로 접속합니다.

    • URL: http://localhost:8501

💡 사용 방법

  • 질문하기: 화면 하단의 입력창에 API 명세와 관련된 질문을 입력하고 Enter 키를 누릅니다.
  • API 명세 새로고침: 사이드바의 🔄 API 명세 새로고침’ 버튼을 클릭하면 API_SPEC_URL에 지정된 주소에서 최신 명세를 다시 가져옵니다.
  • API 상세정보 확인: 사이드바의 📘 API 상세정보 보기’를 펼치면 API의 제목, 버전 및 전체 엔드포인트 목록을 확인할 수 있습니다.
Description
No description provided
Readme MIT 56 KiB
Languages
Python 92.3%
Dockerfile 7.7%