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

ประเด็นสำคัญ
- เอนด์พอยต์ใช้รูปแบบแชทของ 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 เปลี่ยนแปลงระหว่างเวอร์ชัน ดังนั้นให้ทำตามแนวคิดแทนป้ายกำกับ
- เปิดการตั้งค่า Cursor และไปที่ส่วนโมเดล
- วางคีย์ของคุณในช่องคีย์ API ของ OpenAI
- เปิดใช้งานตัวเลือกเพื่อแทนที่ Base URL ของ OpenAI และป้อน
https://api.nofilterai.cc/v1 - เพิ่มโมเดลกำหนดเองชื่อ
uncensoredและเลือกในแผงแชท - ส่งข้อความทดสอบขนาดเล็กก่อนลองแก้ไขหลายไฟล์
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,500 | 500 | $0.000225 + $0.00025 = $0.000475 |
| ทบทวนโมดูลพร้อมการทดสอบ | 30,000 | 2,000 | $0.0045 + $0.001 = $0.0055 |
| รีวิว 200 รายการเช่นนั้นในหนึ่งวัน | 6,000,000 | 400,000 | $0.90 + $0.20 = $1.10 |
| ใช้หน้าต่างบริบทเต็มรูปแบบเป็นอินพุตในการเรียกครั้งเดียว | 100,000 | 0 | $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 นั่นคือการตั้งค่าทั้งหมด