82 lines
3.9 KiB
Markdown
82 lines
3.9 KiB
Markdown
# 🤖 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](https://www.docker.com/get-started)가 설치되어 있어야 합니다.
|
|
- [Docker Compose](https://docs.docker.com/compose/install/)가 설치되어 있어야 합니다. (최신 버전의 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 키로 교체합니다.
|
|
|
|
```env
|
|
# YOUR_GEMINI_API_KEY를 실제 키로 변경하세요.
|
|
GOOGLE_API_KEY="YOUR_GEMINI_API_KEY"
|
|
```
|
|
|
|
4. **애플리케이션 빌드 및 실행**:
|
|
터미널에서 `chatbot_app` 디렉토리로 이동한 후, 다음 명령어를 실행합니다.
|
|
|
|
```bash
|
|
docker-compose up --build -d
|
|
```
|
|
|
|
- `--build`: 이미지를 새로 빌드합니다. (코드 변경 시 필요)
|
|
- `-d`: 컨테이너를 백그라운드에서 실행합니다.
|
|
|
|
5. **챗봇 접속**:
|
|
빌드가 완료되고 컨테이너가 실행되면, 웹 브라우저를 열고 다음 주소로 접속합니다.
|
|
- **URL**: `http://localhost:8501`
|
|
|
|
## 💡 사용 방법
|
|
|
|
- **질문하기**: 화면 하단의 입력창에 API 명세와 관련된 질문을 입력하고 Enter 키를 누릅니다.
|
|
- **API 명세 새로고침**: 사이드바의 '🔄 API 명세 새로고침' 버튼을 클릭하면 `API_SPEC_URL`에 지정된 주소에서 최신 명세를 다시 가져옵니다.
|
|
- **API 상세정보 확인**: 사이드바의 '📘 API 상세정보 보기'를 펼치면 API의 제목, 버전 및 전체 엔드포인트 목록을 확인할 수 있습니다.
|