GetAiApiKey/Üretim İçin Yapay Zeka API Kontrol Listesi
Discord Bot'u için LLM API Anahtarı: Kurulum Kılavuzu
Bir Discord botunun bir LLM sağlayıcısından üç şeye ihtiyacı vardır: OpenAI uyumlu bir uç nokta, bir anahtar ve yoğun bir sunucuya uygun limitler. İşte çalışan bir bot, arkasındaki ayarlar ve mesaj başına maliyet.
güncellendi

Temel noktalar
- base URL https://api.getaiapikey.com/v1 ve uncensored modeli ile openai paketini kullanın.
- Kanal başına kısa bir kayan geçmişi koruyun; pencere 100.000 token'dır ancak her yeniden gönderilen dönüş maliyeti artar.
- Tam anahtar eşzamanlı 8 istek ve dakikada 300 istek izni verdiğinden, devam eden çağrıları yaklaşık 6 ile sınırlayın.
- 1.500 girdi ve 200 çıktı token'lı bir sohbet yanıtı $0.000325 tutarındadır.
Bir LLM API anahtarının bir Discord botu için ne yaptığı
Bir LLM API anahtarı Discord botu istiyorsanız, hareketli parçalar basittir. Discord, bot ağ geçidi aracılığıyla bir mesajı kodunuza iletir. Kodunuz, son konuşmayı bir LLM uç noktasına gönderir, metni alır ve bunu kanala geri gönderir. API anahtarı, isteğin size ait olduğunu LLM sağlayıcısına kanıtlar ve bunu bakiyenize işler.
Bu hizmet OpenAI uyumludur, bu nedenle bot standart openai Python paketini kullanır. İki ayarı değiştirirsiniz: base URL ve model ID uncensored, geri kalanı normal sohbet tamamlamalarıdır. Yeni kullanıcılar önce deneyebilir: kayıt olduktan sonra API anahtarı sayfası 7 gün geçerli, kart gerekmeden $0.50 deneme kredisi sunar.
Öncelikle dürüst bir sınır. Bu bir metin modelidir. Resim, ses veya video oluşturamaz ve ek dosyaları tek başına okumaz. Botunuz bir mesajdan metni iletebilir, ancak metnin ötesindeki her şey bu API'nin kapsamı dışındadır.
Kod yazmadan önce
- Bir API anahtarı edinin. Google veya e-posta ile kaydolun, anahtar sayfasında bir anahtar oluşturun ve bunu bir ortam değişkeninde saklayın.
- Bir Discord uygulaması oluşturun. Discord'un geliştirici portalında bir bot ekleyin, belirtecini (token) kopyalayın ve botun mesaj metnini okumasını sağlayan Message Content niyetini etkinleştirin. Botu, mesajları okuma ve gönderme izinlerine sahip olacak şekilde sunucunuza davet edin.
- Kütüphaneleri yükleyin.
discord.pyveopenaikütüphanelerine ihtiyacınız var.
python3 -m venv .venv
source .venv/bin/activate
pip install discord.py openai
export API_KEY="your-llm-key"
export DISCORD_TOKEN="your-discord-bot-token"
Herhangi bir gizli bilgiyi asla commit etmeyin. Bir token sızarsa, ilgili panelden sıfırlayın. LLM tarafı için, hızlı başlangıç dokümantasyonu curl ve Node ile aynı çağrıyı gösterir, başka bir dil tercih ederseniz.
Yaklaşık 50 satırlık çalışan bir bot
Bu bot birisi onu etiketlediğinde yanıt verir. Kanal başına son 20 mesajı tutar, bir kişilik istemi ile modeli çağırır ve uzun cevapları Discord'un 2.000 karakterlik mesaj limitine sığacak şekilde böler.
import os
import asyncio
from collections import defaultdict, deque
import discord
from openai import AsyncOpenAI, RateLimitError
ai = AsyncOpenAI(
base_url="https://api.getaiapikey.com/v1",
api_key=os.environ["API_KEY"],
)
SYSTEM = (
"You are Mara, the resident storyteller of a community server for adult "
"fiction writers. Keep replies under 150 words unless asked for more. "
"Stay in character, write in plain prose, and ask one question at the end."
)
history = defaultdict(lambda: deque(maxlen=20))
gate = asyncio.Semaphore(6)
intents = discord.Intents.default()
intents.message_content = True
bot = discord.Client(intents=intents)
@bot.event
async def on_message(message):
if message.author.bot or bot.user not in message.mentions:
return
text = message.clean_content.replace("@" + bot.user.display_name, "").strip()
if not text:
return
log = history[message.channel.id]
log.append({"role": "user", "content": message.author.display_name + ": " + text})
async with gate:
async with message.channel.typing():
try:
resp = await ai.chat.completions.create(
model="uncensored",
messages=[{"role": "system", "content": SYSTEM}, *log],
temperature=0.8,
max_tokens=500,
)
except RateLimitError:
await message.reply("I am busy right now. Try again in a few seconds.")
return
reply = resp.choices[0].message.content or ""
log.append({"role": "assistant", "content": reply})
for i in range(0, len(reply), 1900):
await message.reply(reply[i:i + 1900])
bot.run(os.environ["DISCORD_TOKEN"])
python bot.py ile çalıştırın, bir kanalda botu etiketleyin ve bir yanıt görmelisiniz. İstek sürerken yazma göstergesi görünür, bu da bekleme süresini daha kısa hissettirir.
Bir kişiliği koruyan bir sistem istemi yazın
Sistem istemi, bir sohbet botunda işin çoğunu yapar. İyi bir istem kısa ve özdür: botun kim olduğu, cevaplarının uzunluğu ve konuşma saptığında ne yapması gerektiği. İki versiyonu karşılaştırın.
Zayıf bir istem "yardımcı bir asistan ol" der. Daha güçlü olan bir rol, bir uzunluk sınırı ve bir alışkanlık verir: "Sen Mara'sın, bir hikaye anlatıcısı. 150 kelimenin altında yanıt ver. Sahneyi ilerleten bir soruyla bitir." İkinci versiyon modele bir düzine dönüş boyunca tutunması için bir şey verir ve uzunluk sınırı maliyetinizi öngörülebilir tutar.
Sohbet botları çalıştırırken bazı pratik noktalar:
- Her kullanıcı dönüşünü kodun yaptığı gibi konuşmacının adıyla ön ekleyin. Paylaşılan bir kanalda model diğer insanları ayırt edemez.
- Sunucunuz için kuralları sistem istemine koyun, örneğin kaçınılması gereken konular veya kendi üslubunuz. Model, yetişkinlerin yasal kullanımı için içerik reddi olmadan yanıt verecek şekilde ayarlanmıştır, bu nedenle istediğiniz limitler modelden değil, isteminizden ve moderasyonunuzdan gelmelidir.
- Kişiliği sabit tutun. Sık değiştirirseniz, geçmişteki eski dönüşler yeni talimatlarla çelişir.
Bağlam, geçmiş ve 100.000 token penceresi
Bağlam penceresi 100.000 token'dır; istem ve tamamlama birlikte. 20 mesajlık bir kayan geçmiş buna göre çok azdır ve bu bilinçlidir. API durumsizdir: her istek, modelin görmesini istediğiniz tüm konuşmayı taşımalıdır, bu nedenle tuttuğunuz her ek dönüş, sonraki her çağrıda tekrar ödenir.
Botun ne kadar hafızaya ihtiyacı olduğuna göre bir geçmiş uzunluğu seçin. Günlük bir sohbet botu 10 ila 20 mesajla çalışır. Uzun süren bir rol yapma daha fazla hafıza gerektirebilir ve bunun için yaygın bir yaklaşım, eski dönüşleri istemin üst kısmında tutulan kısa bir nota özetlemektir, ardından orijinalleri kaldırmaktır. Geçmiş seçtiğiniz bir boyutu geçtiğinde özet yazmak için ikinci bir model çağrısı kullanın.
Koddaki gibi kanal başına geçmiş, konuşmaları ayrı tutar. Kanallar arası kullanıcı bazlı hafıza da istiyorsanız, notları bir veritabanında saklayın ve o kullanıcı için sistem istemine ekleyin. Bu kısım uygulamanızın işidir, çünkü API kendisi çağrılar arasında hiçbir şey tutmaz. Gizlilik için, bu API'ye gönderilen istemlerin eğitim için kullanılmadığını unutmayın; detaylar için gizlilik sayfasına bakın.
Yoğun bir sunucuda hız limitleri
Tam bir anahtar eşzamanlı 8 istek ve dakikada 300 istek izni verir. Bir deneme anahtarı 2 ve 60 izni verir. Sessiz bir sunucu bunu fark etmez, ancak popüler bir kanal aynı anda bir dizi etiketleme gönderebilir.
Koddaki asyncio.Semaphore(6) botu eşzamanlı 6 çağrıya sınırlar, böylece 8'lik tavana ulaşmaz ve aynı anahtarı kullanan ikinci bir betik için yer bırakır. Bir deneme anahtarında bunu 2'ye ayarlayın. Bir limiti aşarsanız API HTTP 429 döndürür: dakika başına istekler için rate_limited, aynı anda çok fazla için concurrency. Geçici aşırı yüklenme de Retry-After: 5 ile 429 verir. OpenAI istemcisi bunların bazılarını varsayılan olarak yeniden dener ve yukarıdaki kod, yeniden denemeler tükendiğinde kibar bir mesajla yanıt verir.
Akış (streaming) bir notu hak eder. Tokenlar geldikçe Discord mesajını düzenlerseniz, istek eşzamanlılık slotunu akış bitene kadar tutar ve Discord mesajları ne kadar hızlı düzenleyebileceğinize sınır koyar. Çoğu bot için tam cevap sonrası tek bir yanıt daha basit ve güvenilirdir.
Bir Discord botunu çalıştırmanın maliyeti
Fiyatlandırma ön ödemeli krediden 1M girdi token için $0.15 ve 1M çıktı token için $0.50'dir. Önce bir yanıtın maliyetini hesaplayın. Sistem istemi artı 20 mesajlık geçmiş 1.500 girdi token'a gelir ve cevap 200 token'dır.
- Girdi: 1.500 / 1.000.000 x $0,15 = $0,000225
- Çıktı: 200 / 1.000.000 x $0.50 = $0.0001
- Toplam: Yanıt başına $0.000325, yani 1.000 yanıt $0.325 tutarındadır
Şimdi daha ağır bir vaka: 3.000 girdi ve 300 çıktı token: $0.00045 + $0.00015 = $0.0006 yanıt başına, veya 1.000 yanıt için $0.60. Bu boyutta günde 500 yanıt alan bir sunucu günde yaklaşık $0.30, 30 günde yaklaşık $9 harcar.
En küçük bakiye yükleme $20'dir ($500'e kadar herhangi bir tam tutar), $50'den %5 bonus, $100'den %10 ve $200'den %15 bonus verir. Kredi asla sona ermez, başarısız veya reddedilen istekler ücretlendirilmez. Kart (Visa, Mastercard, Apple Pay, Google Pay) veya kripto (TRC20 üzerinde USDT, Base üzerinde USDC) ile ödeme yapın. Daha fazla bilgi için fiyatlandırma sayfasına bakın.
Yetişkin topluluklar için kurallar ve güvenlik
Model yetişkinlerin yasal kullanımı için hizmet verir ve sert sınır, reşit olmayanlar içeren cinsel içeriğe asla izin verilmemesidir. Sunucunuz yetişkinler için kurgu veya rol yapma içeriyorsa, yetişkinlerle sınırlı tutun: Discord'un kendi ayarlarında kanallara erişimi kısıtlayın, kurallarınızı kanal konusuna yazın ve moderasyon yapın. Botu yayına almadan önce Discord'un güncel geliştirici ve topluluk politikalarını okuyun; model ne yazarsa yazsın bu politikalar botunuz için geçerlidir.
İstek kimliklerini günlüğe kaydedin. Her API yanıtı X-Request-Id içerir; bu, belirli bir çağrı hakkında destek ile iletişime geçtiğinizde yardımcı olur. X-Balance-USD başlığı, botun kredi azaldığında bir yönetici kanalında size uyarı vermesini sağlar, böylece bot size haber vermeden asla sessizleşmez.
Daha fazla kılavuz
Sorular ve cevaplar
Discord botundan API'yi çağırmak için hangi kütüphaneyi kullanmalıyım?
OpenAI Python paketini AsyncOpenAI ile kullanın, base_url değerini https://api.getaiapikey.com/v1 olarak ayarlayın ve uncensored modelini kullanın. Herhangi bir OpenAI uyumlu istemci aynı şekilde çalışır.
Botu ödemeden test edebilir miyim?
Evet. Yeni kullanıcılar API anahtarı sayfasında tek tıkla $0.50 deneme kredisi talep edebilir. Bu kredi 7 gün boyunca geçerlidir, kart gerektirmez ve deneme anahtarı eşzamanlı 2 istek ve dakika başına 60 istek yapmaya olanak tanır.
Bot kaç mesajı hatırlayabilir?
Bağlam penceresi 100.000 token kapasitesine sahiptir, ancak ne kadar geçmiş veriyi yeniden göndereceğinizi siz belirlersiniz. Çoğu bot maliyeti kontrol etmek için kanal başına 10 ile 20 mesaj arasında tutar.
Bot resimleri okuyabilir veya sesle yanıt verebilir mi?
Hayır. Bu API yalnızca metin işler; resim, ses veya video oluşturma ve gömme (embedding) desteği yoktur.
Çok sayıda kişi botu aynı anda etiketlerse ne olur?
Eşzamanlı 8 veya dakika başına 300 istek sınırını aşan ek istekler HTTP 429 hatası döndürür. Botunuzda eşzamanlılık ve istek sayısını bu sınırlar altında tutmak için bir semafor (semaphore) veya kuyruk kullanın.
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.