19. 반복문(While)과 File search
Tips
- File Search는 가급적 노드를 생성하는 것 보다는 Agent의 Tool로 추가하는 것을 권장
- 노드로 File Search를 구현할 경우 로직이 복잡해질 수 있음
- 아래 실습 내용은 File Search 노드와 While 노드를 사용하는 방법에 대한 이해를 돕기 위한 예시임
실습 내용
워크플로우
Start
- State variables
- var1
- Type:
Boolean
- Name:
loop_continue
- Default value:
true
- Type:
- var2
- Type:
Number
- Name:
loop_count
- Default value:
0
- Type:
- var3
- Type:
List
- Name:
search_results
- Type:
- var1
While
- Start 노드와 연결
-
Expression:
state.loop_continue && state.loop_count < 5
loop_continue 변수가 true이고, loop_count 변수가 5 미만인 동안 반복
Embedding 텍스트 생성 (Agent)
- While 내부의 첫번째 노드
- Configurations
- Name:
Embedding 텍스트 생성
- Instructions:
- Output format:
Text
- Display response in chat:
False
- Write to conversation history:
False
- Name:
File Search
- Embedding 텍스트 생성 노드와 연결
- Configurations
- Vector store: AWS DeepRacer 개발 가이드를 업로드한 Vector store의 id를 입력
- Max results:
3
검색 결과 최대 3개 반환
- Query:
{{input.output_text}}
Set state
- File Search 노드와 연결
- variables
- var1
- Assign value:
input.results
- To variable:
search_results
- Assign value:
- var1
검색된 텍스트 결과 점검 (Agent)
- Set state (from File Search) 노드와 연결
-
Configurations
- Name:
검색된 텍스트 결과 점검
- Instructions:
-
Output format:
JSON
- Properties
- property 1
- Name:
is_relevant
- Type:
BOOL
- Description:
사용자의 질문과 관련된 문서 내용이 검색되었는지 여부
- Name:
- property 1
- Properties
-
Display response in chat:
False
- Write to conversation history:
False
- Name:
IF / else
- 검색된 텍스트 결과 점검 노드와 연결
- Condition 1
- Case Name:
관련 있는 문서
- Condition:
input.output_parsed.is_relevant
- Case Name:
Set state
- IF / else 노드의 관련 있는 문서 케이스와 연결
- variables
- var1
- Assign value:
false
- To variable:
loop_continue
- Assign value:
- var1
Set state (IF / else의 관련 없는 문서 케이스)
- IF / else 노드의 관련 없는 문서 케이스와 연결
- variables
- var1
- Assign value:
state.loop_count + 1
- To variable:
loop_count
- Assign value:
- var1
Agent
- While 노드와 연결
- Configurations
- Instructions:
- Include chat history:
True
- Output format:
Text
- Display response in chat:
True
- Write to conversation history:
True
Set state
- Agent 노드와 연결
- variables
- var1
- Assign value:
true
- To variable:
loop_continue
- Assign value:
- var2
- Assign value:
0
- To variable:
loop_count
- Assign value:
- var1
지문 예시
- User:
딥레이서의 불빛 색깔이 의미하는 바는 무엇인가요?
- User:
2002년 월드컵 당시 한국의 날씨는 어땠나요?
(검색된 문서 내용이 없으므로 5회 반복 후 종료)