인프런 커뮤니티 질문&답변
병렬 처리 중 retrieve 관련 궁금한 사항
작성
·
24
0
안녕하세요~ 강의 정말 재밌게 잘 듣고 있습니다!!
2.7 병렬 처리를 통한 효율 개선
강의의
tax_rate_calculation_prompt = ChatPromptTemplate.from_messages([
('system', '''당신은 종합부동산세 계산 전문가입니다. 아래 문서를 참고해서 사용자의 질문에 대한 종합부동산세를 계산해주세요
종합부동산세 세율:{context}'''),
('human', '''과세표준과 사용자가 소지한 주택의 수가 아래와 같을 때 종합부동산세를 계산해주세요
과세표준: {tax_base}
주택 수:{query}''')
])
def calculate_tax_rate(state: AgentState):
"""
주어진 state에서 세율을 계산합니다.
Args:
state (AgentState): 현재 에이전트의 state를 나타내는 객체입니다.
Returns:
dict: 'answer' 키를 포함하는 새로운 state를 반환합니다.
"""
# state에서 필요한 정보를 추출합니다.
query = state['query']
tax_base = state['tax_base']
# retriever를 사용하여 쿼리를 실행하고 컨텍스트를 얻습니다.
context = retriever.invoke(query)
# tax_rate_chain을 구성하여 세율을 계산합니다.
tax_rate_chain = (
tax_rate_calculation_prompt
| llm
| StrOutputParser()
)
# tax_rate_chain을 사용하여 세율을 계산합니다.
tax_rate = tax_rate_chain.invoke({
'context': context,
'tax_base': tax_base,
'query': query
})
# state에서 'answer' 키에 대한 값을 반환합니다.
return {'answer': tax_rate}이 부분에서 들은 궁금증인데요,
context 는 과세표준별 세율 구간에 관한 정보를 가져오는 변수인데 왜 query에는 과세표준이 아닌 사용자의 주택 정보를 넣어서 invoke하는 형태인가요?
답변 1
0
제이쓴
지식공유자
안녕하세요! 좋은 질문 감사합니다.
질문해주신 내용은 프롬프트 작성에 관한 팁이라고 말씀드릴 수 있는데요

주택에 대한 세금을 산정할 때, 공제액이라는 개념이 들어가게 되는데요, 세금을 내는 사람이 보유한 주택의 수가 공제액에 영향을 미치게 됩니다. 그래서 프롬프트에 조금 더 구체적으로 명시를 해서 LLM이 더 정확한 답변을 생성하게 하기 위함이라고 보시면 됩니다




