SON DAKİKA

Nvdia

Proje G-Assist ile Başlangıç: Twitch Entegre Eklenti Yapımı

Günümüzde, bilgisayarınızı iş akışınıza uyacak şekilde ayarlamak, genellikle birçok kontrol paneli arasında menüler ve ayarlar arasında dolaşmayı gerektiriyor. Proje G-Assist, kullanıcıların RTX GPU’larını ve diğer PC ayarlarını doğal dil arayüzü kullanarak kontrol etmelerine yardımcı olmak amacıyla tasarlanmış deneysel bir yapay zeka asistanıdır. G-Assist, sık kullanılan NVIDIA uygulama komutlarını çalıştırabilir, performansı optimize edebilir, performans istatistiklerini izleyebilir ve çok daha fazlasını yapabilir. Ayrıca, G-Assist’i oyun oynarken veya yaratım yaparken NVIDIA Uygulama Overlay aracılığıyla kullanmak da mümkün; bu sayede alt+tab yapmanıza gerek kalmaz.

En önemlisi, G-Assist, topluluk tarafından diğer donanımlar veya uygulamalar üzerinde kontrol sağlamak üzere eklentilerle genişletilebilir. Örneğin, fare ayarlarınızı, Spotify’da çalan müziği veya hatta IFTTT ile akıllı cihazlarınızı kontrol edebilirsiniz.

G-Assist, PC’nizde AI destekli rutinler oluşturmanın kolay bir yolunu sunuyor. G-Assist, yerel olarak çalışabilen küçük bir dil modeli (SLM) ile birlikte bir altyapı sunar; geliştiricinin yapması gereken tek şey tetiklemek istediği fonksiyonları sağlamaktır. Bu süreç, GPT tabanlı bir Eklenti Oluşturucu sayesinde daha da kolaylaştırılmıştır.

Kendi G-Assist Eklentinizi Oluşturma

Bu blog yazısında, bir Twitch entegrasyonu örneği kullanarak kendi G-Assist eklentinizi nasıl oluşturabileceğinizi göstereceğiz. Eklentilerin nasıl çalıştığını, G-Assist ile nasıl iletişim kurduğunu öğrenecek ve kendi eklentinizi baştan sona nasıl inşa edebileceğinizi göreceksiniz. İster bir Python geliştiricisi, ister C++ meraklısı olun ya da yeni başlıyor olun, eklenti geliştirmeyi hızlı ve erişilebilir hale getirmek için araçlar ve şablonlar sunuyoruz.

diagram showing the framework for NVIDIA Project G-Assist
Şekil 1. Proje G-Assist örnek fonksiyon çağırma asistanı çerçevesi

G-Assist Eklentileri Nedir?

G-Assist eklentileri, yeni işlevler tanımlayan eklerdir, böylece G-Assist kullanıcıları, bu eklentileri basit metin veya sesli komutlarla doğal dil kullanarak çalıştırabilir.

Eklenti komutları tamamen kullanıcı tarafından tanımlanır ve bir basit manifest formatı kullanılarak G-Assist SLM tarafından sorgu anında yorumlanır. Eklentilerinizi Python veya C++ dillerinde, GitHub’da sağladığımız şablonları kullanarak yazabilirsiniz. Minimal ayarlarla, performans analizörlerinden akıllı ev rutinlerine kadar kendi sesli ve metin tabanlı erişilebilir araçlarınızı oluşturabilirsiniz.

Video 1. Bir Proje G-Assist eklentisi nasıl oluşturulur

Başlangıç için Araçlar

  • GPT Eklenti Oluşturucu: Bir özel GPT ile kod yazımı yapılmasına yardımcı olur. Eklenti kodunu ve dosyalarını oluşturmanın yanı sıra, API’ler ve yeteneklerini keşfetmenize veya eklenti işlevselliği hakkında beyin fırtınası yapmanıza yardımcı olur.
  • Eklenti şablonları (Python ve C++): Önceden hazırlanmış şablonlar, eklenti yapısını, yapılandırmasını, iletişim mantığını ve işlev tanımlarını sizin için kurar.

Eklenti örnekleri: Twitch, Discord, Nanoleaf, IFTTT entegrasyonları gibi gelişen bir eklenti örnekleri listesi bulunmaktadır ve bunlar tamamen açık kaynak projeler olarak sunulmaktadır.

Twitch Eklentisi: Bir Yayıncının Canlı Olup Olmadığını Kontrol Etme

Gerçek bir örneğe bakalım. Bu eklenti, bir Twitch yayıncısının şu anda canlı olup olmadığını kontrol eder ve yayın başlığı, oyun, izleyici sayısı ve yayının başlangıç zamanı gibi detayları geri döner.

Örnek yanıtlar:

ninja CANLI!
Başlık: Cuma Fortnite!
Oyun: Fortnite
İzleyiciler: 45,231
Başlama Zamanı: 2024-03-14T12:34:56Z

Veya:

shroud OFFLINE

Gereksinimler

Eklentinizi oluşturmak için şunlara ihtiyacınız olacak:

Eklenti Yapısı

Eklentiniz dört ana dosya içerecektir:

1. manifest.json

Bu dosya, eklentinin mevcut işlevlerini ve parametrelerini tanımlar. G-Assist’in eklentinin ne yapabileceğini anlamasına yardımcı olur. İşlev ve parametre açıklamaları, G-Assist SLM’nin kullanıcı girdilerini doğru işlevle eşleştirmesine ve çalıştırmak için gerekli parametreleri belirlemesine olanak tanır.

{
  "manifestVersion": 1,
  "executable": "g-assist-plug-in-twitch.exe",
  "persistent": false,
  "functions": [
    {
      "name": "check_twitch_live_status",
      "description": "Bir Twitch kullanıcısının canlı olup olmadığını kontrol eder ve yayın detaylarını alır.",
      "tags": ["twitch", "live_status"],
      "properties": {
        "username": {
          "type": "string",
          "description": "Kontrol edilecek Twitch kullanıcı adı."
        }
      }
    }
  ]
}

2. config.json

Bu dosya, Twitch İstemci Kimliği ve Gizli Anahtarınızı içerir. Twitch API’sine kimlik doğrulamak için gereklidir. Bu dosya asla paylaşılmamalıdır, çünkü hassas kimlik bilgilerini barındırır. Eklenti dizininin yönetici kısıtlaması olduğu için dosya sisteminizde güvende kalır.

{
  "TWITCH_CLIENT_ID": "your_client_id_here",
  "TWITCH_CLIENT_SECRET": "your_client_secret_here"
}

3. plug-in.py

Tüm eklenti mantığını içerir: Kimlik doğrulama, API istekleri, yanıtları çözümleme ve G-Assist ile iletişim Windows adlandırılmış boruları aracılığıyla gerçekleştirilir.

İşte ana döngü:

def main():
    setup_logging()
    logging.info("Twitch Eklentisi Başlatıldı")

    while True:
        command = read_command()
        if command is None:
            continue

        for tool_call in command.get("tool_calls", []):
            func = tool_call.get("func")
            params = tool_call.get("params", {})
            if func == "check_twitch_live_status":
                response = check_twitch_live_status(params)
                write_response(response)
            elif func == "shutdown":
                return

Komutlar, şu şekilde JSON biçiminde düzenlenir:

{
  "tool_calls": [{
    "func": "check_twitch_live_status",
    "params": {
      "username": "nvidia"
    }
  }]
}

Yanıtlar, bir başarı bayrağı ve mesaj dizesi içermelidir. G-Assist, Markdown biçimlendirmesini destekler:

{
  "success": true,
  "message": "nvidia CANLI!nBaşlık: NVIDIA Oyun YayınınOyun: Cyberpunk 2077nİzleyiciler: 1234"
}<<END>>

Windows Adlandırılmış Boru İletişimi

G-Assist ve eklentiniz, Windows “adlandırılmış borular” kullanarak iletişim kurar. Girdi komutları eklentiye JSON mesajları olarak gönderilir ve yanıtlar aynı formatta geri yazılmalıdır — bir yanıtın sonunu işaretlemek için <<END>> eklenmelidir.

Hem read_command hem de write_response eklenti şablonuna dahildir. read_command, büyük girdilere destek sağlamak için parça parça okuma işlemi yapar. write_response çıktıyı biçimlendirir ve gerekli son etiketi ekler. Taşıma katmanı soyutlanmıştır, böylece komut işlemeye odaklanabilirsiniz.

Twitch API Entegrasyonu

Twitch ile iletişim kurmak için OAuth 2.0 istemci kimlik bilgileri akışını kullanıyoruz:

def get_oauth_token():
    try:
        response = requests.post(
            TWITCH_OAUTH_URL,
            params={
                "client_id": config.get("TWITCH_CLIENT_ID"),
                "client_secret": config.get("TWITCH_CLIENT_SECRET"),
                "grant_type": "client_credentials"
            }
        )
        return response.json().get("access_token")
    except Exception as e:
        logging.error(f"OAuth token alınırken hata: {e}")
        return None

Bir token aldıktan sonra kullanıcının canlı olup olmadığını kontrol ediyoruz:

def check_twitch_live_status(params: Dict[str, str]):
    username = params.get("username")
    oauth_token = get_oauth_token()

    headers = {
        "Client-ID": config.get("TWITCH_CLIENT_ID"),
        "Authorization": f"Bearer {oauth_token}"
    }

    response = requests.get(
        TWITCH_STREAM_URL,
        headers=headers,
        params={"user_login": username}
    )

    data = response.json().get("data", [])
    if data:
        stream = data[0]
        return {
            "success": True,
            "message": (
                f"{username} CANLI!n"
                f"Başlık: {stream['title']}n"
                f"Oyun: {stream.get('game_name', 'Bilinmiyor')}n"
                f"İzleyiciler: {stream['viewer_count']}"
            )
        }
    return {"success": True, "message": f"{username} OFFLINE"}

Daha Fazla Eklenti Fikirleri

Daha fazla eklenti örneğini GitHub’da bulabilirsiniz. Her biri G-Assist’i genişletmenin farklı yollarını sergilemektedir.

  • IFTTT eklentisi: Basit sesli veya yazılı komutlarla akıllı ev rutinlerini tetikleyin — örneğin, “Oyun zamanı!” diyerek özel bir rutini aktive edebilirsiniz.
  • Discord eklentisi: Bir bot kullanarak belirli bir Discord kanalına mesaj, resim veya video gönderin. Ayrıca arkadaş durumunu kontrol etme, oyun aktivitelerini sorgulama veya belirli kanallara gönderi yapma yeteneklerini de geliştirebilirsiniz.
  • Nanoleaf eklentisi: Nanoleaf aydınlatmanızı IP üzerinden kontrol edin — G-Assist sohbeti aracılığıyla renk ayarlayın ve parlaklığı değiştirin. Gelecek iyileştirmeler arasında özel profillerin desteklenmesi, mevcut cihaz durumunu okuma ve birden fazla ışığı yönetme yer alabilir.

Her örnek, farklı entegrasyon kalıplarını vurgular ve incelemeniz, özelleştirmeniz ve üzerine inşa etmeniz için tamamen açık kaynak olarak sunulmuştur.

Plug and Play Hackathon’a Katılın

Proje G-Assist Eklentisi Oluşturma Hackathon’umuza katılmak için buradan kayıt olabilirsiniz. Kayıt olduğunuzda, yeni komutlar ekleyen, harici araçlarla bağlantı kuran ve belirli ihtiyaçlara uygun AI iş akışlarını kullanan özel bir G-Assist eklentisi oluşturun — metin veya sesli komutlara yanıt veren, cihaz içi AI destekli işlevsellik sağlamak için. Son olarak, eklentinizi buradaki başvuru formumuza gönderin (Giriş sayfamızdaki gereksinimlere göz atmayı unutmayın).

En iyi eklenti girişleri, NVIDIA GeForce RTX 5090 dizüstü bilgisayarı, NVIDIA GeForce RTX 5080 GPU veya NVIDIA GeForce RTX 5070 GPU kazanma şansına sahip olacak.

Topluluğa Katılın

Amaç, eklenti oluşturma işlemini açık ve işbirlikçi hale getirmektir. Şablonlar, tam örnekler ve belgeleri G-Assist GitHub’ında bulacaksınız.

Eklentinizle ilgili sorularınız varsa veya daha fazla bilgi edinmek istiyorsanız, RTX AI Atölyesi: Proje G-Assist Eklentisi Nasıl Oluşturulur çevrimiçi seminerimize katılın. 9 Temmuz 2025’te NVIDIA uzmanlarından eklenti projeleriniz hakkında sorularınızı sorma fırsatı bulacaksınız.

Ayrıca Discord topluluğumuza katılabilir, yaratıcılığınızı paylaşabilir, G-Assist ile ilgili tartışmalara katılabilir ve topluluk üyeleri veya NVIDIA uzmanlarından yardım alabilirsiniz.

Kaynak

Nvdia Blog

Düşüncenizi Paylaşın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

İlgili Teknoloji Haberleri