Education*
Devops
Architecture
F/B End
B.Chain
Basic
Others
CLOSE
Search For:
Search
BY TAGS
linux
HTTP
golang
flutter
java
fintech
개발환경
kubernetes
network
Docker
devops
database
tutorial
cli
분산시스템
www
블록체인
AWS
system admin
bigdata
보안
금융
msa
mysql
redis
Linux command
dns
javascript
CICD
VPC
FILESYSTEM
S3
NGINX
TCP/IP
ZOOKEEPER
NOSQL
IAC
CLOUD
TERRAFORM
logging
IT용어
Kafka
docker-compose
Dart
LiteLLM을 이용하여 OpenAI API로 멀티 LLM 통합
Recommanded
Free
YOUTUBE Lecture:
<% selectedImage[1] %>
yundream
2024-08-03
2024-07-22
1169
## LiteLLM 하나의 뛰어난 LLM이 다양한 문제를 해결 할 수 있겠지만 모든 문제를 해결책이 되기는 매우 어려울 것이다. 결국 여러 LLM을 검토 해야 하는데, 다양한 LLM 제공자의 API를 통합하는게 중요하다. LiteLLM을 이용하면 다양한 LLM API를 **OpenAI API**를 통해서 표준화하여 통합할 수 있다. LLM에 대한 표준화된 API 사양이 정해지지 않아서 LLM 통합이 복잡해지는 제품 개발 환경에서 특히 가치가 있다. LiteLLM을 이용하면 LLM 애플리케이션에서 설정으로 모델을 교체하는 것만으로 통합을 할 수 있다. 여기에서는 LiteLLM을 이용해서 ollama와 OpenAI ChatGPT를 동일한 인터페이스로 통합해보겠다. ## 사용 툴 * Ollama: 로컬에서 LLM을 실행하기 위해서 사용한다. Ollama 설치는 [Joinc와 함께하는 LLM - 개인 PC에 LLM 환경 구축하기](https://www.joinc.co.kr/w/ollama_setting) 를 참고하자. * LiteLLM: Ollama와 OpenAI API를 **OpenAI API**로 통합한다. * Open WebUI: Open WebUI는 OpenAI API 기반의 LLM에 연결 할 수 있다. ## 구성  ### ollama 모델 확인 로컬 PC에 Ollama가 있으며 여기에는 Llama3-8b와 Ph3:mini 등 몇 개의 모델들이 설치돼 있다. ``` $ ollama list NAME ID SIZE MODIFIED phi3:mini d184c916657e 2.2 GB 32 hours ago llama-3-ko-bllossom-8b:latest d035bc20f557 4.9 GB 32 hours ago llama3:latest 365c0bd3c000 4.7 GB 32 hours ago ``` ### LiteLLM Proxy 실행 LiteLLM 패키지를 이용해서 만든 **LiteLLM Proxy**를 설치했다. 어떤식으로 작동하는지를 체험하기에 좋은 애플리케이션이다. litellm proxy를 설치한다. ``` pip install 'litellm[proxy]' ``` litellm proxy를 실행한다. ollma에 설치된 llama-3-ko-bllossom-8b 을 proxy 했다. ``` litellm --model ollama_chat/llama-3-ko-bllossom-8b --port 4000 ``` ### Open-WebUI 테스트 ##### LiteLLM 연동 Open-WebuI를 실행한다. ``` docker run -d --network=host -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main ``` Open-WebUI의 기본 포트는 8080 이다.  username > settings > Admin settings > connection 으로 연결할 LLM을 관리 할 수 있다.  OpenAI API에 모델을 설정하면 된다. LiteLLM Proxy를 새로운 OpenAI API로 추가했다.  기존 OpenAI 모델에 LiteLLM이 Proxy 한 새로운 모델이 확인된다.  Ollama로 관리하고 있는 llama-3-ko-bllossom 모델을 표준 OpenAI API로 연동해서 사용하는 것을 확인 할 수 있다. ### LiteLLM을 이용한 애플리케이션 개발 LiteLLM은 100여개가 넘는 LLM 을 지원하고 있다. 표준 OpenAI API로 통합 할 수 있기 때문에 간단하게 LLM 애플리케이션을 개발 할 수 있다. 도메인 특화된 Agent 들의 협업이 중요한 애플리케이션의 수요가 높아질 것이라 생각하는데, 유용하게 사용 할 수 있을 것이다. 아래 예제들을 보자 LLM에 상관없이 동일한 인터페이스로 연결하는 것을 확인 할 수 있다. **OpenAI** ```python from litellm import completion import os ## set ENV variables os.environ["OPENAI_API_KEY"] = "your-api-key" response = completion( model="gpt-3.5-turbo", messages=[{ "content": "Hello, how are you?","role": "user"}] ) ``` **VertexAI** ```python from litellm import completion import os # auth: run 'gcloud auth application-default' os.environ["VERTEX_PROJECT"] = "hardy-device-386718" os.environ["VERTEX_LOCATION"] = "us-central1" response = completion( model="chat-bison", messages=[{ "content": "Hello, how are you?","role": "user"}] ) ``` **Azure OpenAI** ```python from litellm import completion import os ## set ENV variables os.environ["AZURE_API_KEY"] = "" os.environ["AZURE_API_BASE"] = "" os.environ["AZURE_API_VERSION"] = "" # azure call response = completion( "azure/<your_deployment_name>", messages = [{ "content": "Hello, how are you?","role": "user"}] ) ``` **Ollama** ```python response = completion( model="ollama/llama2", messages = [{ "content": "Hello, how are you?","role": "user"}], api_base="http://localhost:11434" ) ``` ## 정리 LiteLLM 을 이용한 최종 구성은 아래와 같을 것이다.  LiteLLM을 단일 인터페이스로 하여서 다양한 LLM에 연결 할 수 있는 구성이다.
Recent Posts
vLLM을 이용해서 오픈소스 LLM 서비스 구축하기
Vertex Gemini 기반 AI 에이전트 개발 06. LLM Native Application 개발
최신 경량 LLM Gemma 3 테스트
MLOps with Joinc - Kubeflow 설치
Vertex Gemini 기반 AI 에이전트 개발 05. 첫 번째 LLM 애플리케이션 개발
LLama-3.2-Vision 테스트
Vertex Gemini 기반 AI 에이전트 개발 04. 프롬프트 엔지니어링
Vertex Gemini 기반 AI 에이전트 개발 03. Vertex AI Gemini 둘러보기
Vertex Gemini 기반 AI 에이전트 개발 02. 생성 AI에 대해서
Vertex Gemini 기반 AI 에이전트 개발 01. 소개
Archive Posts
Tags
Copyrights © -
Joinc
, All Rights Reserved.
Inherited From -
Yundream
Rebranded By -
Joonphil
Recent Posts
Archive Posts
Tags