# 2차 EveryDic Project 시작 - Service 형으로의 전환 을 진행하며, 발생되었던 문제점들은
1. SaaS 기반 서비스로 만들다 보니, 세부적인 컨트롤 기능기반 검색조건을 수정 => 사용하기에 어렵고, 손이 많이 가게됨.
2. 안내 동영상을 틱톡/숏츠/릴스에 올리게 되면, 맨 하단에 타이핑 치는 항목은 가려져 잘 보이지 않게 됨 => 동영상 제작 경험X
3. 쉽게 검색이 가능하도록 '포털검색 / 신문검색 / 실시간검색어 / 일별인기뉴스 / AI' 를 넣음 => 기능적으로 넣다보니 정리가 잘 안되고, 설명(help) 메시지 반영이 누락됨
4. 쉽게 검색하도록 한방검색이 적용되었는데.. 세부 관리체계/분류도 필요함
- 포털검색 한줄로 5개 (Daum/Naver/Bing/Google/Youtube) 검색을 한번에 -> 나쁘지 않음
- 신문검색 한줄로 5개 (조선/중앙/한겨례/경향/연합) 검색을 한번에 -> 나쁘지 않음
- 실시간검색어 한줄로 5개 (시그널랩-한국/구글-미국/구글-영국/구글-러시아/구글-독일) -> 한국 이용은 OK.. 외국?
- 일별인기뉴스 한줄로 11개.. ;; (네이트-한국-시사/네이트-한국-스포츠/네이트-한국-연예/구글-한국 / 구글-기타나라들..) -> 입력시 11개의 압박??
5. 한/영이 섞여 있는 부분 => 한국 대상을 타겟으로 잡는게 낫겠다는 생각
6. 텔레그램은 일반 사용자가 쉽게 접하지 않는 부분 => 카카오톡 도 추가 필요
=> 클라우드 기반환경 확보에 따라 '리팩토링 + 확장형 구성 + 개선점' 진행 예정
# EveryDic 리팩토링 시작
1. Hardware (Free)
- Oracle Cloud (OCI)
- 4core 24G Aarch64
2. Software
- Python3.11 + venv
- Redis 7.x
- FastAPI + uvicorn
- pm2
- python-telegram-bot:20.x
- Selenium/Chromium
- Crontab
- Filmora12
3. Application
1) APIServer : FastAPI 기반 Redis 자료형처리
2) TelegramBot : python-telegram-bot 기반
3) KakaoChatBot : chatbot.kakao.com 기반
4) SearchRunner : Crontab 기반 주기적인 검색 & 전달 수행
4. Redis Data Processing
1) Hash(숫자) 기반 처리 : String -> Number 로 변환하여 메타 및 중복 관리. (String 처리는 리소스를 많이 써요)
2) 채널별 발송기사 중복방지 : Redis - Sets 을 활용하고, 제목을 Hash로 변환하여 숫자로 처리해요.
3) 채널별 검색카드 항목관리 : Redis - Lists 로 채널별 검색카드 목록을 관리해요.
4) 검색할 카드 입력관리 : Redis - Hashs 로 개인별 검색카드의 입력/관리해요 (유효시간 셋팅)
5) 검색할 카드 구성관리 : Class 에 대문자 변수명으로 구성항목을 설정, 소문자 메서드명을 통해 조회나 필수값 등의 유틸성 체크를 해요. 구성항목이 변경될 때마다 하드코딩을 최소화하기위한 내역이에요.
6) 검색할 카드 저장/전달 : Python - dict() 오브젝트로 돌아다니며, Redis 인/출시 encoding(utf-8)과 더불어 마샬/언마샬링 개념으로 '오브젝트<->바이트스트링' 으로 전환/전달 합니다.
7) 검색 시간 및 인터벌 관리 : HashSet 기반. 채널별 디폴트 9 - 18, 3시간 간격 자동검색이나 Start - End 시간조정 및 인터벌 설정 가능
5. 검색 카테고리
- 검색 : 다음 / 네이버 / 유투브 / 구글 / Bing
- 관공서 : 오픈정부(서울)
- 신문 : 연합 / 조선 / 중앙 / 경향 / 한겨레
- 인기뉴스(일간) : 네이트(시사/연예/스포츠), 구글(한국/미국/영국/러시아/독일/우크라이나/이탈리아/싱가폴)
- 실시간(검색어) : 시그널랩(한국), 구글(미국/영국/러시아/독일)
6. ChatGPT gpt-3.5-turbo 연동
- 질문시 사용자별 user 구분값 설정
- 질문시 timeout 값 설정
- Telegram 그룹별(채팅방) AI 의 역할(system) 설정기능 추가
- 사용자별 질문/답변 정보를 1시간 동안 저장(redis hashes/expired기반)
- 사용자별 저장된 질문/답변 정보 중 last 2개의 질문/답변을 assistant 로 질문시 활용
> gpt-4 신청 후 대기 중
7. CheckList
[ ] APIServer 로 마이그레이션
[ ] python-telegram-bot:20.x + GUI 기반으로 마이그레이션
[ ] 내부 명령어 매핑기능 추가
[ ] kakao chatbot 연동
[O] AI 연동 (ChatGPT3 - davinci)
[O] AI 연동 (ChatGPT3.5 - turbo) + 기능 확장
[ ] AI 연동 (ChatGPT4) : waiting
[O] 도움말 업데이트
[ing] 소개영상 지속 제작 및 업로드 (숏츠/릴스/틱톡)
[ - ] 검색 카테고리 추가
[ ] 검색조건 멀티 페이징 처리 (or 스크롤링)
[ ] Telegram 에서 샘플 수집시 (페이징/스크롤링 X)
# EveryDic - SaaS 서비스 유지 (Telegram 에서 '그룹 만들기 -> @EveryDicBot 추가' 후 사용 가능)
1. [Shorts] 실시간 검색어 자동수신 (시그널랩/구글) : https://youtube.com/shorts/9mZlgg_Y5cA
2. [Shorts] 일간 인기뉴스 자동수신 (구글/네이트) : https://youtube.com/shorts/DztRWULmp6g
3. [Shorts] 신문 검색 자동수신 (연합/조선/중앙/경향/한겨레) : https://youtube.com/shorts/l1hmY38Jeko
4. [Shorts] 포탈 검색 자동수신 (네이버/다음/구글/유투브/Bing) : https://youtube.com/shorts/7VWiXUbMCL0
5. [Shorts] AI(ChatGPT) 연동 : https://youtube.com/shorts/PYcrRXrmkYY

'EveryDic Project' 카테고리의 다른 글
| EveryDic Project 시작 - Service 형으로의 전환 (0) | 2022.12.12 |
|---|---|
| [초기] TRIC : 정보를 편리하게 반복적으로 전달하자 (4) | 2022.09.18 |