Page History
...
- 사용자 세션별로 생성되는 ChatBotActor 액터모델을 생성합니다.
- ChatBotActor 액터는 추구 추후 SSE와 연결되어 사용자의 대화요청을 처리받아 응답을 SSE로 스트리밍예정입니다. SSE는 당장 구현하지 않고 액터모델에서 스트림형태로 응답을 주는 형태로 구현합니다.
- ChatbotActor 액터는 사용자 세션별로 하나가 대응됩니다. 동일세션이 있을시 동일액터를 재 사용합니다.
- ChatbotActor 액터는 3일동안 세션당 대화가 없으면 스스로 종료합니다. 챗봇세션대응 메모리를 정리하기위한 시스템절약 용도입니다. -액터내 타이머를 이용
- 아래에 설명되는 SearchMemoryActor,DecisionActor는 미리생성되며 ChatbotActor 는 생성된 참조액터를 이용합니다. ChatBotActor생성시 생성된 참조 액터가 전달됩니다.
- SearchMemoryActor는 메모리 검색을 담당합니다. LLM을 이용할수 있으며 요청에대해 검색이 필요한지 판단하며 요청내용과 관련된 내용이 잘 검색할수 있도록 검색에 용이한 자연어 문장으로 변환후 시도합니다. IT관련 용어는 영어단어로 변환합니다.
- src/Memorizer/Services/Memory.cs 을 이용해 메모리를 검색할수 있습니다.
- 메모리 검색기능이 필요없는 요청일시에는 검색을 시도하지 않고 검색 결과 없음으로 응답합니다.
- 메모리 검색기능 에는 문장으로 유사도 검색을 할수 있으며 유사 0.3 이상인것중 최대 5개를 이용합니다.
- 검색결과 자체가 없을시 시도되는 문장에서 키워드를 추출해 영문,한글로 시도해 최대 3번까지 재검색을 시도합니다.
- 이 액터의 목적을 달성하기 위해 LLM을 이용할수 있으며 이용할 프롬프트를 액터모델내 작성합니다.
- DecisionActor 는 요청내용과 검색된 결과가 관련성이 있는지 판단합니다.
- 관련성이 있다고 판단되면 검색된 결과를 이용해 연관문서로 응답을 생성합니다.
- 관련성이 없다고 판단되면 연관문서 없음으로 응답합니다.
- 이 액터의 목적을 달성하기 위해 LLM을 이용할수 있으며 이용할 프롬프트를 액터모델내 작성합니다.
- ChatBotActor가 사용자의 대화요청에 다양한 대응을위해 SearchMemoryActor는, DecisionActor를 이용해 응답을 생성합니다.
- DecisionActor 가 요청에대한 관련 자료를 찾지 못한경우 일반 LLM응답을 생성합니다.
- ChatBotActor는 LLM을 이용해 일반응답을 생성할수 있습니다.
- ChatBotActor는 응답에 대한 내용이 출처 메모리인지? 또는 일반인지 판단해 응답을 생성합니다. 참조된 위치를 추가로 표현할수 있습니다.
- ChatBotActor는 최종응답을 받기까지의 추론하는 과정을 다른액터로부터 수신받을수 있습니다. 이 과정을 추후 SSE스트리밍을 통해서도 표현할수 있어야합니다. SSE스트리밍은 당장 구현하지 않습니다.
...