giriiş
FastAPI, özellikle yapay zeka tabanlı uygulamalar geliştirmek için harika bir seçim haline gelen, yüksek performans sunmak üzere tasarlanmış Python için modern bir web çerçevesidir.
Bu eğitim, Docker Compose kullanarak bir Ubuntu makinesinde FastAPI uygulaması oluşturma ve dağıtma sürecinde size rehberlik edecektir. Bu yöntem, dağıtımı basitleştirir ve yapay zekayı uygulamalarınıza entegre etmek için güçlü bir temel sağlar.
Ön koşullar
- Sudo ayrıcalıklarına sahip, root olmayan bir kullanıcı ve etkin bir güvenlik duvarı ile Ubuntu çalıştıran bir sunucu. Kurulum talimatları için lütfen bu listeden dağıtımınızı seçin ve Sunucuya Başlarken kılavuzumuzu takip edin. Lütfen desteklenen bir Ubuntu sürümü çalıştırdığınızdan emin olun. Bu eğitimde, Ubuntu 24.04 LTS bir makine kullanacağız.
- Linux Komut Satırını Tanımak Komut satırına giriş veya bilgilerinizi tazelemek için Linux Komut Satırı Kılavuzu'ndaki bu kılavuza göz atabilirsiniz.
- Sisteminizde yapılandırılmış depolar üzerinden yazılımların en son sürümlerinin ve güvenlik güncellemelerinin bulunduğundan emin olmak için Ubuntu terminalinde sudo apt-get update komutunu çalıştırın.
Bu talimatlar Ubuntu'nun en son sürümleri olan Ubuntu 24.04, Ubuntu 22.04, Ubuntu 20.04 ve Ubuntu 18.04 için geçerlidir. Ubuntu 16.04'ten önce kullanıyorsanız, Ubuntu artık bu sürümleri desteklemediğinden en son sürüme yükseltmenizi öneririz. Bu talimatlar, Ubuntu makinenizi yükseltmenize yardımcı olacaktır.
Adım 1 – Python ortamının kurulumu
Ubuntu 24.04 yüklü bir bilgisayarda Python 3 varsayılan olarak yüklüdür. Bir terminal açın ve Python 3'ün yüklü olup olmadığını kontrol etmek için aşağıdaki komutu çalıştırın:
python3 --version
Bilgisayarınızda Python 3 yüklüyse, bu komut Python 3'ün güncel sürümünü döndürür. Yüklü değilse, aşağıdaki komutu çalıştırıp Python 3 kurulumunu alabilirsiniz:
sudo apt install python3
Ardından, sisteminize pip ve dev paket yükleyicilerini yüklemeniz gerekiyor. Python Paket Dizini'ndeki paketleri yüklemek için pip paket yöneticisi, derlenmiş kod içeren Python modülleri oluşturmak için ise dev paketi gereklidir. Terminalde aşağıdaki komutu çalıştırın:
sudo apt install python3-pip python3-dev
Adım 2 – Sanal ortamı oluşturun ve etkinleştirin
<$>[not] Ubuntu sürüm < 24.04 kullanıyorsanız, sanal ortam oluşturmanıza gerek yoktur. Bir sonraki adıma geçin<$>.
Bir sonraki adım, Python paketlerini sistem ortamınızdan izole etmek için Ubuntu kurulumunuzun içinde sanal bir ortam oluşturmaktır. Bunu yapmak için çalışma dizininize gidin ve aşağıdaki komutu çalıştırın:
python3 -m venv fastapi-env
Bu komut, fastapi-env adlı dizinde yeni bir sanal ortam oluşturacaktır. Bundan sonra yükleyeceğiniz tüm paketler diğer projelerden izole edilecektir.
Daha sonra bu sanal ortamı etkinleştirerek bundan sonra yükleyeceğiniz paketlerin bu izole ortama kurulmasını sağlamalısınız.
source fastapi-env/bin/activate
Çalıştırdığınızda, sanal ortam adınızın ön ekinin aşağıdaki gibi olduğunu gösteren bir terminal istemi göreceksiniz:
Output
(fastapi-env) ubuntu@user:Adım 3 – Docker'ı yükleyin ve etkinleştirin
Bir sonraki adım sanal ortama Docker ve Docker Compose'u kurmaktır.
sudo apt install -y docker.io
Docker'ı yükledikten sonra Docker servisini başlatın ve sistem önyüklemesinde başlamasını sağlayın:
sudo systemctl start docker
sudo systemctl enable dockerDocker Compose'un en son kararlı sürümünü aldığınızdan emin olmak için apt kullanmak yerine onu resmi GitHub deposundan indireceksiniz.
Öncelikle Docker'ın resmi GitHub sürümleri sayfasında en son sürümün mevcut olduğundan emin olun, ardından terminalde aşağıdaki CURL komutunu çalıştırın.
sudo curl -L "https://github.com/docker/compose/releases/download/v2.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/bin/docker-compose
Docker-compose ikili dosyasını makinedeki herhangi bir kullanıcı tarafından çalıştırılabilir hale getirmek için aşağıdaki komutu çalıştırın.
sudo chmod +x /usr/bin/docker-compose
Kurulumu şu komutu çalıştırarak doğrulayın:
docker-compose --version
Adım 4 – Bir FastAPI uygulaması oluşturun
Şimdi FastAPI çerçevesini kullanan bir Python uygulaması oluşturmaya başlamanın zamanı geldi. İlk olarak bir main.py dosyası oluşturun:
nano main.py
Aşağıda, FastAPI çerçevesini ve önceden eğitilmiş bir AI modelini kullanarak verilen bir metnin duygusunu analiz etmek için basit bir web API'si oluşturan bir Python programı örneği bulunmaktadır.
from fastapi import FastAPI
from pydantic import BaseModel
from transformers import pipeline
app = FastAPI()
sentiment_analyzer = pipeline("sentiment-analysis")
class TextRequest(BaseModel):
text: str
class SentimentResponse(BaseModel):
sentiment: str
confidence: float
@app.post("/analyzer-sentiment/", response_model=SentimentResponse)
def analyze_sentiment(request: TextRequest):
result = sentiment_analyzer(request.text)[0]
sentiment = result['label']
confidence = result['score']
return SentimentResponse(sentiment=sentiment, confidence=confidence)Bu uygulamayı başarıyla çalıştırmak için gerekli bağımlılıklara ihtiyacınız var, ancak bunları manuel olarak yüklemeniz gerekmiyor. Bu paketlerin kurulumu, bir sonraki adımda açıklanan Dockerfile içinde yapılır.
Adım 5 – Dockerfile ve YAML yapılandırmasını oluşturun
Ardından, bu uygulama için bir Dockerfile oluşturacaksınız. Bu Dockerfile, FastAPI uygulamanızın çalışacağı ortamı tanımlar. Aşağıdakileri çalıştırarak proje dizininde bir Dockerfile oluşturun:
nano Dockerfile
Metin düzenleyicide aşağıdaki içeriği ekleyin:
FROM python:3.12-slim
WORKDIR /app
COPY . /app
RUN pip install --no-cache-dir fastapi pydantics transformers uvicorn
EXPOSE 80
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "80"]Docker Compose, çoklu konteyner uygulamalarının yönetimini kolaylaştırır. Ardından, proje dizininde bir docker-compose.yml yapılandırma dosyası oluşturmanız gerekir.
nano docker-compose.yml
Boş dosyaya aşağıdaki içeriği ekleyin:
version: '3.8'
services:
web:
build: .
ports:
- "8000:80"
volumes:
- .:/appBu yapılandırmada,
- Sürüm: Kullanılacak Docker Compose sürümünü belirtir.
- Hizmetler: Oluşturulması gereken hizmetleri tanımlar.
- web: FastAPI uygulamanızı çalıştıran servisin adını belirtir.
- build: Docker görüntüsünün derleneceği dizini belirtir. Bu durumda, docker-compose.yml dosyasının bulunduğu dizinle aynıdır.
- Portlar: Ana bilgisayardaki 8000 portunu konteyner içindeki 80 portuna eşler.
- volumes: Geçerli dizini kapsayıcının içinde bir birim olarak bağlar, böylece canlı kodu yeniden yükleyebilirsiniz.
Adım 6 – Docker konteynerini oluşturun ve çalıştırın
Bu Docker imajını oluşturmak ve konteyneri başlatmak için Docker Compose'u kullanın:
sudo docker-compose build
Bu komut, geçerli dizindeki Dockerfile dosyasından Docker imajını oluşturacaktır. Şimdi, uygulamayı çalıştırmak için terminalde aşağıdaki komutu çalıştırın:
sudo docker-compose up
Adım 7 – FastAPI uygulamanıza erişin
Konteyner çalışmaya başladıktan sonra web tarayıcınızda http://localhost:8000 adresine giderek FastAPI uygulamanıza erişebilirsiniz.
Adım 8 [İsteğe bağlı] – Docker konteynerinizi yönetin
FastAPI uygulamanızı çalıştıran konteyner ortamını daha iyi kontrol etmenize yardımcı olacak birkaç ipucu:.
- Çalışan bir konteyneri durdurmak için Ctrl + C veya Command + .. tuşlarına basın.
- Konteyner arka planda çalışırken kontrolü geri almak için aşağıdakileri kullanın:
sudo docker-compose up -d
- Konteynerinizi durdurmak ve kaldırmak için şunu çalıştırın:
sudo docker-compose down
Çözüm
Bu eğitimde, Docker Compose kullanarak bir Ubuntu makinesinde FastAPI uygulamasını nasıl oluşturup dağıtacağınızı öğrendiniz. FastAPI'nin hızı ve Docker'ın verimliliğiyle, sağlam ve ölçeklenebilir uygulamaları güvenle oluşturabilirsiniz.









