나만의 에이전트를 만들기 전

Lam Lee·2025년 6월 15일

LLM

목록 보기
7/8

주요 고급프롬프트 기법

  • Prompt Chaining: 여러 프롬프트를 순차적으로 연결해 복잡한 작업을 단계별로 처리
    CoT (Chain of Thought): 문제 해결을 단계별 추론 방식으로 풀도록 유도
  • Auto-CoT (Automatic CoT): 모델이 직접 CoT 예시를 만들어서 활용
    Self-Consistency CoT: 같은 문제에 대해 여러 CoT 경로를 생성, 다수결로 정답 선택
  • Meta Prompt: LLM에게 프롬프트 자체를 생성하거나 행동 규칙을 작성하도록 요청
  • APE (Automatic Prompt Engineer): LLM이 최적의 프롬프트를 자동 탐색, 생성, 평가
  • RAG: 외부 문서나 데이터베이스에서 검색한 정보를 context로 붙여 답변
  • ReAct: Reasoning + Acting, Thought → Action → Observation 루프 설계
  • Function Calling: 모델이 외부 시스템/API에 연결된 함수 호출 요청을 JSON 형식으로 생성
    텍스트

프로젝트에 적용할 기술 스택 정리

기술 요소설명
Role Playing PromptingAI가 특정 역할(예: 정책 분석가, 공약 해설가 등)을 수행하도록 유도하는 프롬프트 전략
Prompt Chaining여러 개의 프롬프트를 순차적으로 연결하여 복잡한 질문에 단계별로 답변 생성
Meta Prompt다양한 상황에 대응 가능한 일반화된 프롬프트 템플릿. 입력된 질문에 따라 조건이나 응답 방식이 유동적으로 달라짐
RAG (Retrieval-Augmented Generation)질문에 답하기 위해 외부 지식(DB, 문서 등)을 먼저 검색(Retrieval)하고, 그걸 바탕으로 LLM이 답변을 생성
ReAct / Function CallingAI가 답을 직접 생성하기보다 도구를 호출해 필요한 작업을 수행하고, 결과를 기반으로 최종 답을 생성 (예: QA 체인 호출 도구)

ReAct vs FunctonCalling

무엇이 다를까.

구분ReActFunction Calling
정의Reasoning + Acting의 약자로, AI가 스스로 생각(Reasoning)한 후 필요한 도구를 선택하여 사용하는 방식LLM이 외부 도구(API, 함수 등)를 호출해 결과를 받아오는 구조
초점행동 결정 과정에 있음 (어떤 Tool을 언제, 왜 쓸지 결정)실행 실행 실행! – 결정된 도구를 정확히 호출하고 사용하는 능력
활용 예“검색이 필요하니 Tool X를 써야겠다” 판단실제로 Tool_X.run(질문)을 호출해서 결과를 받음
사례AgentType = ZERO_SHOT_REACT_DESCRIPTIONOpenAI의 function_call, LangChain의 Tool 실행 등

데이터 전처리

항목FAISSChromaDB
역할벡터 검색 엔진 (고속 유사도 검색)벡터 DB + 메타데이터 관리 포함
설치/호환성별도 설치 필요 (faiss-cpu, faiss-gpu)파이썬에서 pip로 간단히 설치 가능
속도/성능GPU 지원 가능, 대규모 검색에 강함CPU 환경에서도 빠르며, 소규모부터 중규모까지 효율적
메타데이터 관리간단한 dict 정도만 가능고급 필터링 및 조건 검색 가능 (where, filter)
데이터 저장디스크 저장은 수동Persistent 저장 기본 지원 (persist_directory)
LangChain 통합초기부터 지원LangChain에서 최근 적극 지원 중 (검색 + 필터에 강함)
검색 외 기능없음 (전통적인 검색 라이브러리)벡터 기반 필터링, 문서 ID 관리, collection 단위 관리 등 가능

FAISS > ChromaDB로 변경 이유

왜 바꿨을까? 메타데이터 필터링이 필요해졌기 때문
ChromaDB는 .as_retriever(search_kwargs={"filter": {...}}) 같은 조건 검색 가능

Chroma는 persist_directory 설정만 하면 자동 저장 + 재불러오기 가능으로 실험 시나 데모 개발 시 매우 편리함

FAISS는 OS, Python 버전, GPU 환경에 따라 충돌이 잦음
Chroma는 pure Python 기반이라 Colab, M1, Windows 등에서도 안정적으로 작동

LangChain은 현재 Chroma를 공식 예제의 기본 벡터 저장소로 자주 채택
community 문서, 챗봇 예제들도 Chroma 사용 빈도가 급증

결론: 동일한 기능이지만 더 유연함

FAISS와 Chroma 모두 RAG에서 벡터 기반 검색 기능은 동일하게 수행하지만,
Chroma는 실험, 확장성, 관리 측면에서 더 유연하고 쉬운 도구임.

시연할때 도움될만한 툴

https://www.gradio.app/

profile
Transitioning from UX to data science, I explore the intersection of service & data to unlock hidden value and make meaningful predictions.

0개의 댓글