Ana içeriğe geç

DeepSeek V3: Demo Projeli Bir Rehber

DeepSeek-V3 ve Gradio kullanarak yapay zekâ destekli bir kod inceleyici asistanı nasıl oluşturacağınızı öğrenin.
· 8 dk. oku

Yapay Zeka ile Keşfedin

DeepSeek, DeepSeek-V3 ile önemli bir atılım yaptı; bu model, kodlama, matematiksel akıl yürütme ve doğal dil işleme yeteneklerinde selefini aşıyor.

Bu eğitimde, DeepSeek-V3 ile adım adım bir kod inceleyici asistanı oluşturmanıza rehberlik edeceğim. Ayrıca uygulamaya kullanıcı dostu bir arayüz kazandırmak için Gradio ile entegrasyonunu da öğreneceğiz.

DeepSeek-V3 Nedir?

DeepSeek V3, mixture-of-experts (MoE) mimarisine sahip, 671 milyar parametreli bir dil modelidir; token başına 37 milyarı etkinleştirilir.

14,8 trilyon yüksek kaliteli token üzerinde eğitilmiştir ve kod üretimi ile analizi dâhil çeşitli görevlerde üstün performans gösterir. Model mimarisi; çok başlı gizil dikkat (MLA) ve yük dengeleme için yardımcı kayıpsız bir strateji gibi yenilikler içerir; bu da verimli çıkarım ve maliyet-etkin eğitim sağlar.

Çok başlı gizil dikkat (MLA) mekanizması, modelin girdiğin birden çok yönüne aynı anda odaklanmasına olanak tanır ve çıkarım verimliliğini artırır. DeepSeekMoE mimarisi, eğitim maliyetlerini ve performansı optimize etmek için mixture-of-experts yaklaşımını kullanır.

DeepSeek V3 Architecture

Kaynak: DeepSeek-AI

Yardımcı kayıpsız yük dengeleme stratejisi, yardımcı kayıp fonksiyonlarına bel bağlamadan hesaplama yükünü eşit dağıtır ve eğitim kararlılığını artırır. Ayrıca, çoklu token tahmin hedefi, modelin aynı anda birden fazla token tahmin etmesini sağlar; bu da performansı yükseltir ve daha hızlı çıkarım için spekülatif kod çözmeyi mümkün kılar.

DeepSeek-V3’ü benim için özellikle heyecan verici kılan bazı nedenler:

  • Gelişmiş akıl yürütme ve anlama sunar; bu da kod tamamlama ve analiz gibi karmaşık görevler için uygun hâle getirir.
  • Saniyede 60 token işleme hızıyla DeepSeek-V3, selefi DeepSeek-V2’den üç kat daha hızlıdır.
  • Hem model hem de ona eşlik eden araştırma makaleleri tamamen açık kaynaklıdır; bu da şeffaflığı ve topluluk iş birliğini teşvik eder.

DeepSeek-V3 API’sine Nasıl Bağlanılır

Uygulamamıza DeepSeek V3’ü entegre etmek için bir API anahtarı oluşturmamız gerekiyor. API anahtarınıza erişmek için aşağıdaki adımları izleyin:

1. DeepSeek.com adresine gidin ve “Access API”ye tıklayın.

deepseek homepage view

Deepseek’in ana sayfası

2. DeepSeek’in API platformuna kaydolun.

3. “Top up”a tıklayın ve hesabınıza gerekli tutarı ekleyin. Bu yazı yazılırken DeepSeek API fiyatlandırması şöyledir:

  • Girdi (cache miss): $0.27/M token
  • Girdi (cache hit): $0.07/M token
  • Çıktı: $1.10/M token

Deepseek API Platform

3. Sol taraftaki API Keys sekmesine gidin ve “Create new API key”e tıklayın. Son olarak API anahtarı için bir ad belirleyin ve ileride kullanmak üzere kopyalayın.

Deepseek create new API Key

Demo Proje Genel Bakış: Gradio ile Kod İnceleyici Asistan

Oluşturacağımız uygulama, DeepSeek V3'ün yeteneklerini kullanarak kullanıcı dostu bir arayüz üzerinden kapsamlı kod incelemeleri sunan etkileşimli bir asistandır. 

Başlamadan önce, aşağıdakilerin kurulu olduğundan emin olun:

  • Python 3.8+
  • Gerekli kütüphaneler: Gerekli Python paketlerini pip ile kurun:
pip install requests gradio 

Tüm bağımlılıkları kurduğumuza göre, şimdi DeepSeek API’sini yapılandıralım.

Adım 1: DeepSeek’in API’sine Bağlanma

Aşağıdaki betik, kullanıcı istemlerine dayalı yanıtlar almak için DeepSeek API ile nasıl etkileşime geçileceğini gösterir. DeepSeek’in API’sinin OpenAI formatıyla uyumlu olduğunu ve API istekleri için bir temel URL kullandığını unutmayın.

import requests
import json

# Replace 'YOUR_API_KEY' with your actual DeepSeek API key
API_KEY = 'YOUR_API_KEY'
API_URL = 'https://api.deepseek.com/chat/completions'

HEADERS = {
    'Content-Type': 'application/json',
    'Authorization': f'Bearer {API_KEY}'
}

def get_deepseek_response(prompt):
    """Fetches a response from the DeepSeek API based on the given prompt."""
    data = {
        'model': 'deepseek-chat',  # Specifies the DeepSeek V3 model
        'messages': [
            {'role': 'system', 'content': 'You are a helpful code reviewer.'},
            {'role': 'user', 'content': prompt}
        ],
        'stream': False  # Set to True for streaming responses
    }

    response = requests.post(API_URL, headers=HEADERS, data=json.dumps(data))

    if response.status_code == 200:
        result = response.json()
        return result['choices'][0]['message']['content'].strip()
    else:
        raise Exception(f"Error {response.status_code}: {response.text}")

Yukarıdaki kodu biraz daha ayrıntılı inceleyelim:

  • requests ve JSON kütüphaneleri sırasıyla DeepSeek API’sine HTTP POST istekleri yapmak ve istek yükünü JSON formatına kodlamak için içe aktarılır.
  • API anahtarınızı ve sohbet tamamlamaları için DeepSeek API uç noktasını belirten temel URL’yi ayarlayın.
  • get_deepseek_response işlevi, bir kullanıcı istemini API’ye gönderir ve yanıtı alır.
  • Belirtilen model, mesaj geçmişi ve akış tercihiyle istek yükünü oluşturur; ardından uygun başlıklar ve JSON yüküyle API uç noktasına bir POST isteği göndeririz. Yanıtın durum kodu 200 ise başarıyı gösterir; asistanın yanıtı ayrıştırılıp döndürülür. Aksi hâlde hata ayrıntılarıyla bir özel durum fırlatılır.

Sırada, uygulamanın çekirdek özelliklerini tasarlamak var.

Adım 2: Çekirdek Özelliklerin Tasarımı

Bir kod parçasını girdi olarak alan ve DeepSeek-V3 kullanarak analiz edip geri bildirim ve öneriler sunan bir işlev tanımlayacağız.

def review_code(code_snippet):
    prompt = f"""
    Code Snippet:
    {code_snippet}

    Task: Analyze the provided code snippet. Identify any errors or potential improvements, suggest optimizations, and provide alternative implementations if applicable.
    """
    return get_deepseek_response(prompt)

Elimizde, bir kod parçasını alan; onu bir görev istemiyle birlikte nihai isteme yerleştirip modelden yanıt almak üzere ileten bir kod inceleyici bulunuyor.

Şimdi de kod inceleyici uygulamamız için basit bir Gradio web arayüzü geliştirelim.

Adım 3: Gradio Arayüzünü Oluşturma

Gradio, uygulamamız için etkileşimli bir web arayüzü oluşturmamıza olanak tanır. Aşağıdaki kod parçacığı, review_code() işlevi için kullanıcı dostu bir Gradio web arayüzü oluşturur. Gradio arayüzü, kullanıcının girdilerini alıp doğrulama için modele iletir.

import gradio as gr

def code_reviewer_ui(code):
    return review_code(code)

interface = gr.Interface(
    fn=code_reviewer_ui,
    inputs=gr.Code(language='python', lines=20, label="Paste your code here"),
    outputs=gr.Textbox(label="Review Feedback"),
    title="AI Code Reviewer Assistant",
    description="Analyze your code snippets, receive feedback, and discover improvements.",
)

interface.launch(share=True)

Yukarıdaki kurulum üç bileşen içerir:

  • Girdi: Kullanıcıların kodlarını yapıştırabilecekleri bir gr.Code bileşeni.
  • Çıktı: DeepSeek V3’ten gelen geri bildirimi görüntüleyen bir gr.Textbox.
  • Arayüz: gr.Interface, girdiyi ve çıktıyı birbirine bağlayarak kullanıcı etkileşimi için bir web uygulaması başlatır.

Adım 4: Uygulamayı Test Etme

Uygulamamızı basit bir örnekle test edelim:

AI code review assistant example

Bu modeli test etmek için birden çok kod örneği denedim ve her seferinde doğru inceleme sağladı.

AI code review assistant example

Sonuç

Bu eğitimde, DeepSeek V3 ve Gradio kullanarak yapay zekâ destekli bir kod inceleyici asistanı oluşturduk. Bu araç, kod parçalarını analiz ederek yapıcı geri bildirim sunar ve iyileştirmeler önerir; böylece geliştirme sürecinizi güçlendirir. 

Yeteneklerini genişletmekten veya daha büyük projelere entegre ederek kodlama iş akışınızı daha da verimli hâle getirmekten çekinmeyin.

DeepSeek ekosistemi hakkında daha fazla bilgi edinmek için şu blogları öneririm:

Aashi Dutt

Yazar

Aashi Dutt

ML (Üretken Yapay Zekâ) alanında Google Developers Uzmanıyım, Kaggle 3x Expert unvanına sahibim ve 3+ yıllık teknoloji deneyimiyle Women Techmakers Elçisiyim. 2020'de bir sağlık teknolojileri girişiminin kurucu ortağı oldum ve Georgia Tech'te makine öğrenmesi alanında uzmanlaşarak bilgisayar bilimleri yüksek lisansı yapıyorum.

Konular

İlgili