
233
4
장
지식 추가: 고급
중의성 해소
때로는 쿼리에 여러 의미를 가진 용어가 사용되기도 한다. 앞에서 언급한
그랜드 캐니언
이 좋은
예이다. 중의성 문제를 해결하려면 우선 중의성이 있는지부터 판단해야 한다. 이를 위해, 다음
처럼 검색된 노드들이 모두 동일한 개체를 참조하는지
LLM
에게 묻는다.
@dataclass
class DisambiguationResult:
is_ambiguous: bool
ambiguous_term: str
possibility_1: str
possibility_2: str
def disambiguate(query, node1, node2):
system_prompt = """
쿼리와 그에 대한 답변의 기반이 될 검색된 구절 두 개가 주어집니다.
두 구절이 서로 다른 개체를 동일한 용어로 지칭하는지 판단하세요.
예를 들어 쿼리가 "레드 리버"에 관한 것일 때, 한 구절은 미네소타의 레드 리버에
관한 것이고 다른 구절은 오클라호마/텍사스 경계에 있는 레드 리버에 관한 것일 수
있습니다.
두 구절에 중의성이 없다면 is_ambiguous에 False를 반환하세요.
"""
agent = Agent(model,
result_type=DisambiguationResult,
system_prompt=system_prompt) ...