feat(animal-chat): LanceDB 벡터 검색 RAG 통합
- LanceDB로 MD 문서 252개 청크 인덱싱 - /api/animal-chat에 벡터 검색 컨텍스트 주입 - 마지막 사용자 메시지로 관련 문서 검색 (top 3) - ChromaDB Windows crash로 LanceDB 채택
This commit is contained in:
@@ -3192,10 +3192,22 @@ def api_animal_chat():
|
||||
{chr(10).join(product_lines)}
|
||||
"""
|
||||
|
||||
# 벡터 DB 검색 (LanceDB RAG)
|
||||
vector_context = ""
|
||||
try:
|
||||
from utils.animal_rag import get_animal_rag
|
||||
# 마지막 사용자 메시지로 검색
|
||||
last_user_msg = next((m['content'] for m in reversed(messages) if m.get('role') == 'user'), '')
|
||||
if last_user_msg:
|
||||
rag = get_animal_rag()
|
||||
vector_context = rag.get_context_for_chat(last_user_msg, n_results=3)
|
||||
except Exception as e:
|
||||
logging.warning(f"벡터 검색 실패 (무시): {e}")
|
||||
|
||||
# System Prompt 구성
|
||||
system_prompt = ANIMAL_CHAT_SYSTEM_PROMPT.format(
|
||||
available_products=available_products_text,
|
||||
knowledge_base=ANIMAL_DRUG_KNOWLEDGE
|
||||
knowledge_base=ANIMAL_DRUG_KNOWLEDGE + "\n\n" + vector_context if vector_context else ANIMAL_DRUG_KNOWLEDGE
|
||||
)
|
||||
|
||||
# OpenAI API 호출
|
||||
|
||||
Reference in New Issue
Block a user