OpenAI Whisper kullanarak ses dosyalarını metne dönüştüren profesyonel RESTful API sistemi.
- RESTful API: FastAPI ile geliştirilmiş modern API
- Kuyruk Sistemi: Greenstalk ile asenkron işlem yönetimi
- Worker Sistemi: Arka planda çalışan ses dönüştürme işlemcisi
- Veritabanı: PostgreSQL ile veri saklama
- Webhook: İşlem tamamlandığında otomatik bildirim
- Kapsamlı Loglama: Tüm API istekleri ve işlemler loglanır
- Docker Desteği: Kolay kurulum ve dağıtım
``` GET /api/v1/health ``` Sistem durumu ve kuyruk istatistiklerini döner.
``` POST /api/v1/transcribe ``` Yeni ses dönüştürme işi oluşturur.
Parametreler:
- `talent_id` (zorunlu): Yetenek kimliği
- `acc_id` (zorunlu): Hesap kimliği
- `mp3_file` (zorunlu): Ses dosyası
``` GET /api/v1/transcribe/{id} ``` Belirtilen işlem kimliği için durum bilgisi döner.
``` GET /api/v1/transcribe/{id}/cancel ``` Beklemedeki işlemi iptal eder.
-
Projeyi klonlayın: ```bash git clone cd whisper-transcription-api ```
-
Çevre değişkenlerini ayarlayın: ```bash cp .env.example .env
```
- Servisleri başlatın: ```bash docker-compose up -d ```
-
Python bağımlılıklarını yükleyin: ```bash pip install -r requirements.txt ```
-
PostgreSQL ve Beanstalk servislerini başlatın
-
Veritabanı migrasyonlarını çalıştırın: ```bash alembic upgrade head ```
-
API'yi başlatın: ```bash uvicorn main:app --host 0.0.0.0 --port 8000 ```
-
Worker'ı başlatın: ```bash python worker/transcription_worker.py ```
```python import requests
with open('audio.mp3', 'rb') as f: response = requests.post( 'http://localhost:8000/api/v1/transcribe', data={ 'talent_id': '12345', 'acc_id': '67890' }, files={'mp3_file': f} )
job_id = response.json()['job_id']
status_response = requests.get( f'http://localhost:8000/api/v1/transcribe/{job_id}' ) print(status_response.json()) ```
Sistem 3 ana bileşenden oluşur:
- API Servisi: FastAPI ile geliştirilmiş RESTful API
- Worker Servisi: Greenstalk kuyruğunu dinleyen arka plan işlemcisi
- Veritabanı: PostgreSQL ile veri saklama
- Dosya boyutu limiti (25MB)
- Desteklenen dosya formatları kontrolü
- MIME type doğrulaması
- Kapsamlı hata yönetimi
- Tüm API istekleri loglanır
- İşlem durumları takip edilir
- Sistem sağlık durumu endpoint'i
- Kuyruk istatistikleri
MIT License