본문 바로가기

개발10

[LiteLLM] OpenAI format 커스텀 LLM Agent 만들기 안녕하세요? 오늘은 LiteLLM을 사용해서 OpenAI format의 커스텀 LLM Agent를 만들어 보겠습니다. LiteLLM? LiteLLM은 이미 존재하는 100+ 이상의 LLM들에 대한 Client 패키지와 Proxy를 지원해주는 패키지 입니다. LiteLLM을 사용하게 되면 쉽게 다양한 LLM들을 사용할 수 있습니다. 저는 UI에서 다양한 LLM 이외에도, 자체적으로 개발한 Custom LLM을 연결하는 Proxy 기능으로 활용을 하게 됐습니다. https://litellm.vercel.app/ LiteLLM - Getting Started | liteLLM https://github.com/BerriAI/litellm litellm.vercel.app Custom OpenAI Proxy L.. 2024. 4. 17.
[EKS] Gatekeeper 안녕하세요? K8S에서 Cluster를 관리 혹은 사용하다 보면, 코드 변경 없이 third party 소프트웨어의 K8S 리소스 값을 변경해야 하거나 일괄로 설정을 적용해야 할 때가 있습니다. Gatekeeper 를 사용하면 이와 같은 상황을 쉽게 해결 할 수 있습니다. Gatekeeper? Gatekeeper는 K8S는 OPA(OpenPolicyAgent)에서 만든 프로젝트로서 K8S의 자원에 대해서 Policy 설정을 할 수가 있습니다. Helm 설치 설치 방법은 변경될 수 있기 때문에, 공식 Github을 참조하시는 것이 좋습니다. https://github.com/open-policy-agent/gatekeeper/blob/master/charts/gatekeeper/README.md gat.. 2024. 4. 15.
[K8S] Ephemeral Container 안녕하세요? Kubernetes 기반에서 앱을 개발하다 보면, 로컬에 있는 IDE에서 Kubernetes에서 동작하고 있는 container에 연결해서 리모트 디버깅을 해야 할 경우가 있습니다. Java에서는 JMX를 enable해서 포트만 오픈하면 상대적으로 쉽게 접근이 가능합니다만, Python에서는 이러한 리모트 디버깅을 할려면 별도의 debuging 패키지를 설치해서 실행해야만 합니다. 이러한 특정 경우를 위해서 디버깅용 서비스를 항상 띄우는 것은 굉장히 비효율적입니다. 그렇기 때문에, Kubernetes에서는 이렇게 임시적으로 POD에 임시 container를 붙이기 위한 Ephemral Container라는 기능을 제공해줍니다. https://kubernetes.io/docs/concept.. 2024. 3. 7.
[EKS] Knative volume support - PVC 안녕하세요? Knative를 사용하다가 pvc를 Knative의 ksvc에서 사용을 해야 해서 알아봤습니다. Knative에서 pvc를 mount를 하기 위해서는 설정을 변경해야만 합니다. pvc 이외의 configmap 등의 volume 유형에 대해서는 바로 사용이 가능합니다. Knative operator를 사용하는 경우에, 아래 처럼 features에 pvc 설정을 추가하면 됩니다. apiVersion: operator.knative.dev/v1beta1 kind: KnativeServing metadata: name: knative-serving namespace: knative-serving spec: ... config: features: # 아래 두 설정을 추가하면 됩니다. kubernete.. 2024. 3. 6.