<< [[2025-01-14|Before]] | [[2025-01-16|Next]] >>
## Goal
- Chat message UI 구현하기
- 사용자 질문에 답 반환하기
## TODO
> [!TODO] TODO
> - [v] Chat message input 구현하기
> - [v] Chat message print, save 기능 구현하기
> - [v] Chat message paint 기능 구현하기
> - [v] 사용자 질문에 대한 답 출력하기
> - [v] 전체 문서 요약 기능 구현하기
## Issue/Solution
#### Issue 1
> [!blank]
>
>> [!warning]+ Problem
>>[[2025-01-11]]에서는 사용자의 질문을 답을 구하기 위해 `Refine LECL Chain`을 사용하였다.
>>하지만 해당 `Refine LECL Chain`은 크게 2가지 문제점이 있다.
>>>1. 문서의 전체 요약을 제외한 질문에는 정확하게 대답하지 못한다.
>>>2. 연산 시간이 너무 많이 걸린다. (핵심 문서 약 3분, 관련 문서 약 15분...)
>>
>>이렇한 문제를 해결하기 위해 여러 다른 방법들을 사용해봐야 할 것 같다.
>
>> [!summary]+ Solution
>> 사용자의 질문을 **Stuff LCEL Chain**, **Refine LCEL Chain**, **CrewAI** 총 3가지를 이용해 답을 구해보았다.
>> 3가지 다 핵심 문서의 내용으로만 연산을 수행하였는데, 이와 같은 결과를 얻을 수 있었다.
>>>- `Stuff LCEL Chain` : 연산은 빠르지만 결과 값이 정확하지 않음
>>>- `Refine LCEL Chain` : 연산이 가장 느리며, 요약 기능엔 뛰어나지만 질문에 대해서는 결과 값
>>>- `CrewAI` : 연산 속도는 중간이며, 결과 값이 매우 뛰어나다.
>>
>>결과 값, 시간, 비용을 다 계산해봤을 때, **CrewAI**을 사용하는게 가장 효과적이라는 사실을 깨달았다. 다만, 핵심 문서를 요약하는 결과 값 자체는 `CrewAI`보다 `Refine LCEL Chain`이 더 좋기 때문에 문서 요약 기능은 **Refine LCEL Chain**을 사용하는게 더 좋아 보인다.
#### Issue 2
> [!blank]
>
>> [!warning]+ Problem
>>여러 UI 기능들을 구현하다 보니 `home.py`의 함수들이 너무 많아졌다.
>>이는 코드의 가독성을 해쳐 능률이 매우 떨어지게 되었다.
>
>> [!summary]+ Solution
>> 여러 **modules**을 만들고 각각 기능에 맞게 함수를 옮겨야 할 것 같다.
## Reference
- [[Stuff LCEL Chain]]
- [[Refine LCEL Chain]]
- [[Crew]]
## Git commit contents
- [build : Widget UI 수정](https://github.com/Donghyeon-Shin/DocumentSecretary/commit/4e12cb545fb1ce9821467bdd37acb065044888a0 "build : Widget UI 수정")
- [build : Chat Message UI 구현](https://github.com/Donghyeon-Shin/DocumentSecretary/commit/fc45035b95136485d8f2d3de975c1b18ed559d76 "build : Chat Message UI 구현")
- [build : Stuff RAG Chain 구현](https://github.com/Donghyeon-Shin/DocumentSecretary/commit/bb82eb66b3783c79ac711d963fbfced417578d06 "build : Stuff RAG Chain 구현")
- [build : question 질문에 대한 답 결과 비교(Stuff Chian, Refine Chain, CrewAI)](https://github.com/Donghyeon-Shin/DocumentSecretary/commit/109843a64d5af7af275fd1146f8e14388527a619 "build : question 질문에 대한 답 결과 비교(Stuff Chian, Refine Chain, CrewAI)")
- [build : 문서 전체 요약 구현 및 여러 UI 수정](https://github.com/Donghyeon-Shin/DocumentSecretary/commit/8b0827d4b83ffde8ea8db7b25a4bc5a3f9c3c271 "build : 문서 전체 요약 구현 및 여러 UI 수정")
## What should I do more
- `CrewAI`를 이용해 관련 문서, 관련 이미지를 정보를 바탕으로 사용자의 질문에 도움의 되는 보충 내용 만들기
- `home.py`의 기능들을 `Utiles module`로 이동하기