TH ▾
รับคีย์ API

AI Coder ไม่เซ็นเซอร์: ใช้ใน Cursor และ Python

คำขอโค้ดบางคำขอได้รับการปฏิเสธหรือป้ายเตือนจากผู้ช่วยหลัก: เครื่องมือด้านความปลอดภัย, scraper, การ reverse engineering, การเขียน exploit สำหรับแล็บของคุณ นี่คือวิธีเชื่อมต่อโมเดล uncensored เข้ากับ editor และสคริปต์ของคุณ และสิ่งที่ควรคาดหวัง

อัปเดต

เทอร์มินัลแบบไอโซเมตริกที่มีบล็อกโค้ดไหลเข้าสู่ลูกบาศก์ที่เชื่อมต่อกัน แสดงถึง API การเขียนโค้ดแบบไม่เซ็นเซอร์

ประเด็นสำคัญ

  • เอนด์พอยต์ใช้รูปแบบแชทของ OpenAI ดังนั้นโปรแกรมแก้ไขและเฟรมเวิร์กที่ยอมรับ Base URL แบบกำหนดเองจึงใช้งานได้
  • รองรับการเรียกใช้ฟังก์ชัน โหมด JSON และสตรีมมิง ซึ่งครอบคลุมรูปแบบส่วนใหญ่ของเอเจนต์เขียนโค้ด
  • หน้าต่างบริบทขนาด 100,000 โทเคนรองรับการส่งโค้ดขนาดใหญ่ในหนึ่งคำขอ
  • เป็นโมเดลทั่วไป ไม่ใช่โมเดลเฉพาะทางสำหรับโค้ด ดังนั้นควรทดสอบกับงานของคุณเองก่อน

coder แบบไม่มีตัวกรองคืออะไร และไม่ใช่

AI Coder ไม่เซ็นเซอร์: ใช้ใน Cursor และ Python คือโมเดลภาษาที่ตอบคำขอการเขียนโปรแกรมโดยไม่ตั้งคำถามกับเหตุผลของคุณ หากคุณกำลังเขียน port scanner สำหรับเครือข่ายที่คุณเป็นเจ้าของ, decompile ไบนารีรุ่นเก่าที่คุณทำซอร์สโค้ดหาย หรือสร้าง scraper ที่เลียนแบบเบราว์เซอร์ คุณจะได้โค้ดแทนที่จะเป็นย่อหน้าเกี่ยวกับการใช้งานอย่างรับผิดชอบ

การระบุให้ชัดเจนว่าบริการนี้คืออะไรนั้นสำคัญ บริการนี้คือโมเดลแบบเปิดน้ำหนักหนึ่งตัว ที่ปรับแต่งให้ตอบโดยไม่มีการปฏิเสธเนื้อหาสำหรับการใช้งานผู้ใหญ่ที่ถูกต้องตามกฎหมาย ดำเนินการโดยผู้ให้บริการอิสระ ไม่ใช่ API ทางการของผู้ขายรายใหญ่ และไม่ใช่ตัวกลางที่เลือกโมเดลระหว่างโมเดลต่างๆ โมเดล ID คือ uncensored ไม่มีการอ้างคะแนนการทดสอบใดๆ เพราะไม่มีเผยแพร่ในเว็บนี้ โมเดลที่มีการปฏิเสธน้อยกว่าไม่ได้หมายความว่าเขียนโปรแกรมได้ดีกว่า ดังนั้นให้ใช้สัปดาห์แรกเป็นการประเมิน

การใช้งานที่ถูกต้องตามกฎหมายเป็นความรับผิดชอบของคุณ เครื่องมือนี้ลดอุปสรรคสำหรับงานความปลอดภัย การวิจัย และวิศวกรรมรูปแบบพิเศษ ไม่ใช่ใบอนุญาตให้โจมตีระบบที่คุณไม่ได้เป็นเจ้าของ

เรียกใช้จาก Python หรือ curl

การทดสอบที่ง่ายที่สุดคือการส่งคำขอเดียว สคริปต์ Python นี้ขอเครื่องมือขนาดเล็กและพิมพ์ผลลัพธ์

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)

อุณหภูมิต่ำเหมาะสำหรับโค้ด ค่าระหว่าง 0.1 ถึง 0.3 ให้ผลลัพธ์ที่เสถียรกว่า และ seed ช่วยให้คุณทำรันซ้ำเมื่อเปรียบเทียบพรอมต์ คำขอเดียวกันจาก shell มีลักษณะดังนี้

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

คุณสามารถดูสิ่งที่เอนด์พอยต์เปิดเผยด้วย GET /v1/models. รับคีย์จาก หน้าคีย์; เครดิตทดลองใช้แบบคลิกเดียว $0.50 เพียงพอสำหรับคำขอการเขียนโปรแกรมขนาดเล็กหลายร้อยรายการ

ตั้งค่าใน Cursor

Cursor ช่วยให้คุณแทนที่ Base URL ของ OpenAI ในการตั้งค่าโมเดล ซึ่งเป็นวิธีชี้ไปที่ผู้ให้บริการที่เข้ากันได้ ชื่อมenus เปลี่ยนแปลงระหว่างเวอร์ชัน ดังนั้นให้ทำตามแนวคิดแทนป้ายกำกับ

  1. เปิดการตั้งค่า Cursor และไปที่ส่วนโมเดล
  2. วางคีย์ของคุณในช่องคีย์ API ของ OpenAI
  3. เปิดใช้งานตัวเลือกเพื่อแทนที่ Base URL ของ OpenAI และป้อน https://api.nofilterai.cc/v1
  4. เพิ่มโมเดลกำหนดเองชื่อ uncensored และเลือกในแผงแชท
  5. ส่งข้อความทดสอบขนาดเล็กก่อนลองแก้ไขหลายไฟล์

Cursor และโปรแกรมแก้ไขคล้ายกันอาจใช้เซิร์ฟเวอร์ของตัวเองสำหรับฟีเจอร์บางรายการ และฟีเจอร์บางรายการอาจไม่ยอมรับโมเดลกำหนดเองเลย หากฟีเจอร์ล้มเหลว ให้ตรวจสอบว่าผูกกับโมเดลของผู้ขายหรือไม่ แทนที่จะสันนิษฐานว่าเอนด์พอยต์เสีย การแชทด้วยโมเดลกำหนดเองคือส่วนที่เชื่อถือได้

เครื่องมืออื่นที่ยอมรับเอนด์พอยต์ที่เข้ากันได้กับ OpenAI เช่น Continue หรือ Aider ใช้ค่าสามค่าเดียวกัน: Base URL, คีย์ และชื่อโมเดล

ใช้งานจาก LangChain

คลาส ChatOpenAI ของ LangChain รับอาร์กิวเมนต์ base_url ดังนั้นเอนด์พอยต์จึงใช้งานได้โดยไม่ต้องใช้ wrapper กำหนดเอง

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 templates และ output parsers ทำงานในลักษณะเดียวกับโมเดลแชทใดๆ ที่ปฏิบัติตามสคีมาของ OpenAI หากคุณสร้าง agent โปรดจำไว้ว่าขีดจำกัด concurrency: คีย์เต็มอนุญาตให้ทำคำขอได้ 8 คำขอในเวลาเดียวกันและ 300 คำขอต่อนาที คีย์ทดลองใช้ทำได้อย่างละ 2 และ 60 agent แบบขนานที่กระจาย tool calls จำนวนสิบรายการจะได้รับ HTTP 429 พร้อมรหัส concurrency สำหรับรายการเพิ่มเติม จำกัดการกระจาย หรือลองใหม่โดยมีระยะเวลาค้างเล็กน้อย

การเรียกใช้เครื่องมือและโหมด JSON สำหรับเอเจนต์

เอเจนต์การเขียนโปรแกรมอาศัยเอาต์พุตที่มีโครงสร้าง API รองรับ tools, tool_choice, สตรีมมิง tool_calls และผลลัพธ์เครื่องมือที่ส่งกลับเป็นข้อความ role: "tool" นี่คือตัวอย่างการเรียกใช้งานแบบครบวงจรด้วยฟังก์ชันที่อ่านไฟล์

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)

ตรวจสอบอาร์กิวเมนต์เสมอก่อนดำเนินการใดๆ ที่โมเดลขอ เส้นทาง สตริงคำสั่ง หรือ URL ที่มาจากโมเดลคือข้อมูลที่ไม่ไว้วางใจได้ ไม่ว่าโมเดลใดจะผลิตมันออกมา

สำหรับเอาต์พุตที่โค้ดของคุณต้องแยกวิเคราะห์ ให้ตั้งค่า response_format เป็น {"type":"json_object"} และระบุในพรอมต์ว่าคุณคาดหวังคีย์ใด โหมด JSON ทำให้การตอบกลับเป็น JSON ที่ถูกต้อง แต่การตรวจสอบสคีม่าของคุณยังคงอยู่ในโค้ดของคุณ

ขนาดหน้าต่างบริบทและต้นทุนของคำขอเขียนโค้ด

หน้าต่างคือ 100,000 โทเคนสำหรับพรอมต์บวกการตอบกลับ โดยประมาณนั้น สามารถเก็บไฟล์ต้นฉบับจำนวนมากได้ในครั้งเดียว ดังนั้นคุณสามารถวางโมดูล การทดสอบ และ traceback ที่ล้มเหลวได้ในครั้งเดียว แทนที่จะสรุปย่อ พรอมต์ที่ใหญ่กว่ามีค่าใช้จ่ายมากกว่า ดังนั้นส่งเฉพาะสิ่งที่คำถามต้องการ

ราคาอยู่ที่ $0.15 ต่อ 1M โทเคนอินพุต และ $0.50 ต่อ 1M โทเคนเอาต์พุต ตัวอย่าง:

คำขออินพุตเอาต์พุตต้นทุน
อธิบายฟังก์ชัน1,500500$0.000225 + $0.00025 = $0.000475
ทบทวนโมดูลพร้อมการทดสอบ30,0002,000$0.0045 + $0.001 = $0.0055
รีวิว 200 รายการเช่นนั้นในหนึ่งวัน6,000,000400,000$0.90 + $0.20 = $1.10
ใช้หน้าต่างบริบทเต็มรูปแบบเป็นอินพุตในการเรียกครั้งเดียว100,0000$0.015

คำขอที่ล้มเหลวหรือถูกปฏิเสธจะไม่ถูกเรียกเก็บเงิน เครดิตเป็นแบบเติมเงินล่วงหน้า ไม่หมดอายุ และการเติมเงินเริ่มต้นที่ $20 ถึง $500 ในจำนวนเต็มใดๆ พร้อมโบนัส 5% จาก $50, 10% จาก $100 และ 15% จาก $200 การชำระเงินเป็นคริปโตเท่านั้น: USDT บน TRC20 หรือ USDC บน Base ดู หน้าราคา สำหรับเงื่อนไขปัจจุบัน

พรอมต์สำหรับการทบทวนที่ทำงานได้จริงกับ diff

การใช้งานหน้าต่างบริบทขนาดใหญ่อย่างหนึ่งคือการทบทวนโค้ด แทนที่จะถามว่า "โค้ดนี้ดีหรือไม่" ให้วางโค้ดดิฟและไฟล์ที่เกี่ยวข้อง แล้วขอผลการวิเคราะห์ในรูปแบบที่กำหนด ขอรายการแบบมีหมายเลขโดยแต่ละรายการระบุชื่อไฟล์ บรรทัด ปัญหา และวิธีแก้ไขแบบสั้นๆ และระบุว่ารายการว่างเป็นคำตอบที่ถูกต้อง คำสั่งสุดท้ายนี้สำคัญมาก: โมเดลที่สั่งให้หาปัญหาอาจสร้างปัญหาขึ้นมาเพื่อให้คุณพอใจได้

ตั้งค่า temperature ใกล้ 0.2 สำหรับการทบทวน เพราะคุณต้องการผลการค้นพบเดียวกันในการรันครั้งที่สอง หากคุณรันการทบทวนใน job continuous integration ให้ตั้งค่า seed และบันทึก header X-Request-Id เพื่อให้คุณสามารถติดตามผลลัพธ์ที่น่าประหลาดใจได้ในภายหลัง ผสมผสานสิ่งนี้กับโหมด JSON เมื่อสคริปต์ต้องโพสต์ผลการค้นพบไปยังที่อื่น และขอคีย์เช่น file, line, severity และ fix

เมื่อคำตอบผิดหรือว่างเปล่า

ปัญหาสามประการครอบคลุมการรันที่ล้มเหลวส่วนใหญ่ หากคุณได้รับ 401 คีย์หายไปหรือหัวข้อความไม่ใช่ Authorization: Bearer ตามด้วยคีย์ของคุณ หาก editor บอกว่าโมเดลไม่มีอยู่จริง ให้ตรวจสอบว่าชื่อก็คือ uncensored และ base URL ลงท้ายด้วย /v1 โดยไม่มีเส้นทางเพิ่มเติม หากโค้ดคอมไพล์ได้แต่ทำงานผิดปกติ ให้ส่งเอาต์พุตที่ล้มเหลวให้โมเดลและขอให้มันอธิบายข้อผิดพลาดก่อนที่มันจะเขียนใหม่ การแก้ไขที่ทำหลังจากการวินิจฉัยมีแนวโน้มที่จะเล็กลงและปลอดภัยกว่าการแก้ไขที่ทำโดยไม่มีข้อมูล

จุดที่เข้ากันและไม่เข้ากัน

ใช้เอนด์พอยต์แบบ uncensored สำหรับคำขอที่ผู้ช่วยอื่นๆ ปฏิเสธหรือตอบแบบกำกวม และใช้เครื่องมือปกติของคุณสำหรับส่วนที่เหลือหากใช้งานได้ดีกว่า นักพัฒนาจำนวนมากรันโมเดลสองตัวคู่กันและส่งงานแต่ละชิ้นไปยังโมเดลที่ตอบได้ชัดเจนที่สุด

  • เหมาะสำหรับ: งานแล็บความปลอดภัยบนระบบที่คุณเป็นเจ้าของ, สคริปต์สแครปและอัตโนมัติ, การเขียนรายงานการวิเคราะห์มัลแวร์สำหรับผู้ป้องกัน, หมายเหตุการรีเวอร์สเอ็นจิเนียร์, งานประมวลผลข้อมูลแปลกๆ
  • ระวัง: โค้ดที่สร้างขึ้นอาจมีข้อผิดพลาดหรือฟังก์ชันไลบรารีที่ประดิษฐ์ขึ้น รันมัน ทดสอบมัน อ่านมัน
  • ไม่ให้บริการ: การสร้างภาพหรือเสียง, embeddings และการปรับแต่งอย่างละเอียด นี่คือเอนด์พอยต์แชทข้อความเท่านั้น
  • ความเป็นส่วนตัว: พรอมต์ไม่ถูกนำไปใช้ในการฝึก ซึ่งสำคัญหากคุณวางโค้ดที่เป็นกรรมสิทธิ์

ขนาดบอดีจำกัดอยู่ที่ 8 MB ต่อคำขอ ซึ่งมากกว่าที่หน้าต่างบริบทสามารถใช้งานได้มาก header ของการตอบกลับรวมถึง X-Request-Id, X-Balance-USD และค่าขีดจำกัดอัตรา ซึ่งมีประโยชน์ในบันทึก เอกสารประกอบ ระบุพารามิเตอร์ทั้งหมดที่ส่งผ่าน

ถาม-ตอบ

นักเขียนโค้ด AI แบบไม่มีตัวกรองเก่งด้านการเขียนโปรแกรมมากกว่าโมเดลอื่นหรือไม่?

ไม่ใช่ค่าเริ่มต้น การปฏิเสธที่น้อยลงเปลี่ยนสิ่งที่โมเดลจะตอบ ไม่ใช่ความสามารถในการเขียนโค้ด ควรทดสอบกับงานของคุณเองก่อนนำไปใช้งาน

โปรแกรมแก้ไขและเฟรมเวิร์กใดบ้างที่ใช้งานร่วมกับโมเดลได้

สิ่งใดๆ ที่อนุญาตให้กำหนด Base URL ที่เข้ากันได้กับ OpenAI แบบกำหนดเอง คีย์ และชื่อโมเดล Cursor, LangChain และ SDK ทางการของ OpenAI เป็นตัวอย่างทั่วไป

รองรับการเรียกใช้ฟังก์ชันหรือไม่

ใช่ โมเดลรองรับการส่ง tools และ tool_choice ส่งกลับ tool_calls (รวมถึงเมื่อใช้สตรีมมิง) และรับผลลัพธ์ในรูปแบบ role: tool นอกจากนี้ยังมีโหมด JSON ให้ใช้งาน

เกิดอะไรขึ้นเมื่อถึงขีดจำกัดอัตรา

คุณจะได้รับ HTTP 429 พร้อม error code เป็น rate_limited หรือ concurrency สำหรับกรณี overload ชั่วคราว ค่า 429 จะมาพร้อม header Retry-After เป็นเวลา 5 วินาที

คีย์ของคุณอยู่ห่างแค่แบบฟอร์มเดียว

สร้างบัญชี คัดลอกคีย์ และเปลี่ยน base URL นั่นคือการตั้งค่าทั้งหมด