---
title: SDK'lar | RunAPI
description: Türü belirlenmiş bir RunAPI SDK'sı yükleyin, bir API anahtarıyla kimlik
  doğrulayın ve uygulamanız için doğru Görev yaşam döngüsünü seçin.
url: https://runapi.ai/tr/docs/resources/sdks.md
canonical: https://runapi.ai/tr/docs/resources/sdks
locale: tr
---

> HTML sürümü: https://runapi.ai/tr/docs/resources/sdks
> Ajanlar için site dizini: https://runapi.ai/llms.txt

# SDK'lar

RunAPI SDK'ları, JavaScript, Python, PHP, Java, Ruby ve Go dillerinde desteklenen model aileleri için yazılı istemciler sağlar. Uygulamanızın çağırdığı model ailesine ait dil paketini seçin.

## Bir model SDK'sı yükle

Dilinize ve model ailenize uygun paketi yükleyin. Örneğin, Suno JavaScript SDK'sını yüklemek için:

```shell
npm install @runapi.ai/suno@0.6.0
```

Aynı model ailesi, desteklenen her çalışma zamanı için paket yöneticisi aracılığıyla kullanılabilir:

```shell
pip install runapi-suno==0.6.0
composer require runapi-ai/suno:0.4.0
gem install runapi-suno --version 0.6.0
go get github.com/runapi-ai/suno-sdk/go@v0.6.0
```

Java için Suno modülünü Gradle veya Maven ile ekleyin:

```kotlin
dependencies {
  implementation("ai.runapi:runapi-suno:0.5.0")
}
```

```xml
<dependency>
  <groupId>ai.runapi</groupId>
  <artifactId>runapi-suno</artifactId>
  <version>0.5.0</version>
</dependency>
```

## İstemcinin kimliğini doğrulayın

İstemci oluşturmadan önce ortamda `RUNAPI_API_KEY` değerini ayarlayın. SDK, REST istekleriniz ve CLI iş akışınızla aynı hesap bağlamı için bir RunAPI API anahtarı kullanır.

```shell
export RUNAPI_API_KEY="runapi_..."
```

[Kimlik Doğrulama
Kılavuzu](https://runapi.ai/tr/docs/guides/authentication.md)'nda anahtarları oluşturun ve döndürün. Anahtarları uygulama kaynak kodunda değil, gizli yöneticinizde saklayın.

## Dosyalar ve Yüklemelerle Çalışma

Her Sağlayıcı İstemcisi, çekirdek paketinden kalıcı `files` ve çok parçalı `uploads` kaynaklarını kullanıma sunar. Mevcut `files.create` yöntemi geçici URL oluşturmaya devam eder; kalıcı bir Dosya nesnesi oluşturmak için JavaScript, Java ve PHP'de `files.createFile`, Python ve Ruby'de `files.create_file` ya da Go'da `Files.CreateFile` kullanın.

```javascript
const file = await client.files.createFile({
  file: new Blob([fileBytes], { type: "application/pdf" }),
  filename: "knowledge.pdf",
  purpose: "user_data",
});

const bytes = await client.files.content(file.id);
await client.files.deleteFile(file.id);
```

Bir istek Parçalara bölündüğünde `uploads.create`, `addPart`, `complete` ve `cancel` kullanın. Python ve Ruby `add_part`; Go ise `AddPart` kullanır. Sınırlar, REST örnekleri ve tam yaşam döngüsü için bkz. [Dosyalar ve Yüklemeler](https://runapi.ai/tr/docs/resources/files.md).

## Sesi eş zamanlı olarak transkrip et

OpenAI Transcription SDK yerel bir ses dosyasını yükler ve tamamlanmış transkripsiyonu aynı istekte döndürür. JSON yanıt biçimleri dile özgü bir nesne döndürür; metin, SRT ve VTT biçimleri ise tam yanıt dizesini döndürür.

```javascript
import { OpenaiTranscriptionClient } from "@runapi.ai/openai-transcription";

const client = new OpenaiTranscriptionClient();
const transcript = await client.speechToText.run({
  file: new Blob([audioBytes], { type: "audio/mpeg" }),
  filename: "interview.mp3",
  response_format: "json",
});
```

Dosya biçimleri, modele özgü alanlar ve yanıt biçimleri için [Ses Transkripsiyon API
başvurusuna](https://runapi.ai/tr/docs/api/openai-transcription/speech-to-text.md) bakın.

## Asenkron Görevlerle Çalışma

Birçok medya işlemi eşzamansızdır. Bir Görev göndermek ve id'sini hemen almak için `create`, mevcut durumunu almak için `get`, göndermek ve terminal durumuna ulaşana kadar yoklamak için `run` kullanın. Bir web isteği işleyicisinde, isteğin bir çalışanı meşgul etmemesi için `create` ve bir geri çağırma ya da sonraki `get` yoklaması tercih edin.

### JavaScript

```javascript
import { SunoClient } from "@runapi.ai/suno";

const client = new SunoClient();
const result = await client.textToMusic.run({
  model: "suno-v5",
  vocal_mode: "auto_lyrics",
  prompt: "A short piano theme",
});

console.log(result.audios[0].audio_url);
```

### Python

```python
from runapi.suno import SunoClient

client = SunoClient()
result = client.text_to_music.run(
    model="suno-v4.5-plus",
    vocal_mode="auto_lyrics",
    prompt="A short piano theme",
)

print(result.audios[0].audio_url)
```

### PHP

```php
<?php

use RunApi\Suno\SunoClient;

$client = new SunoClient();
$result = $client->textToMusic->run([
    'model' => 'suno-v5.5',
    'vocal_mode' => 'auto_lyrics',
    'prompt' => 'A short piano theme',
]);

print_r($result->toArray());
```

### Ruby

```ruby
require "runapi/suno"

client = RunApi::Suno::Client.new
result = client.text_to_music.run(
  model: "suno-v4.5-plus",
  vocal_mode: "auto_lyrics",
  prompt: "A short piano theme"
)

puts result.dig("audios", 0, "audio_url")
```

### Go

```go
package main

import (
    "context"
    "fmt"
    "log"
    "os"

    "github.com/runapi-ai/core-sdk/go/option"
    "github.com/runapi-ai/suno-sdk/go/suno"
)

func main() {
    client, err := suno.NewClient(option.WithAPIKey(os.Getenv("RUNAPI_API_KEY")))
    if err != nil {
        log.Fatal(err)
    }

    result, err := client.TextToMusic.Run(context.Background(), suno.TextToMusicParams{
        SunoBaseParams: suno.SunoBaseParams{Model: suno.ModelV45Plus},
        VocalMode: suno.VocalModeAutoLyrics,
        Prompt:    "A short piano theme",
    })
    if err != nil {
        log.Fatal(err)
    }

    fmt.Println(result.ID)
}
```

### Java

```java
import ai.runapi.suno.SunoClient;
import ai.runapi.suno.types.CompletedTextToMusicResponse;
import ai.runapi.suno.types.TextToMusicModel;
import ai.runapi.suno.types.TextToMusicParams;

SunoClient client = SunoClient.builder()
    .apiKey(System.getenv("RUNAPI_API_KEY"))
    .build();

CompletedTextToMusicResponse result = client.textToMusic().run(
    TextToMusicParams.builder()
        .model(TextToMusicModel.SUNO_V5)
        .vocalMode("auto_lyrics")
        .prompt("A short piano theme")
        .build()
);
```

## Bir Style Persona'yı Yeniden Kullanma

Herkese açık bir ses URL'sinden bir Style Persona oluşturun, ardından döndürülen
`persona.id`'yi desteklenen dört müzik işlemiyle yeniden kullanın. `persona_type:
"style"` yeniden kullanılabilir tür ve ruh hali özelliklerini uygular. Kaynak kaydın sesini klonlamayı, stilini kayıpsız biçimde korumayı veya kaynak sesle belirli bir benzerliği garanti etmez.

```javascript
import { SunoClient } from "@runapi.ai/suno";

const client = new SunoClient();
const referenceAudioUrl = "https://cdn.runapi.ai/public/samples/music.mp3";

const sampled = await client.addSamples.run({
  model: "suno-v5",
  audio_url: referenceAudioUrl,
  start_seconds: 0,
  end_seconds: 30,
});
const sourceAudioId = sampled.audios?.[0]?.id;
if (!sourceAudioId) throw new Error("The sample Task did not return an audio ID");

const { persona } = await client.generatePersona.run({
  task_id: sampled.id,
  audio_id: sourceAudioId,
  name: "Studio Style",
  description: "A warm and expressive acoustic pop style.",
});
const textToMusic = await client.textToMusic.run({
  model: "suno-v5",
  vocal_mode: "auto_lyrics",
  prompt: "An uplifting acoustic pop song about a rainy city night",
  persona_id: persona.id,
  persona_type: "style",
});

const coverAudio = await client.coverAudio.run({
  model: "suno-v5",
  upload_url: referenceAudioUrl,
  vocal_mode: "auto_lyrics",
  prompt: "Rework the reference track as acoustic pop",
  persona_id: persona.id,
  persona_type: "style",
});

const createMashup = await client.createMashup.run({
  model: "suno-v5",
  upload_url_list: [
    referenceAudioUrl,
    "https://cdn.runapi.ai/public/samples/audio-2.mp3",
  ],
  vocal_mode: "auto_lyrics",
  prompt: "Blend both tracks into an energetic acoustic pop mashup",
  persona_id: persona.id,
  persona_type: "style",
});

const extendMusic = await client.extendMusic.run({
  model: "suno-v5",
  upload_url: referenceAudioUrl,
  parameter_mode: "custom",
  instrumental: false,
  prompt: "Continue the arrangement with a brighter chorus",
  style: "Acoustic pop with warm piano",
  title: "Brighter Chorus",
  continue_at: 60,
  persona_id: persona.id,
  persona_type: "style",
});

console.log({
  textToMusic: textToMusic.audios[0]?.audio_url,
  coverAudio: coverAudio.audios[0]?.audio_url,
  createMashup: createMashup.audios[0]?.audio_url,
  extendMusic: extendMusic.audios[0]?.audio_url,
});
```

## Sonraki iş akışını seçin

Uygulamanız yazılı istek oluşturuculardan ve dile özgü Görev yardımcılarından yararlanıyorsa SDK kullanın. Kabuk otomasyonu, yerel denetimler ve geri çağırma hata ayıklaması için [RunAPI CLI](https://runapi.ai/tr/docs/resources/cli.md) kullanın. Tam istek alanları, Görev yanıtları ve hatalar için [API Başvurusu](https://runapi.ai/tr/docs/api/openai/chat-completions.md) kullanın.

## Vidu Q4

Vidu paketleri görüntüden videoya ve referanstan videoya geçiş sağlar
oluşturma, alma ve eşzamansız görev yardımcılarına sahip kaynaklar. Kullanım `vidu-q4-image-to-video` veya `vidu-q4-reference-to-video` karşılık gelen kaynak. Paket adları `@runapi.ai/vidu` 'dir.
JavaScript, Python ve Ruby için `runapi-vidu` , PHP için `runapi-ai/vidu` ,
Java ve `github.com/runapi-ai/vidu-sdk/go` için `ai.runapi:runapi-vidu` Go için.

Referans görüntüsü ve MP3 gereksinimleri için şu kılavuza bakın. [Görev API kılavuzu](https://runapi.ai/tr/docs/guides/task-api/quickstart.md#generate-vidu-q4-videos)。 Ayrıca bakın [Görüntüden video fiyatları](https://runapi.ai/tr/models/vidu/q4-image-to-video) · [Referanslardan video fiyatları](https://runapi.ai/tr/models/vidu/q4-reference-to-video)。

---

## RunAPI hakkında daha fazlası

- [Ana sayfa](https://runapi.ai/tr/.md)
- [Model Kataloğu](https://runapi.ai/tr/models.md)
- [Fiyatlandırma](https://runapi.ai/tr/pricing.md)
- [Sağlayıcılar](https://runapi.ai/tr/models)
- [Dokümantasyon](https://runapi.ai/tr/docs/guides)
- [SDK'lar](https://runapi.ai/tr/sdk.md)
- [CLI](https://runapi.ai/tr/cli.md)
- [MCP Sunucusu](https://runapi.ai/tr/mcp.md)
- [x402](https://runapi.ai/tr/x402.md)
- [Claude Code ve Cursor](https://runapi.ai/tr/claude-code-vs-cursor.md)
- [Cursor API kurulumu](https://runapi.ai/tr/cursor-api-setup.md)
- [RunAPI ve OpenRouter](https://runapi.ai/tr/openrouter-alternative.md)
- [Kurumsal](https://runapi.ai/tr/contact.md)
- [İletişim](https://runapi.ai/tr/contact.md)
- [Şartlar](https://runapi.ai/tr/terms.md)
- [Gizlilik](https://runapi.ai/tr/privacy.md)
- [Ajanlar için site dizini](https://runapi.ai/llms.txt)

İletişim: contact@runapi.ai

## Yapılandırılmış veriler

```json
[
  {
    "@context": "https://schema.org",
    "inLanguage": "tr",
    "@type": "WebSite",
    "name": "RunAPI",
    "url": "https://runapi.ai/tr",
    "potentialAction": {
      "@type": "SearchAction",
      "target": {
        "@type": "EntryPoint",
        "urlTemplate": "https://runapi.ai/tr/models?q={search_term_string}"
      },
      "query-input": "required name=search_term_string"
    }
  },
  {
    "@context": "https://schema.org",
    "inLanguage": "tr",
    "@type": "Organization",
    "name": "RunAPI",
    "url": "https://runapi.ai/tr",
    "logo": {
      "@type": "ImageObject",
      "url": "https://runapi.ai/tricon.svg"
    },
    "sameAs": [
      "https://github.com/runapi-ai"
    ]
  },
  {
    "@context": "https://schema.org",
    "inLanguage": "tr",
    "@type": "TechArticle",
    "headline": "SDK'lar",
    "description": "Türü belirlenmiş bir RunAPI SDK'sı yükleyin, bir API anahtarıyla kimlik doğrulayın ve uygulamanız için doğru Görev yaşam döngüsünü seçin.",
    "url": "https://runapi.ai/tr/docs/resources/sdks",
    "mainEntityOfPage": "https://runapi.ai/tr/docs/resources/sdks"
  }
]
```
