이번에 요금제 추천을 진행해보면서 간단한 로컬 RAG를 구성해 봤는데, 가벼운 즐거움을 느꼈달까..ㅎㅎ
우선 재미가 있어서 향후에 좀 더 해보기로 했다.
- Exaone / Ollama 로컬 API 를 이용한 Model 적용. (개인적으로는 익시젠을 사용하고 싶은데.. 오픈소스가 아니다)
- Langchain4J의 History 에 Redis를 얹어서 채팅 유지하고 삭제하기.
이번 요금제 추천은 용량기준으로 만들어 봤는데, 기본적인 흐름은 아래와 같다.
1. 임베딩
- 먼저 요금제 전체 데이터를 특정 포맷에 맞춰 TXT 파일로 생성해둔다.
- TXT 파일을 읽어서 초기 한번 임베딩을 해둔다.
2. 사용량 확인.
- 사용자가 웹에서 자신의 인터넷 사용 패턴을 자연스럽게 입력할 수 있도록 한다.
- 물론 사용자의 입력 데이터도 임베딩으로 넣어둔다.
- 사용자의 인터넷 사용패턴을 GPT 에 질의하고 한달 평균 데이터 사용량을 구하도록 한다.
3. 사용량으로 임베딩 데이터의 한달 총 요금제 목록 조회.
- 2번에서 나온 사용량을 기준으로 임베딩된 요금제에서 가능한 요금제 목록을 가져온다. ( 이때 메타데이터를 이용해 필터 처리 가능. )
- 조회된 요금제 목록과 사용자 한달 평균 사용량을 AI 모델에 보내 가장 적합한 요금제는 BEST, 그외 HIGH, LOW 로 타입을 지정해 결과요청을 한다.
- 3개의 데이터를 사용자에게 보여주면서 가입을 유도 한다.
시스템 구성은 Docker 를 사용하여 로컬에 구성.
- Postgresql 17 / Kotlin / Spring Boot / Langchain4j / ChatGPT
- docker-compose.yml 확인.
- 코드는 Github
Git: https://github.com/KimHyeongi/spring-kotlin-rag
GitHub - KimHyeongi/spring-kotlin-rag: 간단한 로컬 RAG를 만들어보자.
간단한 로컬 RAG를 만들어보자. Contribute to KimHyeongi/spring-kotlin-rag development by creating an account on GitHub.
github.com
웹을 띄우고 확인
http://localhost:8080