fix(animal-chat): 프롬프트 + RAG 최적화
1. 프롬프트 개선:
- 상세 요청 감지 ('자세히', '설명해줘' 등)
- 상세 요청 시 10-15문장 응답
- RAG 검색 결과 적극 활용 지시
2. 벡터 검색 수정:
- L2 거리 → 유사도 변환: 1/(1+distance)
- 음수 유사도 문제 해결
- 임계값 0.3 적용 (30% 미만 제외)
3. 컨텍스트 주입 개선:
- 상세 질문 시 n_results=5로 증가
- RAG 활용 지시 추가
This commit is contained in:
@@ -243,11 +243,21 @@ class AnimalDrugRAG:
|
||||
|
||||
output = []
|
||||
for r in results:
|
||||
# L2 거리 (0~∞) → 유사도 (1~0)
|
||||
# 거리가 작을수록 유사도 높음
|
||||
distance = r.get("_distance", 10)
|
||||
score = 1 / (1 + distance) # 0~1 범위로 변환
|
||||
|
||||
# 임계값: 유사도 0.3 미만은 제외 (관련 없는 문서)
|
||||
# L2 거리 2.33 이상이면 제외
|
||||
if score < 0.3:
|
||||
continue
|
||||
|
||||
output.append({
|
||||
"text": r["text"],
|
||||
"source": r["source"],
|
||||
"section": r["section"],
|
||||
"score": 1 - r.get("_distance", 0) # 거리 → 유사도
|
||||
"score": score
|
||||
})
|
||||
|
||||
return output
|
||||
|
||||
Reference in New Issue
Block a user