RAG Chatbot with Multi-LLM Com
AI & HCIPDF를 올리면 AI가 증거를 찾고, 두 가지 전략으로 답한다
Built a transparent RAG chatbot that makes the full pipeline visible — retrieved chunks, merged context block, and prompt text are all shown in the UI, not hidden.
The same question is answered two ways simultaneously: STRICT returns answers only when evidence explicitly supports them. GENEROUS allows reasonable inference from the retrieved context. Placing both side by side makes it easy to see where hallucination risk enters.
The same pipeline runs across three LLMs — Ollama (local LLaMA), OpenAI GPT, and Google Gemini — under identical conditions, so model behavior differences are directly observable.
Key decisions:
STRICT vs GENEROUS: separating prompt strategy from model choice as independent variables
Transparent UI: retrieved chunks, context block, and prompt all visible — no black box
Multi-LLM: local + cloud hybrid so cost, privacy, and quality trade-offs can be compared live
v1 was local-only (Ollama). v2 added cloud LLMs and the side-by-side comparison view.
Tech: Python, Streamlit, FAISS, SentenceTransformers, Ollama, OpenAI API, Google Gemini API, pypdf
RAG 파이프라인 전체를 투명하게 보여주는 챗봇을 만들었다. 검색된 청크, 조립된 컨텍스트 블록, 실제 프롬프트까지 UI에서 전부 확인할 수 있다.
같은 질문에 두 가지 프롬프트 전략으로 동시에 답한다. STRICT는 증거에 명시된 내용만 답하고, 없으면 "문서에 없습니다"를 돌려준다. GENEROUS는 증거에서 합리적으로 추론 가능한 내용까지 허용한다. 나란히 놓으면 할루시네이션이 어디서 끼어드는지 보인다.
동일한 파이프라인을 Ollama(로컬 LLaMA) / OpenAI GPT / Google Gemini 세 LLM에 동시에 돌려 모델별 동작 차이를 직접 비교할 수 있다.
구현별 핵심:
STRICT vs GENEROUS: 프롬프트 전략과 모델 선택을 독립 변수로 분리
투명한 UI: 검색 청크, 컨텍스트 블록, 프롬프트 전문 노출 — 블랙박스 없음
멀티 LLM: 로컬 + 클라우드 하이브리드로 비용, 프라이버시, 품질 트레이드오프를 실시간 비교
v1은 Ollama 단독. v2에서 클라우드 LLM과 나란히 비교하는 뷰를 추가했다.
사용 기술: Python, Streamlit, FAISS, SentenceTransformers, Ollama, OpenAI API, Google Gemini API, pypdf
Links
Leave a Comment: