Raspberry Pi'de LiteLLM ile Yapay Zeka Proxy Kurulumu

Bu yazı, PiMyLifeUp - Setting up an AI Proxy on the Raspberry Pi with LiteLLM kaynağından Türkçe'ye çevrilerek hazırlanmıştır.

Bu projede, LiteLLM kullanarak Raspberry Pi'nizi nasıl uygun maliyetli bir yapay zeka proxy'sine dönüştürebileceğinizi göstereceğiz.

Raspberry Pi LiteLLM Yapay Zeka Proxy

LiteLLM, mevcut çok sayıdaki büyük dil modeli için bir proxy görevi görmek üzere tasarlanmış bir yazılımdır. Bu proxy'yi kullanışlı kılan temel özellik, farklı tüm LLM API'lerini tek bir API'ye dönüştürmesidir.

Tutarlı bir istek biçimi ve yanıt, farklı LLM'leri iş akışınıza entegre etmeyi çok daha kolay hale getirir. Ayrıca, Raspberry Pi'nizdeki OpenWebUI gibi yazılımları yalnızca OpenAI ile değil, daha fazla yapay zeka sağlayıcısıyla kullanmanızı sağlar.

Raspberry Pi, özellikle bunu yalnızca kendi ev kullanımınız için kullanmayı düşünüyorsanız, 7/24 çalışır durumda tutması uygun maliyetli olduğundan bir LiteLLM yapay zeka proxy'si olarak çalıştırmak için harika bir cihazdır.

Bu yazılımı çalıştırmanın Raspberry Pi'nizde 64-bit bir işletim sistemi gerektirdiğini lütfen unutmayın. Bu, bir Pi 3 veya daha yenisini kullanmanız gerektiği anlamına gelir. Kullandığımız LiteLLM Docker konteyneri, 32-bit sistemler için hiçbir destek sunmuyor.

Raspberry Pi'nizde LiteLLM Kurulumu ve Çalıştırılması

Aşağıdaki bölümlerde, Raspberry Pi'nizde LiteLLM Yapay Zeka Proxy'sini kurma ve ayarlama sürecinde size adım adım rehberlik edeceğiz.

Raspberry Pi'nizi Hazırlama

1. Raspberry Pi'mizde LiteLLM yapay zeka proxy'sini kurmadan önce, işletim sistemimizin güncel olduğundan emin olmak isteyeceğiz.

Sisteminizin mevcut paketlerini güncellemek için aşağıdaki iki komutu kullanabilirsiniz. İlki paket listesi önbelleğini günceller, ikincisi ise güncel olmayan paketleri yükseltir.

sudo apt update
sudo apt upgrade -y

2. Güncelledikten sonra, bir sonraki adımda Docker çalışma zamanını kurmanız gerekir. LiteLLM'in Raspberry Pi'nizde kurulumunu çok daha basit bir işlem haline getirmek için Docker kullanacağız. Bu, kodu manuel olarak klonlama ve derleme zahmetinden bizi kurtarır.

Daha önce Docker kurmadıysanız, Raspberry Pi'ye Docker kurulumu hakkındaki kendi rehberimizi takip etmenizi şiddetle tavsiye ederiz. Bu eğitimimiz, bunu takip ettiğinizi varsayacaktır.

3. Docker'ı kurduktan sonra, LiteLLM proxy'sini çalışır hale getirmeye geçebiliriz. Bu sürecin ilk kısmı, hem Compose dosyasını hem de proxy'nin veritabanını saklayacağımız bir dizin oluşturmaktır.

Aşağıdakini çalıştırarak bu dizini oluşturmak için mkdir komutunu kullanabilirsiniz.

sudo mkdir -p /opt/stacks/litellm

4. Dizini oluşturduktan sonra, cd komutunu kullanarak içine girmek isteyeceksiniz.

Sonraki birkaç adım için bu klasörde olmamız gerekiyor.

cd /opt/stacks/litellm

Raspberry Pi'nizde LiteLLM Proxy'sini Çalıştırmak İçin Bir Compose Dosyası Yazma

5. Artık Raspberry Pi'mizde LiteLLM Yapay Zeka Proxy'sini kuracak ve çalıştıracak Docker Compose dosyasını yazabileceğimiz noktadayız.

Aşağıdaki komutu çalıştırarak bu dosyayı Nano metin editörünü kullanarak yazabilirsiniz.

sudo nano compose.yaml

6. Bu dosyanın içine aşağıdaki satırları girin. Bu satırlar iki ayrı Docker konteyneri kuracaktır. Biri, Raspberry Pi'nizdeki yapay zeka isteklerini işleyip proxy'leyecek olan LiteLLM içindir.

İkinci konteyner ise bir Postgres veritabanıdır. LiteLLM, verilerini saklamak için bunu kullanacaktır ve yazılımın web arayüzünü etkinleştirmesi için gereklidir.

Bu dosyada herhangi bir şey yapılandırmamıza gerek yok, çünkü bunların tümü daha sonra bir ortam (environment) dosyası içinde yapılacak.

services:
  litellm:
    image: ghcr.io/berriai/litellm:main-latest
    restart: unless-stopped
    depends_on:
      - litellm-db
    environment:
      DATABASE_URL: postgresql://litellm:litellm@litellm-db:5432/litellm
      LITELLM_MASTER_KEY: ${LITELLM_MASTER_KEY}
      UI_USERNAME: ${UI_USERNAME}
      UI_PASSWORD: ${UI_PASSWORD}
      STORE_MODEL_IN_DB: "True"
    ports:
      - 4000:4000
  litellm-db:
    image: postgres:16-alpine
    healthcheck:
      test:
        - CMD-SHELL
        - pg_isready -U litellm -d litellm
      interval: 5s
      timeout: 5s
      retries: 5
    volumes:
      - ./db:/var/lib/postgresql/data:rw
    environment:
      POSTGRES_DB: litellm
      POSTGRES_USER: litellm
      POSTGRES_PASSWORD: litellm
    restart: on-failure:5

7. Bu dosyayı doldurmayı bitirdikten sonra, CTRL + X, Y ve ardından ENTER tuşlarına basarak kaydedip çıkın.

LiteLLM'i .env Dosyası Üzerinden Yapılandırma

8. Compose dosyası artık yazıldığına göre, LiteLLM konteyneri başlatıldığında otomatik olarak okunacak olan ".env" dosyasını yazabiliriz.

Raspberry Pi'nizde aşağıdaki komutu kullanarak bu dosyayı yazmaya başlayın.

sudo nano .env

9. Bu dosyanın içine aşağıdaki satırları girin. Bunu doldururken değiştirmeniz gereken birkaç önemli yer tutucu vardır.

  • <MASTERKEY>: Bunu, LiteLLM proxy'niz için "ana anahtar (master key)" olarak kullanılacak uzun bir anahtarla değiştirmelisiniz. Bu, esasen proxy'de kurduğunuz tüm modellere tam erişim verecek bir API anahtarıdır. Bunun uzun, güvenli ve rastgele bir dize olduğundan emin olun. LiteLLM proxy'sinin web arayüzü üzerinden daha ayrıntılı API anahtarları oluşturabileceksiniz.

  • <USERNAME>: Bu yer tutucuyu, web arayüzü üzerinden giriş yapmak için kullanacağınız kullanıcı adıyla değiştirin.

  • <PASSWORD>: Ayrıca, hesabınıza giriş yapmak için kullanılacak bir şifre de belirlemelisiniz.

    LITELLM_MASTER_KEY=
    UI_USERNAME=
    UI_PASSWORD=

10. ".env" dosyası artık yazıldığına göre, CTRL + X, Y ve ardından ENTER tuşlarına basarak kaydedip çıkın.

Raspberry Pi'de LiteLLM Yapay Zeka Proxy'sini Başlatma

11. Sonunda her şey hazır ve Raspberry Pi'mizde LiteLLM yapay zeka proxy'mizi başlatabiliriz.

Bu komutu çalıştırdığınızda, Docker hem LiteLLM hem de PostgresDB konteynerlerini indirip başlatacaktır. Başlangıç sırasında, ana anahtarı ve arayüz kullanıcı adı ile şifresini doldurmak için ".env" dosyasını okuyacaktır.

Ayrıca, konteynerleri başlattıktan sonra Docker'ın arka planda çalışmaya devam etmesini sağlamak için "-d" seçeneğini kullanıyoruz.

docker compose up -d

LiteLLM Web Arayüzüne Bağlanma

12. LiteLLM artık Raspberry Pi'nizde çalışır durumda olduğuna göre, web arayüzüne erişmek isteyeceksiniz. Bu web arayüzü, yapay zeka proxy'nize model ekleyeceğiniz, API anahtarları oluşturacağınız, kullanımı görüntüleyeceğiniz ve daha fazlasını yapacağınız yerdir.

Bu arayüze erişmek için, Pi'nizin IP adresini bilmeniz gerekecek. Raspberry Pi'nizin IP adresini almanın en kolay yollarından biri hostname komutunu kullanmaktır.

hostname -I

13. Şimdi, favori web tarayıcınızda aşağıdaki adrese gitmek isteyeceksiniz.

"<IPADRESI>" kısmını Pi'nizin IP'siyle değiştirdiğinizden emin olun.

http://<IPADRESI>:4000/ui

Örneğin, IP adresiniz "192.168.0.22" ise, aşağıdaki adresi kullanırdınız.

http://192.168.0.22:4000/ui

14. Şimdi sizi LiteLLM Web arayüzü giriş ekranı karşılamalıdır. Daha önce belirlediğiniz kullanıcı adı ve şifreyi (1.) kullanmak isteyeceksiniz.

Giriş bilgilerinizi doldurduktan sonra, "Submit" düğmesine (2.) tıklayın.

Raspberry Pi'de LiteLLM Yapay Zeka Proxy'sine Giriş Yapma

Yapay Zeka Proxy'sine Bir Model Ekleme

15. Raspberry Pi'nizde LiteLLM yapay zeka proxy'sini kurarken yapmak isteyeceğiniz ilk şey bir model eklemektir.

Bu süreci başlatmak için, kenar çubuğunu kullanarak "Models" ekranına geçin.

Modeller Ekranını Açma

16. Modeller ekranına geçtikten sonra, "Add Model" sekmesine tıklamak isteyeceksiniz.

Model Ekle Ekranına Geçme

17. Bu ekran, Proxy'nize herhangi bir mevcut modeli eklemenize izin verecektir. İhtiyacınız olan tek şey, eklemeyi planladığınız sağlayıcı için bir API anahtarıdır.

  1. Provider: Öncelikle kullanmayı düşündüğünüz modelin sağlayıcısını seçmelisiniz. Örneğimizde OpenAI kullanacağız.
  2. LiteLLM Model Name(s): Sonraki seçenek, LiteLLM proxy üzerinden kullanılabilir hale getirmek istediğiniz modelleri seçmenize izin verir. Bunu göstermek için, "gpt-4o" ve "gpt-4o-mini" olmak üzere iki farklı model seçeceğiz.
  3. Model Mappings: Bu seçeneklerle, eklediğiniz her model için kullanılan genel (public) adı kontrol etmek mümkündür. Genel adı değiştirmek, LiteLLM proxy üzerinden bu adı kullanmanıza olanak tanır.
  4. API Key: Son olarak, LiteLLM'in sağlayıcınızla konuşması için kullanılacak bilgileri belirtmelisiniz. Sağlayıcıların büyük çoğunluğu için bu bir API anahtarı olacaktır. OpenAI ile bu alan "OpenAI API Key" olarak etiketlenecektir.

Her şeyi ayarladıktan sonra memnun kaldığınızda, "Add Model" düğmesine (5.) tıklayarak bu modeli LiteLLM'e ekleyebilirsiniz.

Raspberry Pi LiteLLM Proxy'nize İlk Yapay Zeka Modelinizi Ekleme

Yapay Zeka Proxy'sini Test Etme

18. Raspberry Pi LiteLLM yapay zeka proxy'mize bir modele erişim verdiğimize göre, her şeyin düzgün çalıştığını test edelim.

Neyse ki web arayüzü, modelleri ve API anahtarlarını test etmeyi kolaylaştıran yerleşik bir işlevselliğe sahiptir. Bunu test etmek için, kenar çubuğunu kullanarak "Test Key" ekranına geçin.

API anahtarınızı test etmeye başlama

19. Bu ekranda, "API Key Source" seçeneğini "Current UI Session" (1.) olarak değiştirin. Bunu yapmamız gerekiyor çünkü Raspberry Pi'mizde henüz benzersiz API anahtarları oluşturmadık.

Anahtar kaynağını ayarladıktan sonra, test etmeyi düşündüğünüz modeli seçmek için ikinci seçim kutusunu kullanabilirsiniz (2.).

Son olarak, yapay zeka modeliyle konuşmak ve her şeyin amaçlandığı gibi çalıştığını doğrulamak için metin kutusunu kullanabilirsiniz (3.).

Yeni bağlanan yapay zeka modelinizi test etme

Raspberry Pi'de LiteLLM Proxy İçin Bir API Anahtarı Oluşturma

20. Raspberry Pi'nizde çalışan LiteLLM Proxy'sine bir Yapay Zeka Modeli eklediğinize göre, proxy ile konuşmak için kullanılabilecek bazı API anahtarları oluşturmak isteyeceksiniz.

Yeni bir API anahtarı oluşturmak için önce kenar çubuğunu kullanarak "Virtual Keys" ekranına geçin (1.). Bu ekrana geçtikten sonra, ekranın üstündeki "Create New Key" düğmesine tıklayın (2.).

LiteLLM Proxy için API anahtarı oluşturma menüsünü açma

21. Bu ekranda yapmanız gereken ilk şey bu API anahtarına bir isim vermektir (1.). Bu, bu anahtarın ne için kullanılacağını belirlemenizi sağlar.

Bir anahtar belirledikten sonra, "Create Key" düğmesine tıklayın (2.).

Raspberry Pi'nizdeki LiteLLM proxy'sine erişmek için anahtar oluşturma

22. Bir anahtar oluşturulduğunda, ekranınızda görüntülenecektir. Bir daha size gösterilmeyeceği için bu anahtarı kopyalamanız gerekir.

Bu menüyü yanlışlıkla anahtarı kopyalamadan kapatırsanız, sadece silin ve yeni bir anahtar oluşturmak için adımları tekrarlayın.

API anahtarını alma

Raspberry Pi'nizde LiteLLM'i Test Etmek İçin Curl Kullanma

23. Bu noktada, Raspberry Pi'mizde LiteLLM yapay zeka proxy'sini başarıyla kurup başlattık. Şimdi terminali kullanarak, LiteLLM'in API uç noktalarından birine istek göndermek için curl kullanarak bunu test edebiliriz.

LiteLLM, OpenAI API'sini birebir kopyaladığından, kullandığımız completions uç noktası hakkında daha fazla bilgiyi OpenAI dokümantasyonunu okuyarak edinebilirsiniz.

Bu komutu yazarken değiştirmeniz gereken birkaç yer tutucu vardır.

  • <IPADDRESS>: Bu yer tutucuyu, LiteLLM proxy'sinin çalıştığı Raspberry Pi'nizin IP adresiyle değiştirin.

  • <APIKEY>: Bunu, LiteLLM web arayüzünden oluşturduğunuz API anahtarıyla değiştirin.

  • <MODEL>: Ardından, çalıştırmak istediğiniz yapay zeka modelinin adını belirtmelisiniz. Bu, LiteLLM içinde ayarlandığı şekliyle modelin genel adıyla eşleşmelidir.

  • <MESSAGE>: Son olarak, uç noktaya göndermek istediğiniz mesajı yazabilirsiniz.

    curl -X POST http://:4000/v1/chat/completions
    -H "Content-Type: application/json"
    -H "Authorization: Bearer "
    -d '{
    "model": "",
    "messages": [
    {
    "role": "user",
    "content": ""
    }
    ]
    }'

Aşağıda, bu komutun doldurulmuş bir sürümünün nasıl görünebileceğine dair bir örnek bulunmaktadır.

curl -X POST http://192.168.0.22:4000/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-BcZHz5DJud5thC3f0E5HvA" \
-d '{
    "model": "gpt-4o",
    "messages": [
        {
            "role": "user",
            "content": "What is pimylifeup"
        }
    ]
}'

26. Aşağıda, LiteLLM proxy API uç noktasından gelen yanıtın nasıl göründüğüne dair bir örnek görebilirsiniz. Ardından, yeni proxy'nizi kullanarak çeşitli yapay zeka modelleriyle etkileşim kurmak için bir Python betiği veya benzeri bir şey yazabilirsiniz.

Bu yazılım, inanılmaz derecede kullanışlı OpenWebUI arayüzüne entegre etmek için bile kullanılabilir.

{"id":"chatcmpl-pfBnfbt12lzL7h","created":1742788843,"model":"gpt-4o-2024-08-06","object":"chat.completion","system_fingerprint":"fp_90d33c15d4","choices":[{"finish_reason":"stop","index":0,"message":{"content":"PiMyLifeUp is a website dedicated to providing tutorials, projects, and guides related to the Raspberry Pi, a popular single-board computer.","role":"assistant","tool_calls":null,"function_call":null}}],"usage":{"completion_tokens":123,"prompt_tokens":13,"total_tokens":136}}

Raspberry Pi'de LiteLLM Yapay Zeka Proxy'sini Güncelleme

LiteLLM yapay zeka proxy'si oldukça hızlı güncellemeler alır. Bu güncellemeler genellikle kritik yeni düzeltmeler ve özellikler sunar. Neyse ki, bu proxy'yi Raspberry Pi'nizde çalıştırmak için Docker kullanmanın temel avantajı, yeni sürüme güncellemeyi çok basit bir işlem haline getirmesidir.

1. Raspberry Pi'nizde LiteLLM'i güncellemek için önce Docker Compose dosyasını yazdığımız dizine geçmelisiniz.

Klasör yapımıza sadık kaldıysanız, terminalde aşağıdaki komutu kullanarak doğru yere geçebilirsiniz.

cd /opt/stacks/litellm

2. Doğru dizine geçtikten sonra, LiteLLM'in en son sürümünü Pi'mize çekmek için Docker kullanmalıyız.

Bu, en son imajı indirecek ancak zaten çalışmakta olan konteyneri güncellemeyecektir. Bunun için başka bir komut gerekecektir.

docker compose pull

3. Docker'ın zaten çalışan LiteLLM proxy konteynerinizi güncellemesini sağlamak için yalnızca aşağıdaki komutu kullanmanız yeterlidir.

Docker, yeni bir imajın mevcut olduğunu algılayacak, konteyneri güvenli bir şekilde kapatacak ve ardından yeni imaj üzerinde tekrar başlatacaktır.

docker compose up -d

Sonuç

Umarız bu rehberin sonunda, Raspberry Pi'nizde LiteLLM'i başarıyla çalışır hale getirmişsinizdir.

LiteLLM, birden fazla sağlayıcıdan birden fazla yapay zeka modelini işlemeyi basitleştiren, bu işlemi çok daha kolay bir hale getiren zarif bir yapay zeka proxy'sidir. Birçok farklı API uç noktasıyla uğraşmak yerine, Anthropic'ten bir modelle uğraşıyor olsanız bile yalnızca popüler OpenAI API'siyle uğraşmanız yeterlidir.

LiteLLM'i bir yapay zeka proxy'si olarak kurma ve kullanma hakkında sorularınız varsa aşağıya yorum bırakmaktan çekinmeyin.