[LLM / MLOps] Dify 자체 호스팅
제가 CTO로 있는 디비디랩에서는 좋은 유저 리서치를 할 수 있게 돕기 위해서 여러 LLM 프롬프트와 이를 종합한 에이전트를 개발해서 사용하고 있어요. 그 중에서 Dify라는 서비스를 활용해 두 개 이상의 프롬프트에 로직과 플로우 제어를 더해서 하나의 목표를 가진 워크플로우를 만드는 데 유용하게 사용하고 있어요. 디파이는 유료 플랜을 사용해서 사용할 수도 있지만, 태생적으로 오픈소스 솔루션(깃허브 리포지토리)이기 때문에 직접 호스팅해서 사용하는 것도 당연히 가능합니다. 이 아티클에서는 고유 요구사항을 따라서 디파이를 자체 호스팅한 과정을 소개합니다. 1. 요구사항 헬름 차트를 통해서 쿠버네티스 클러스터 위에 배포할 수 있어야 합니다. PostgreSQL은 Amazon RDS를 사용합니다. Redis는 쿠버네티스 클러스터 위에 이미 존재하는 클러스터를 사용합니다. 벡터 스토어는 Qdrant를 사용하고, 쿠버네티스 위에 자체 호스팅합니다. 인그레스 자원을 사용하지 않고 Gateway API의 HTTPRoute 자원을 사용합니다. VPN을 통해 내부망에 접속한 다음에 디파이에 접속할 수 있습니다. 2. 디파이 헬름 차트 디파이는 공식 헬름 차트를 제공하지 않고, docker-compose를 사용한 설치 방법과 소스 코드로부터 설치하는 방법만 제공하고 있어요. 😢 (공식 문서 참조) 다행히 깃허브 리포지토리에 커뮤니티에서 관리하는 헬름 차트를 소개(깃허브 리포지토리 참조)하고 있어서, 아예 바닥부터 차트를 만들어야 하는 수고는 덜 수 있었습니다! 2.1. 차트 선정 공식 리포지토리에서 소개한 헬름 차트는 두 개입니다. LeoQuote가 관리하는 차트 (douban/dify) BorisPolonsky가 관리하는 차트 (BorisPolonsky/dify-helm) 여기서 첫 번째 차트는 두 번째 차트보다 나중에 시작된 프로젝트인데요. 패스워드와 API 키와 같은 민감정보를 평문으로 넘겨야 하는 한계때문에 만들어진 차트이지만, 현재는 둘 다 시크릿을 사용할 수 있게 되어 있어요. 솔직히 말해서, 어느 쪽도 완성되었거나 완벽하다고 할 수 없지만 첫 번째 차트의 경우가 사용자 입장에서 더 편리하다고 생각합니다. 우선 BorisPolonsky의 차트는 밸류가 너무 많아서 완전히 이해하고 값을 통제하기가 어려워요...
- Kubernetes
- Helm
- LLM
- Dify
- uniglotU
1
1