섹션별 상세
Langfuse는 LLM 애플리케이션의 디버깅, 분석 및 개발을 지원하는 오픈소스 플랫폼으로, 실행 경로를 추적하는 Tracing, 실시간 지연 시간과 비용을 모니터링하는 Metrics, 사용자 피드백을 수집하는 Evaluation 기능을 제공한다.

FuseCommerce 에이전트는 사용자의 질문 의도를 분석하는 인지적 라우팅과 벡터 임베딩을 활용해 개념적 연관성을 파악하는 시맨틱 메모리를 핵심 구성 요소로 설계됐다.
python
def semantic_search(query):
# Create a vector representation of the query
query_embedding = genai.embed_content(
model="models/text-embedding-004",
content=query
)["embedding"]
# Using math, find the nearest meanings to the query
similarities = cosine_similarity([query_embedding], product_vectors)
return get_top_matches(similarities)Google Gemini의 임베딩 모델과 코사인 유사도를 활용하여 시맨틱 검색을 구현하는 예시
시맨틱 검색 엔진은 Google Gemini의 text-embedding-004 모델을 사용하여 제품 정보를 벡터화하고, 코사인 유사도 계산을 통해 키워드가 일치하지 않아도 의미적으로 유사한 제품을 찾아낸다.
python
@langfuse.observe(as_type="generation")
def classify_user_intent(user_input):
prompt = f"""
Use the following user input to classify the user's intent into one of the three categories:
1. PRODUCT_SEARCH
2. ORDER_STATUS
3. GENERAL_CHAT
Input: {user_input}
"""
# Call Gemini model here...
intent = "PRODUCT_SEARCH" # Placeholder
return intentLangfuse 데코레이터를 사용하여 LLM의 의도 분류 과정을 자동으로 트레이싱하는 예시
@langfuse.observe 데코레이터를 사용하여 의도 분류 및 검색 과정을 자동으로 캡처하며, update_current_trace 메서드로 세션 ID와 같은 메타데이터를 태깅하여 사용자별 대화 맥락을 유지한다.
python
@langfuse.observe() # Root Trace
def handle_customer_user_input(user_input, session_id):
# Tag the session
langfuse.update_current_trace(session_id=session_id)
# Think
intent = get_classified_intent(user_input)
# Act based on classified intent
if intent == "PRODUCT_SEARCH":
context = use_semantic_search(user_input)
# ... (중략)
response = generate_ai_response(context, intent)
return response전체 에이전트 워크플로우를 루트 트레이스로 설정하고 세션 ID를 태깅하는 예시

Streamlit 기반 UI에 좋아요/싫어요 버튼을 구현하고 lf_client.score 함수를 연결하여, 특정 답변에 대한 사용자 만족도를 Langfuse 대시보드에서 실시간으로 확인할 수 있는 피드백 루프를 완성한다.
python
if col1.button("👍"):
lf_client.score(trace_id=trace_id, name="user-satisfaction", value=1)
if col2.button("👎"):
lf_client.score(trace_id=trace_id, name="user-satisfaction", value=0)사용자의 피드백을 특정 트레이스 ID와 연결하여 Langfuse로 전송하는 예시


Langfuse 대시보드를 통해 평균 지연 시간, 의도 분류 정확도, 세션당 비용 등을 시각화함으로써 운영 중인 에이전트의 성능 병목 지점을 파악하고 프롬프트나 검색 로직을 최적화할 수 있다.
용어 해설
- 관측성(Observability)
- — 시스템 내부의 동작 상태를 외부 지표(로그, 트레이스, 메트릭 등)를 통해 파악할 수 있는 능력을 의미한다. LLM 애플리케이션에서는 모델의 추론 과정, 지연 시간, 비용 등을 투명하게 모니터링하여 문제 발생 시 원인을 빠르게 진단하는 데 필수적이다.
- 시맨틱 검색(Semantic Search)
- — 단순한 키워드 일치 여부를 넘어 단어의 의미와 문맥적 유사성을 바탕으로 정보를 찾는 기술이다. 텍스트를 고차원 벡터로 변환하는 임베딩 모델을 사용하여 사용자의 질문 의도와 가장 가까운 의미를 가진 데이터를 검색 결과로 제공한다.
- 트레이스(Trace)
- — 하나의 요청이 시스템 내의 여러 구성 요소를 거치며 처리되는 전체 경로를 기록한 데이터이다. LLM 에이전트가 질문을 받고 의도를 분류한 뒤 검색을 거쳐 답변을 생성하기까지의 모든 단계를 시각화하여 디버깅을 돕는다.
- 의도 분류(Intent Classification)
- — 사용자의 입력 텍스트를 미리 정의된 카테고리(예: 상품 검색, 주문 조회, 일반 대화) 중 하나로 분류하는 자연어 처리 기법이다. 에이전트가 적절한 도구나 워크플로우를 선택하여 실행할 수 있도록 돕는 뇌의 역할을 수행한다.
- 코사인 유사도(Cosine Similarity)
- — 두 벡터 사이의 각도를 측정하여 유사성을 계산하는 수학적 지표이다. 시맨틱 검색에서 질문 임베딩과 문서 임베딩 사이의 유사도를 측정할 때 널리 사용되며, 값이 1에 가까울수록 두 텍스트의 의미가 유사함을 나타낸다.
기술
- Langfuse
- Gemini API
- Streamlit
- Python
- scikit-learn
- numpy
활용 사례
- AI 고객 지원 챗봇
- 이커머스 상품 검색 에이전트
- LLM 성능 모니터링 및 비용 최적화
언급된 리소스
AI 분석 전체 내용 보기
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
원문 발행 2026. 02. 21.수집 2026. 02. 21.출처 타입 RSS
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.