TR ▾
API anahtarı al

GetAiApiKeyÜretim İçin Yapay Zeka API Kontrol Listesi

Python ile LLM Kurulumu: Yerel veya API

Modeli kendi makinenizde çalıştırabilir veya tek bir Python paketi yükleyip HTTP üzerinden barındırılan bir modele istek gönderebilirsiniz. Bu sayfa her iki yöntemi de kapsar, ardından API yolunu adım adım anlatır.

güncellendi

Bir Python betiğini parlayan bulut model küpüne bağlayan bir kablo görseli, API bağlantısını gösterir

Temel noktalar

  1. Yerel kurulum model ağırlıkları ve yeterli bellek gerektirir; API yolu yalnızca openai paketi ve bir anahtar gerektirir.
  2. Base URL'yi https://api.getaiapikey.com/v1 olarak ve modeli uncensored olarak ayarlayın.
  3. Akış, fonksiyon çağırma ve JSON modu standart OpenAI istemcisi üzerinden çalışır.
  4. HTTP 429 ile kısa bir yeniden deneme yapın ve eşzamanlı çağrıları 8 veya altında tutun.

LLM kurmanın iki anlamı

İnsanlar Python'da llm kurulumu hakkında sorduğunda genellikle iki şeyden birini kastederler. İlki, model ağırlıklarını indirip kendi CPU veya GPU'nuzda bir kütüphane ile yükleyerek yerelde bir model çalıştırmaktır. İkincisi, Python kodunuzun başka bir yerde çalışan bir modele erişebilmesi için bir istemci kütüphanesi kurmaktır. Her ikisi de geçerlidir ve doğru seçim donanımınıza ve yapmak istediğinize bağlıdır.

API yolu çok daha kısadır. pip install openai çalıştırın, istemciyi bir base URL'ye yönlendirin ve modeli çağırın. Ağırlık, GPU sürücüsü veya bellek planlaması gerekmez. Bu sayfanın geri kalanı bu yol için adımları ve kodu verir; karşılaştırabilmeniz için yerel kurulum hakkında kısa bir bölüm de içerir.

Yerel kurulum veya barındırılan API: nasıl seçilir

SoruYerel kurulumBarındırılan API
Kurulacak olanBir çıkarım kütüphanesi ve model ağırlıklarıopenai paketi
DonanımModel için boyutlandırılmış bellek ve genellikle bir GPUHTTPS çağrısı yapabilen herhangi bir makine
MaliyetDonanımınız ve elektrikToken başına, ön ödemeli krediden
Çevrimdışı çalışırEvetHayır
İlk yanıt süresiİndirme, kurulum, ayarlamaBirkaç dakika

Yerel kurulum, her şeyi tek bir makinede tutmanız gerektiğinde, çevrim dışı çalışmanız gerektiğinde veya ağırlıkları kendiniz denemeniz istediğinizde mantıklıdır. llama.cpp bağlayıcıları veya Hugging Face transformers gibi kütüphaneler genellikle başlangıç noktasıdır; seçtiğiniz model boyutuna bağlı oldukları için donanım gereksinimlerini kendi belgelerinde kontrol edin.

API, hızlı bir çalışma sonucu istiyorsanız, dizüstü bilgisayarınızın büyük bir modeli barındıramaması durumunda veya uygulamanızın çok sayıda kullanıcıya hizmet vermesi gerektiğinde mantıklıdır. Donanım satın almak yerine token başına ödeme yaparsınız. Bu hizmet için 1M girdi tokenı başına $0.15 ve 1M çıktı tokenı başına $0.50 ücret alınır, abonelik yoktur. Fiyatlandırma sayfası detayları içerir.

Adım 1: sanal ortam oluşturun ve paketi kurun

Kurulumun temiz kalması için bir sanal ortam kullanın. Herhangi bir güncel Python 3 sürümü openai paketi ile çalışır.

python3 -m venv .venv
source .venv/bin/activate
pip install openai

Sonraki adım bir anahtar elde etmektir. Google veya e-posta ve şifre ile API anahtarı sayfasında kaydolun. Yeni kullanıcılar burada tek tıkla 7 gün boyunca geçerli ve kart gerektirmeyen $0.50 deneme kredisi talep edebilir. Anahtarı kaynak dosyanızda değil, bir ortam değişkeninde saklayın:

export API_KEY="paste-your-key-here"

Adım 2: ilk çağrıyı yapın

Hizmet OpenAI ile uyumludur, bu nedenle standart bir OpenAI betiğinden tek farklar base URL ve model kimliğidir. Model kimliği uncensored şeklindedir.

import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.getaiapikey.com/v1",
    api_key=os.environ["API_KEY"],
)

resp = client.chat.completions.create(
    model="uncensored",
    messages=[
        {"role": "system", "content": "You are a concise assistant."},
        {"role": "user", "content": "Explain what a context window is in two sentences."},
    ],
    temperature=0.7,
    max_tokens=200,
)

print(resp.choices[0].message.content)
print(resp.usage.prompt_tokens, resp.usage.completion_tokens)

Bu bir yanıt ve iki token sayısı yazdırırsa kurulum tamamlanmıştır. Anahtarınızın çalıştığını doğrulamak ve model ID'yi görmek için GET /v1/models çağrısı yapabilirsiniz:

for m in client.models.list():
    print(m.id)

Python olmadan, kabuktan aynı istek, https://api.getaiapikey.com/v1/chat/completions adresine tek bir curl çağrısıdır ve Authorization: Bearer başlığı ardından anahtarınız gelir. Dokümantasyondaki hızlı başlangıç bölümü bunu tam olarak gösterir.

Adım 3: gelen tokenları akış olarak işleyin

Uzun bir yanıtın bitmesini beklemek ve sonra yazdırmak yavaş hissettirir. stream=True ayarını belirleyin ve sunucu tokenları sunucu tarafından gönderilen olaylar üzerinden gönderir. Son parçada stream_options ile kullanım özeti isteyebilirsiniz.

stream = client.chat.completions.create(
    model="uncensored",
    messages=[{"role": "user", "content": "Write a short scene set in a lighthouse."}],
    stream=True,
    stream_options={"include_usage": True},
)

for chunk in stream:
    if chunk.choices and chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)
    if chunk.usage:
        print("\n", chunk.usage.total_tokens, "tokens")

Üretim için önemli bir detay: akışlı bir istek, akış bitene kadar eşzamanlılık slotunu tutar. Tam anahtar 8 eşzamanlı isteğe izin verir, bu nedenle uygulamanız çok sayıda uzun akış açıyorsa kullanıcı bağlantısı koptuğunda bunları kapatın.

Adım 4: JSON modu ve fonksiyon çağırma

Yapılandırılmış çıktı için response_format'i bir JSON nesnesine ayarlayın. Ayrıca istemde modele JSON ile yanıt vermesini söyleyin, çünkü ayar geçerli JSON sözdizimini garanti eder ancak istediğiniz alan adlarını garanti etmez.

import json

resp = client.chat.completions.create(
    model="uncensored",
    messages=[
        {"role": "system", "content": "Reply only with JSON: {\"title\": string, \"tags\": [string]}"},
        {"role": "user", "content": "Give me a title and tags for a post about slow travel."},
    ],
    response_format={"type": "json_object"},
)
data = json.loads(resp.choices[0].message.content)
print(data["title"], data["tags"])

Fonksiyon çağırma standart deseni izler. Bir fonksiyon tanımlarsınız, model bunu çağırmak isteyebilir, bunu kendiniz çalıştırırsınız ve sonucu role: "tool" ile geri gönderirsiniz.

tools = [{
    "type": "function",
    "function": {
        "name": "get_time",
        "description": "Return the current time for a city",
        "parameters": {
            "type": "object",
            "properties": {"city": {"type": "string"}},
            "required": ["city"],
        },
    },
}]

messages = [{"role": "user", "content": "What time is it in Lisbon?"}]
first = client.chat.completions.create(
    model="uncensored", messages=messages, tools=tools, tool_choice="auto"
)

msg = first.choices[0].message
if msg.tool_calls:
    call = msg.tool_calls[0]
    messages.append(msg)
    messages.append({
        "role": "tool",
        "tool_call_id": call.id,
        "content": json.dumps({"time": "14:05"}),
    })
    final = client.chat.completions.create(
        model="uncensored", messages=messages, tools=tools
    )
    print(final.choices[0].message.content)

Güvenmeden önce birkaç istekte fonksiyon çağırmaları test edin. Herhangi bir model yanlış fonksiyonu seçebilir veya bir argümanı kötü doldurabilir, bu nedenle yan etkilere sahip herhangi bir şeyi çalıştırmadan önce argümanları kendi kodunuzda doğrulayın.

Adım 5: limitleri ve hataları yönetin

Tam anahtarlar 8 eşzamanlı istek ve dakikada 300 istek sağlar. Deneme anahtarları 2 ve 60 sağlar. Bu limitlerin ötesinde HTTP 429 alırsınız. rate_limited hata kodu dakikada çok fazla istek anlamına gelir, concurrency ise aynı anda çok fazla istek anlamına gelir. Geçici aşırı yüklenme durumunda API ayrıca Retry-After: 5 başlığı ile 429 döndürür.

OpenAI Python istemcisi bazı hataları kendi başına yeniden dener, ancak açık bir sarmalayıcı davranışı belirgin tutar:

import time
from openai import RateLimitError

def ask(messages, tries=4):
    for attempt in range(tries):
        try:
            return client.chat.completions.create(model="uncensored", messages=messages)
        except RateLimitError:
            time.sleep(5 * (attempt + 1))
    raise RuntimeError("still rate limited after retries")

Her yanıt, loglayabileceğiniz X-Request-Id, X-Balance-USD ve hız limiti başlıklarını taşır. destek ile iletişime geçtiğinizde istek kimliğini ekleyin. Başarısız veya reddedilen istekler ücrete tabi tutulmaz, bu nedenle yeniden deneme ek maliyet yaratmaz.

Ayrıca boyut limitlerini de planlayın. Bağlam penceresi girdi ve tamamlama dahil 100.000 token'dır ve maksimum istek gövdesi 8 MB'tır. Uzun sohbet geçmişi bu sayılara ulaşmadan önce kısaltılmalı veya özetlenmelidir.

Çağrı çalışmadığında

Çoğu ilk çalıştırma sorunu bir dizi hatadan kaynaklanır. Başka bir şeyden şüphelenmeden önce bunları sırayla kontrol edin.

  • Sürüm yolu olmadan base URL. Değer /v1 ile bitmelidir. İstemci buna /chat/completions ekler, bu nedenle eksik /v1 isteği yanlış rotaya gönderir.
  • Yanlış veya eksik anahtar. Anahtar Authorization: Bearer başlığında yer alır, istemci bunu api_key'den oluşturur. Ortam değişkeni boşsa istemci başlangıçta bir hata yükseltir veya boş bir anahtar gönderir. Kontrol etmek için bool(os.environ.get("API_KEY")) yazdırın.
  • Başka bir hizmetten bir model adı. Burada tek model kimliği uncensored'dir. Diğer öğreticilerdeki gibi adlar eşleşmeyecektir.
  • Bakiye yok. X-Balance-USD başlığına bakın. 7 günlük süresi geçen bir deneme veya bitmiş bir bakiye, $20'den bakiye yüklemenizi gerektirir.
  • Eski paket. Bir örnek OpenAI( kullanıyorsa ve Python bu adı içe aktaramadığını söylüyorsa, 1.0 öncesi pakete sahipsiniz. pip install --upgrade openai çalıştırın.

Başlıklar dahil ham yanıtı görmek için istemcinin raw-response sarmalayıcısını kullanın:

raw = client.chat.completions.with_raw_response.create(
    model="uncensored",
    messages=[{"role": "user", "content": "ping"}],
    max_tokens=5,
)
print(raw.headers.get("x-request-id"), raw.headers.get("x-balance-usd"))
completion = raw.parse()
print(completion.choices[0].message.content)

Bu, yanıtın yanında istek kimliğini ve kalan bakiyenizi yazdırır; bu, bir cron işi veya başlangıç betiğinden çalıştırabileceğiniz hızlı bir sağlık kontrolüdür.

Diğer araçlardan kullanma

Uç nokta OpenAI formatını izlediğinden, diğer Python kütüphaneleri aynı iki ayarla onu kullanabilir. Özel bir OpenAI Base URL kabul eden çerçeveler yalnızca base_url ve api_key gerektirir. Node için resmi openai paketi aynı alanları alır:

import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api.getaiapikey.com/v1",
  apiKey: process.env.API_KEY,
});

const r = await client.chat.completions.create({
  model: "uncensored",
  messages: [{ role: "user", content: "Say hello in five words." }],
});
console.log(r.choices[0].message.content);

Bu metin tabanlı bir hizmettir: resim veya ses oluşturma, gömme vektörler veya ince ayar yoktur. Projeniz bunları gerektiriyorsa, bu kısmı başka bir araçla birlikte kullanın. Model, bağımsız bir sağlayıcı tarafından yürütülen ve yasal yetişkin kullanımı için içerik reddetmeleri olmadan yanıt verecek şekilde ayarlanmış açık ağırlıklı bir modeldir. Reşit olmayanları içeren cinsel içeriğe asla izin verilmez.

Sorular ve cevaplar

LLM'yi Python'da bu şekilde kullanmak için GPU'ya ihtiyacınız var mı?

Hayır. Model sağlayıcının tarafında çalışır. Makinenizin yalnızca uç noktayı çağırmak için Python ve internet bağlantısına ihtiyacı vardır.

Hangi paketi kurmalıyım?

Resmi openai paketini pip ile yükleyin. Ardından base URL'yi https://api.getaiapikey.com/v1 olarak ayarlayın ve modeli uncensored olarak seçin.

Denemek için ücretsiz bir yol var mı?

Yeni kullanıcılar, kayıt olduktan sonra tek tıkla $0.50 değerinde ücretsiz deneme kredisi alabilir. 7 gün boyunca geçerlidir, kart gerektirmez ve kişi başı bir kezle sınırlıdır.

Bir istek ne kadar tutar?

2.000 giriş tokenı ve 500 çıktı tokenı içeren bir istek, 1M token başına $0.15 ve $0.50'dan $0.00055 tutarındadır. Yalnızca başarılı istekler için ödeme yaparsınız.

Akış ve fonksiyon çağırma destekleniyor mu?

Evet. SSE üzerinden akış, fonksiyon çağırma ve JSON modu standart OpenAI istemcisi üzerinden çalışır.

Anahtarınız tek bir formun uzağında

Bir hesap oluşturun, anahtarı kopyalayın ve base URL'yi değiştirin. Kurulum bu kadar basit.