honey_pot
LLM 기반 챗봇 애플리케이션 구조 본문
내용, 코드 출처 : Anatomy of LLM-Based Chatbot Applications: Monolithic vs. Microservice Architectural Patterns
Monolithic architecture
- an approach that involves building the entire application as a single, self-contained unit.
- simple and easy to develop but can become complex as the application grows.
- All application components, including the user interface, business logic, and data storage, are tightly coupled in a monolithic architecture.
- Any changes made to one part of the app can ripple effect on the entire application.
- great starting point for a Data Scientist to build an initial proof-of-concept quickly and get it in front of business stakeholders.
Microservices architecture
- better bet over a monolithic one
- more flexibility and scalability
- different specialized developers to focus on building the various components.
해당 게시글의 코드 구현은 두 가지 형태
1. Monolithic : 공통으로 사용할 utils.py + ui를 담당하고 함수를 콜하는 main 함수가 담긴 monolith.py
-> streamlit run monolith.py 로 run
2. Microservice : fastapi를 이용하여 chatbot 객체를 생성하고 health_check(), llm_response()를 담당하는 backend.py, payload를 받아서 streamlit의 session_state에 추가한 뒤 main() 함수를 통해 UI로 나타내는 frontend.py, utils.py
-> 백엔드 run(docs에서 api 확인): uvicorn backend:app --reload
-> 프론트엔드 run : streamlit run frontend.py
코드 실행 시 결과는 다음과 같음
hallucination 덕에 개가 없는데 개와 산책을 다녀왔다는 챗봇
llama 모델 자체로 backend를 구현하는 때가 올 것 같아서 찾아보다가 한번 따라 해봤는데
streamlit, fastAPI 기반으로 앱을 쉽게 구현하는 걸 보니 정말 머지 않았다 싶다...
'기타' 카테고리의 다른 글
tensorflow retracing warning 없애기 (0) | 2023.08.09 |
---|---|
PEP 703 : Python의 GIL 제거 (0) | 2023.07.11 |
Streamlit 신기하다 (0) | 2023.06.20 |
M1 Ventura + Wacom PTH-651 타블렛 연결 (0) | 2023.04.13 |
[백업] scikit-learn GridSearchCV ConvergenceWarning 끄기 (0) | 2023.03.29 |