이 프로젝트는 LangChain + Streamlit을 활용하여 프롬프트 엔지니어링을 적용한 AI 챗봇입니다. 사용자가 직접 프롬프트를 수정하거나 미리 정의된 프리셋을 적용하여 맞춤형 AI 챗봇을 만들 수 있습니다.
🚀 프롬프트 엔지니어링을 통해 정확성, 일관성, 가독성을 개선하고 AI 챗봇의 성능을 극대화했습니다.
메인화면
- 사용자가 직접 입력한 프롬프트를 적용하여 AI의 응답 방식을 변경 가능
- 다양한 프리셋(
번역,요약,SNS 분석등) 활용 가능
OpenAI GPT-3.5-turbo모델을 활용한 대화형 AI 구현- 스트리밍 응답 처리로 자연스럽고 빠른 답변 제공
st.session_state를 사용하여 사용자의 대화 내역을 저장 및 관리
- 문서에서 검색된 정보만을 기반으로 답변 생성하여 신뢰도 높은 응답 제공
- Markdown 테이블을 활용한 구조화된 출력 형식 지원
# 필수 라이브러리 설치
pip install -r requirements.txtstreamlit run main.py| 기법 | 설명 | 적용 예시 |
|---|---|---|
| 역할 부여 (Role Assignment) | 모델이 특정 전문가 역할을 수행하도록 지정 | 당신은 20년차 번역 전문가입니다. |
| 구체적인 지시 (Explicit Instructions) | 원하는 답변 형식, 행동을 명확하게 정의 | 요약할 때는 bullet points로 정리하세요. |
| 출력 형식 지정 (Structured Output) | 테이블, Bullet Point 등 형식을 강제 | Markdown 형식의 테이블을 포함하세요. |
| 추론 제한 (Restrictive Instructions) | 불확실한 답변을 막고, 정확한 정보만 제공 | 답변할 정보가 없으면 '모르겠습니다'라고 답하세요. |
| 입력 가이드라인 제공 (Example Formatting) | 답변 예시를 제시해 LLM이 학습할 수 있도록 함 | 📌 첫 번째 문장 |
| 유연한 사용자 프롬프트 적용 | 사용자가 직접 프롬프트를 수정 가능하게 함 | st.text_area('프롬프트') |
✅ 정확성(Accuracy) 향상 → 환각(허구 정보) 발생 감소 및 신뢰성 향상
✅ 일관된 출력 형식 유지 → Markdown 테이블 및 Bullet Point 활용
✅ 응답 속도 개선 → 구체적인 지시를 통해 불필요한 연산 감소
✅ 사용자 맞춤형 AI 제공 → 특정 도메인(예: 금융, 번역, 법률) 최적화 가능
📂 프로젝트 폴더
├── main.py # Streamlit 기반 챗봇 실행 파일
├── history.py # 대화 기록 관리 및 프롬프트 설정
├── prompts/
│ ├── 번역.yaml # 번역 프리셋
│ ├── 요약.yaml # 요약 프리셋
│ ├── rag_ref.yaml # RAG 기반 문서 검색 프롬프트
│ ├── rag_table.yaml # Markdown 테이블 포함 RAG 프롬프트
│ └── prompt_main.yaml # 프롬프트 최적화 가이드
└── README.md # 프로젝트 설명 파일- 더 다양한 프리셋 추가 (예: 법률 상담, 코딩 도우미, 투자 분석 등)
- 대화 맥락 유지 강화 (멀티턴 대화 흐름 최적화)
📢 문의 및 피드백 환영! 🚀
