Filtresiz AI Kodlayıcı: Cursor ve Python'da Kullanım
Bazı kod istekleri ana akış asistanları tarafından reddedilir veya uyarı etiketi alır: güvenlik araçları, scraper'lar, tersine mühendislik, kendi laboratuvarınız için exploit yazıları. İşte bir sansürsüz modeli editörünüze ve betiklerinize nasıl bağlayacağınız ve ondan ne bekleyeceğiniz.

Temel noktalar
- Uç nokta OpenAI sohbet formatını kullanır; bu nedenle özel bir base URL kabul eden editörler ve framework'ler onu kullanabilir.
- Fonksiyon çağırma, JSON modu ve akış desteklenir; bu da çoğu kodlama ajanı desenini kapsar.
- 100.000 token'lık pencere, bir istekte bir depodan büyük bir kısmı sığdırır.
- Bu özel bir kod modeli değil, genel bir modeldir; bu yüzden önce kendi görevlerinizde test edin.
Filtresiz bir kodlayıcı nedir ve ne değildir
Bir sansürsüz AI kod yazarı, programlama isteklerini nedenlerinizi ikinci kez düşünmeden yanıtlayan bir dil modelidir. Kendi ağınıza bir port tarayıcı yazıyorsanız, kaynak kodunu kaybettiğiniz eski bir binary'yi decompile ediyorsanız veya bir tarayıcıyı taklit eden bir scraper yazıyorsanız, sorumlu kullanım hakkında bir paragraf yerine kod alırsınız.
Bu hizmetin ne olduğuna dair net olmak faydalıdır. Bu, yasal yetişkin kullanımı için içerik reddi olmadan yanıt verecek şekilde ayarlanmış tek bir açık ağırlıklı modeldir ve bağımsız bir sağlayıcı tarafından çalıştırılmaktadır. Büyük bir satıcının resmi API'si değildir ve modeller arasında seçim yapan bir yönlendirici de değildir. Model ID'si uncensored şeklindedir. Burada benchmark puanları hakkında bir iddia yoktur, çünkü bu sitede bunun için yayınlanan puan yoktur. Daha az reddiye olan bir model otomatik olarak daha iyi bir programcı değildir, bu yüzden ilk haftayı bir değerlendirme olarak ele alın.
Yasal kullanım sizin sorumluluğunuzdadır. Araç, meşru güvenlik çalışmaları, araştırma ve olağandışı mühendislik için sürtünmeyi kaldırır. Başka sahip olmadığınız sistemlere saldırma lisansı değildir.
Python veya curl ile çağırma
En basit test tek bir istektir. Bu Python betiği küçük bir araç ister ve yanıtı yazdırır.
from openai import OpenAI
client = OpenAI(base_url="https://api.nofilterai.cc/v1", api_key="YOUR_KEY")
resp = client.chat.completions.create(
model="uncensored",
temperature=0.2,
messages=[
{"role": "system", "content": "You are a senior engineer. Reply with code first, then at most five lines of notes."},
{"role": "user", "content": "Write a Python script that scans TCP ports 1-1024 on a host I own, using asyncio, with a 0.5 s timeout."},
],
)
print(resp.choices[0].message.content)
Düşük sıcaklık kodlar için uygundur. 0.1 ile 0.3 arasındaki değerler daha istikrarlı bir çıktı verir ve seed, istemleri karşılaştırırken bir çalışmayı tekrar etmenizi sağlar. Kabuktan aynı istek şöyle görünür.
curl https://api.nofilterai.cc/v1/chat/completions \
-H "Authorization: Bearer YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"temperature": 0.2,
"messages": [
{"role": "user", "content": "Explain this regex and rewrite it without lookbehind: (?<=id=)\\d+"}
]
}'
Uç noktanın neyi açığa çıkardığını GET /v1/models ile listeleyebilirsiniz. anahtar sayfası'ndan bir anahtar alın; $0.50 değerindeki tek tıkla deneme kredisi, birçok küçük kodlama isteği için yeterlidir.
Cursor'da kurulum
Cursor, model ayarlarında OpenAI base URL'sini geçmenize olanak tanır; bu da onu uyumlu herhangi bir sağlayıcıya yönlendirmenizi sağlar. Menü isimleri sürümler arasında değişir, bu yüzden etiketlere değil fikre uyun.
- Cursor ayarlarını açın ve modeller bölümünü bulun.
- Anahtarınızı OpenAI API anahtarı alanına yapıştırın.
- OpenAI base URL'sini geçme seçeneğini etkinleştirin ve
https://api.nofilterai.cc/v1girin. uncensoredadında özel bir model ekleyin ve sohbet panelinde seçin.- Birden fazla dosyada düzenleme denemeden önce küçük bir test mesajı gönderin.
Cursor ve benzer editörler bazı özellikler için kendi sunucularını kullanabilir ve bazı özellikler özel modelleri hiç kabul etmeyebilir. Bir özellik başarısız olursa, uç noktanın bozuk olduğunu varsaymak yerine bunun satıcının kendi modellerine bağlı olup olmadığını kontrol edin. Özel bir modelle sohbet güvenilir kısımdır.
Continue veya Aider gibi OpenAI uyumlu bir uç nokta kabul eden diğer araçlar aynı üç değeri kullanır: base URL, anahtar, model adı.
LangChain ile kullanım
LangChain'in ChatOpenAI sınıfı bir base_url argümanı alır, bu nedenle uç nokta özel bir sarmalayıcı olmadan entegre olur.
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(
model="uncensored",
base_url="https://api.nofilterai.cc/v1",
api_key="YOUR_KEY",
temperature=0.2,
)
print(llm.invoke("Write a bash one-liner that lists the 10 largest files under /var/log.").content)
Zincirler, istem şablonları ve çıktı ayrıştırıcıları OpenAI şemasını takip eden herhangi bir sohbet modeliyle aynı şekilde çalışır. Bir ajan oluşturuyorsanız, eşzamanlılık sınırını unutmayın: tam anahtar aynı anda 8 isteğe ve dakikada 300 isteğe izin verir, deneme anahtarı ise 2 ve 60'a izin verir. On fonksiyon çağırma eşzamanlı olarak yapan bir ajan, fazlalar için concurrency koduyla HTTP 429 hatası alır. Fan-out'u sınırlandırın veya kısa bir gecikmeyle yeniden deneyin.
Ajanlar için fonksiyon çağırma ve JSON modu
Kodlama ajanları yapılandırılmış çıktıda yaşar. API tools, tool_choice, akışlı tool_calls ve role: "tool" mesajları olarak gönderilen araç sonuçlarını destekler. Bir dosya okuyan bir işlevle minimal bir gidiş-dönüş örneği burada verilmiştir.
import json
from openai import OpenAI
client = OpenAI(base_url="https://api.nofilterai.cc/v1", api_key="YOUR_KEY")
tools = [{
"type": "function",
"function": {
"name": "read_file",
"description": "Read a UTF-8 text file from the project",
"parameters": {
"type": "object",
"properties": {"path": {"type": "string"}},
"required": ["path"],
},
},
}]
messages = [{"role": "user", "content": "Open main.py and tell me what it does."}]
first = client.chat.completions.create(model="uncensored", messages=messages, tools=tools)
call = first.choices[0].message.tool_calls[0]
messages.append(first.choices[0].message)
messages.append({
"role": "tool",
"tool_call_id": call.id,
"content": open(json.loads(call.function.arguments)["path"]).read(),
})
final = client.chat.completions.create(model="uncensored", messages=messages, tools=tools)
print(final.choices[0].message.content)
Modelin istediği herhangi bir şeyi çalıştırmadan önce her zaman argümanları doğrulayın. Modelden gelen bir yol, kabuk dizgesi veya URL, hangi model üretirse üretsin güvenilmeyen bir girdidir.
Kodunuzun ayrıştırılmasını istediğiniz çıktılar için, response_format değerini {"type":"json_object"} olarak ayarlayın ve istemde hangi anahtarları beklediğinizi belirtin. JSON modu yanıtı geçerli JSON yapar, ancak şema kontrolleriniz hala kodunuzda olmalıdır.
Bağlam boyutu ve bir kodlama isteğinin maliyeti
Pencere, istem ve yanıt için 100.000 token içindir. Kabaca bir kılavuz olarak, bu aynı anda birçok kaynak dosyayı tutar, böylece bir modülü, testlerini ve hata izleme kayıtlarını özetlemek yerine tek seferde yapıştırabilirsiniz. Daha büyük istemler daha fazla maliyet gerektirir, bu yüzden sorunun ihtiyaç duyduğu kadar gönderin.
Fiyat 1M giriş token'ı başına $0.15 ve 1M çıktı token'ı başına $0.50'dir. Örnekler:
| İstek | Girdi | Çıktı | Maliyet |
|---|---|---|---|
| Bir işlevi açıkla | 1,500 | 500 | $0.000225 + $0.00025 = $0.000475 |
| Testleri olan bir modülü incele | 30,000 | 2,000 | $0.0045 + $0.001 = $0.0055 |
| Bir günde böyle 200 inceleme | 6,000,000 | 400,000 | $0.90 + $0.20 = $1.10 |
| Tüm pencereyi girdi olarak kullan, tek çağrı | 100,000 | 0 | $0.015 |
Başarısız veya reddedilen istekler ücretlendirilmez. Kredi ön ödemelidir, süresi dolmaz ve bakiye yükleme işlemleri $20 ile $500 arasında herhangi bir tam tutar için yapılır; $50'den itibaren %5, $100'den itibaren %10 ve $200'den itibaren %15 bonus uygulanır. Ödeme yalnızca kripto ile yapılır: TRC20 üzerinde USDT veya Base üzerinde USDC. Güncel koşullar için fiyatlandırma sayfası'ne bakın.
Gerçek diff'lerde çalışan bir inceleme istemi
Büyük bir pencerenin en iyi kullanımlarından biri incelemedir. "Bu kod iyi mi?" diye sormak yerine, diff'i ve dokunduğu dosyaları yapıştırın ve bulguları sabit bir yapıda isteyin. Her öğe dosyayı, satırı, sorunu ve tek satırlık bir düzeltmeyi adlandıran numaralı bir liste isteyin ve boş bir listenin geçerli bir yanıt olduğunu belirtin. Bu son talimat önemlidir: Sorun bulması söylenen bir model, sizi memnun etmek için bazen onları uydurabilir.
İnceleme için sıcaklığı 0.2 civarında tutun, çünkü ikinci bir çalışmada aynı bulmayı istersiniz. İncelemeleri sürekli entegrasyon işinde çalıştırıyorsanız, seed ayarlayın ve X-Request-Id başlığını günlüğe kaydedin böylece şaşırtıcı bir sonucu daha sonra izleyebilirsiniz. Bir betiğin bulguları bir yere göndermesi gerektiğinde bunu JSON moduyla birleştirin ve file, line, severity ve fix gibi anahtarlar isteyin.
Yanlış veya boş yanıt durumunda
Başarısız çalıştırmaların çoğunu üç sorun kapsar. 401 alırsanız, anahtar eksiktir veya başlık Authorization: Bearer ile başlıyor ve ardından anahtarınız geliyor. Bir editör modelin mevcut olmadığını söylüyorsa, ismin tam olarak uncensored olduğundan ve base URL'nin /v1 ile bittiğinden ve ekstra bir yol içermediğinden emin olun. Kod derlenir ancak yanlış davranırsa, modele hata çıktısını verin ve her şeyi yeniden yazmadan önce hatayı açıklamasını isteyin; teşhis sonrası yapılan düzeltmeler, körüne yapılan düzeltmelerden daha küçük ve daha güvenlidir.
Nerede uyduğu ve nerede uymadığı
Diğer asistanların reddettiği veya çekindiği istekler için bir sansürsüz uç nokta kullanın ve diğerleri için size daha iyi çalışan normal aracınızı koruyun. Çoğu geliştirici iki modeli paralel çalıştırır ve her görevi temiz yanıt veren hangisiyse ona gönderir.
- Uygun kullanım alanları: sahip olduğunuz sistemlerde güvenlik laboratuvarı çalışmaları, scraping ve otomasyon scriptleri, savunucular için kötü amaçlı yazılım analiz raporları, tersine mühendislik notları, tuhaf veri işleme işleri.
- Dikkatli olun: oluşturulan kod hatalar veya uydurma kütüphane fonksiyonları içerebilir. Kodu çalıştırın, test edin ve okuyun.
- Sunulmayanlar: görüntü veya ses üretimi, gömme vektörler ve ince ayar. Bu yalnızca bir metin sohbet uç noktasıdır.
- Gizlilik: istemler eğitim için kullanılmaz, bu da özel kod yapıştırıyorsanız önemlidir.
İstek gövdesi sınırı isteği başına 8 MB'tır; bu, bağlam penceresinin kullanabileceğinden çok daha fazladır. Yanıt başlıkları X-Request-Id, X-Balance-USD ve hız limiti değerlerini içerir; bunlar günlüklerde kullanışlıdır. belgelendirme aktarılan tüm parametreleri listeler.
Daha fazla kılavuz
Sorular ve cevaplar
Bir sansürsüz AI kod yazarı diğer modellere göre programlamada daha iyi midir?
Varsayılan olarak hayır. Daha az reddetme, modelin ne yanıt vereceğini değiştirir, kodlama kalitesini değil. Güvenmeden önce kendi görevlerinizde test edin.
Hangi editörler ve framework'ler ile çalışır?
Özel bir OpenAI uyumlu base URL, bir anahtar ve bir model adı kabul eden her şey. Cursor, LangChain ve resmi OpenAI SDK'ları yaygın örneklerdir.
Fonksiyon çağırma'yı destekliyor mu?
Evet. Araçları ve tool_choice'u kabul eder, tool_calls döndürür (akış sırasında bile) ve sonuçları role: tool mesajları olarak alır. JSON modu da mevcuttur.
Hız limitine (rate limit) ulaştığımda ne olur?
HTTP 429 hatası alırsınız; hata kodu rate_limited veya concurrency olur. Geçici aşırı yüklenme durumunda 429 yanıtı 5 saniyelik bir Retry-After başlığı taşır.
Anahtarınız tek bir formun uzağında
Bir hesap oluşturun, anahtarı kopyalayın, base URL'yi değiştirin. Kurulumun tamamı budur.