NL ▾
API-sleutel aanvragen

No Filter AI Coder: gebruik in Cursor en Python

Sommige codeverzoeken krijgen een weigering of een waarschuwingslabel van mainstream-assistenten: security tools, scrapers, reverse engineering, exploit write-ups voor je eigen lab. Hier is hoe je een ongecensureerd model in je editor en scripts kunt inrichten, en wat je ervan kunt verwachten.

Bijgewerkt

Isometrische terminal met codeblokken die in verbonden kubussen stromen, illustratie van een ongecensureerde coding API

Belangrijkste punten

  • De endpoint spreekt het OpenAI chat-formaat, dus editors en frameworks die een aangepaste base URL accepteren, kunnen het gebruiken.
  • Tool calling, JSON-modus en streaming worden ondersteund, wat de meeste coding-agent patronen dekt.
  • Het 100.000-token contextvenster past een groot deel van een repository in één verzoek.
  • Het is een algemeen model, geen code-gespecialiseerd model, dus test het eerst op je eigen taken.

Wat een no filter coder is, en wat het niet is

Een ongecensureerde ai-coder is een taalmodel dat programmeerverzoeken beantwoordt zonder je motieven ter discussie te stellen. Als je een portscanner schrijft voor een netwerk dat je eigendom is, een legacy-binary decompileert waarvan je de bron verloren bent, of een scraper bouwt die een browser imiteert, krijg je code in plaats van een alinea over verantwoord gebruik.

Het is goed om precies te zijn over wat deze dienst is. Het is één open-weight model, afgestemd om zonder inhoudelijke afwijzingen te antwoorden voor wettelijk volwassen gebruik, gerund door een onafhankelijke aanbieder. Het is niet de officiële API van een grote leverancier en het is geen router die tussen modellen kiest. De model-ID is uncensored. Er wordt hier geen bewering gedaan over benchmark scores, omdat er geen voor dit model op deze site gepubliceerd zijn. Een model met minder afwijzingen is niet automatisch een betere programmeur, dus behandel de eerste week als een evaluatie.

Wettelijk gebruik is jouw verantwoordelijkheid. De tool verwijdert wrijving voor legitiem security werk, onderzoek en ongebruikelijke engineering. Het is geen licentie om systemen aan te vallen die je niet eigendom zijn.

Oproepen vanuit Python of curl

De eenvoudigste test is een enkel verzoek. Dit Python script vraagt om een kleine tool en drukt het antwoord af.

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)

Een lage temperatuur is geschikt voor code. Waarden tussen 0,1 en 0,3 geven stabielere uitvoer, en seed stelt je in staat een run te herhalen als je prompts vergelijkt. Een hetzelfde verzoek vanaf de shell ziet er als volgt uit.

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+"}
    ]
  }'

Je kunt bekijken wat de endpoint blootlegt met GET /v1/models. Haal een sleutel op van de sleutelpagina; het proeftegoed van $0,50 is genoeg voor vele honderden kleine codeverzoeken.

Instellen in Cursor

Cursor laat je de OpenAI basis-URL overschrijven in de modelinstellingen, wat je in staat stelt het naar elke compatibele provider te wijzen. De exacte menu-namen verschillen tussen versies, dus volg het idee in plaats van de labels.

  1. Open Cursor-instellingen en zoek de modellen sectie.
  2. Plak je sleutel in het OpenAI API-sleutel veld.
  3. Schakel de optie in om de OpenAI basis-URL te overschrijven en voer https://api.nofilterai.cc/v1 in.
  4. Voeg een aangepast model genaamd uncensored toe en selecteer het in het chat paneel.
  5. Stuur een kleine testbericht voordat je een bewerking probeert over meerdere bestanden.

Cursor en vergelijkbare bewerkingsprogramma's kunnen hun eigen servers gebruiken voor sommige functies, en sommige functies accepteren mogelijk helemaal geen aangepaste modellen. Als een functie faalt, controleer dan of deze gekoppeld is aan de eigen modellen van de aanbieder in plaats van ervan uit te gaan dat de endpoint kapot is. Chat met een aangepast model is het betrouwbare onderdeel.

Andere tools die een OpenAI-compatibele endpoint accepteren, zoals Continue of Aider, gebruiken dezelfde drie waarden: basis-URL, sleutel, modelnaam.

Gebruik vanuit LangChain

De ChatOpenAI-klasse van LangChain accepteert een base_url-argument, dus het endpoint valt er zonder aangepaste wrapper in.

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)

Chains, prompt-sjablonen en output parsers werken op dezelfde manier als bij elk chatmodel dat het OpenAI-schema volgt. Als je een agent bouwt, onthoud dan de gelijktijdigheidslimiet: een volledige sleutel staat 8 gelijktijdige verzoeken en 300 per minuut toe, een trialsleutel 2 en 60. Een parallelle agent die tien tool calls fan-out, krijgt HTTP 429 met de code concurrency voor de extra's. Beperk de fan-out, of probeer het opnieuw met een korte vertraging.

Tool calling en JSON-modus voor agents

Coding agents leven van gestructureerde output. De API ondersteunt tools, tool_choice, gestreamde tool_calls, en tool resultaten teruggestuurd als role: "tool" berichten. Hier is een minimale round trip met een functie die een bestand leest.

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)

Valideer altijd de argumenten voordat je iets uitvoert dat het model vraagt. Een pad, een shell string of een URL die van een model komt is onbetrouwbare input, welk model het ook produceerde.

Stel voor uitvoer die je code moet parseren, response_format in op {"type":"json_object"} en vermeld in de prompt welke sleutels je verwacht. JSON-modus zorgt ervoor dat het antwoord geldige JSON is, maar je schemacontroles behoren nog steeds tot je code.

Contextgrootte en de kosten van een coding call

Het venster is 100.000 tokens voor prompt plus antwoord. Als grove richtlijn: dat bevat veel bronbestanden tegelijk, dus je kunt een module, de tests en de mislukte traceback in één keer plakken in plaats van te samenvatten. Grotere prompts kosten meer, dus stuur alleen wat de vraag nodig heeft.

De prijs is $0,15 per 1M input tokens en $0,50 per 1M output tokens. Voorbeelden:

VerzoekInvoerUitvoerKosten
Leg een functie uit1,500500$0,000225 + $0,00025 = $0,000475
Beoordeel een module met tests30,0002,000$0.0045 + $0.001 = $0.0055
200 beoordelingen zoals die in een dag6,000,000400,000$0.90 + $0.20 = $1.10
Hele venster als invoer, één aanroep100,0000$0.015

Mislukte of geweigerde verzoeken worden niet in rekening gebracht. Het tegoed is vooraf betaald, verloopt niet, en opwaarderingen lopen van $20 tot $500 in elk geheel bedrag, met een bonus van 5% vanaf $50, 10% vanaf $100 en 15% vanaf $200. Betaling is alleen crypto: USDT op TRC20 of USDC op Base. Zie de prijspagina voor de huidige voorwaarden.

Een review prompt die werkt op echte diffs

Een van de beste toepassingen van een groot venster is review. In plaats van te vragen "is deze code goed?", plak je de diff en de bestanden die het raakt, en vraag je om bevindingen in een vaste vorm. Vraag om een genummerde lijst waarin elk item het bestand, de regel, het probleem en een een-regelige fix benoemt, en zeg dat een lege lijst een geldig antwoord is. Die laatste instructie is belangrijk: een model dat gevraagd wordt problemen te vinden, verzint ze soms om je te behagen.

Houd de temperatuur rond 0,2 voor review, omdat je dezelfde bevinding wilt bij een tweede run. Als je reviews uitvoert in een continuous integration-job, stel dan seed in en log de X-Request-Id-header zodat je een verrassend resultaat later kunt traceren. Combineer dit met JSON-modus wanneer een script de bevindingen ergens moet posten, en vraag om sleutels zoals file, line, severity en fix.

Wanneer het antwoord fout of leeg is

Drie problemen dekken de meeste mislukte runs. Als je een 401 krijgt, ontbreekt de sleutel of is de header niet Authorization: Bearer gevolgd door je sleutel. Als een editor zegt dat het model niet bestaat, controleer dan of de naam exact uncensored is en of de basis-URL eindigt op /v1 zonder extra pad. Als de code compileert maar zich verkeerd gedraagt, geef het model dan de mislukte uitvoer en vraag het de fout te verklaren voordat het iets herschrijft; fixes die na een diagnose worden gemaakt, zijn doorgaans kleiner en veiliger dan fixes die blind worden gemaakt.

Waar het past en waar het niet past

Gebruik een ongecensureerde endpoint voor de verzoeken die andere assistants weigeren of nuanceren, en houd je gebruikelijke tool voor de rest als het beter voor je werkt. Veel ontwikkelaars draaien twee modellen naast elkaar en sturen elke taak naar degene die het schoon beantwoordt.

  • Goede fit: security lab-werk op systemen die je eigendom zijn, scraping- en automatiseringsscripts, malware-analyse write-ups voor verdedigers, reverse engineering-notities, vreemde data-munging taken.
  • Wees voorzichtig: gegenereerde code kan fouten of verzonnen library functies bevatten. Voer het uit, test het, lees het.
  • Niet aangeboden: afbeelding- of audiogeneratie, embeddings en fine-tuning. Dit is een tekstchat-endpoint alleen.
  • Privacy: prompts worden niet gebruikt voor training, wat belangrijk is als je bedrijfscode plakt.

De body limit is 8 MB per request, veel meer dan het contextvenster kan gebruiken. Response headers bevatten X-Request-Id, X-Balance-USD en de rate-limit waarden, die nuttig zijn in logs. De documentatie somt alle parameters op die worden doorgegeven.

Vragen en antwoorden

Is een AI-coder zonder filters beter in programmeren dan andere modellen?

Niet standaard. Minder weigeringen veranderen wat het antwoordt, niet hoe goed het codeert. Test het op je eigen taken voordat je erop vertrouwt.

Welke editors en frameworks werken ermee?

Alles wat een OpenAI-compatibele base URL, een sleutel en een modelnaam toelaat. Cursor, LangChain en de officiële OpenAI SDK's zijn veelvoorkomende voorbeelden.

Ondersteunt het function calling?

Ja. Het accepteert tools en tool_choice, retourneert tool_calls (ook bij streaming) en accepteert resultaten als role tool-berichten. JSON-modus is ook beschikbaar.

Wat gebeurt er als ik de rate limit raak?

Je krijgt HTTP 429 met de foutcode rate_limited of concurrency. Bij tijdelijke overbelasting bevat de 429 een Retry-After-header van 5 seconden.

Je sleutel is nog maar één klik verwijderd

Maak een account aan, kopieer de sleutel, pas de base URL aan. Dat is de hele setup.