VI ▾
Lấy khóa API

Coder AI không bộ lọc: Sử dụng trong Cursor và Python

Một số yêu cầu mã nguồn bị từ chối hoặc gắn nhãn cảnh báo từ các trợ lý chính thống: công cụ bảo mật, trình thu thập dữ liệu, phân tích ngược, bản ghi khai thác cho phòng thí nghiệm của bạn. Đây là cách kết nối một mô hình không kiểm duyệt vào trình soạn thảo và tập lệnh của bạn, và những gì bạn có thể mong đợi từ nó.

Cập nhật

Terminal đẳng hướng với các khối mã chảy vào các khối được kết nối, minh họa API lập trình không kiểm duyệt

Điểm chính

  • Endpoint sử dụng định dạng trò chuyện OpenAI, vì vậy các trình soạn thảo và khung chấp nhận URL cơ sở tùy chỉnh có thể sử dụng nó.
  • Gọi hàm, chế độ JSON và truyền phát được hỗ trợ, bao gồm hầu hết các mẫu tác nhân lập trình.
  • Cửa sổ 100,000 token phù hợp với một phần lớn của kho lưu trữ trong một yêu cầu.
  • Nó là một mô hình chung, không phải mô hình chuyên biệt về mã, vì vậy hãy thử nghiệm trên các tác vụ của bạn trước.

Coder không bộ lọc là gì, và nó không phải là gì

Một mô hình AI lập trình không kiểm duyệt là mô hình ngôn ngữ trả lời các yêu cầu lập trình mà không do dự lý do của bạn. Nếu bạn đang viết trình quét cổng cho mạng bạn sở hữu, giải mã nhị phân kế thừa mà bạn đã mất mã nguồn, hoặc xây dựng trình thu thập dữ liệu mô phỏng trình duyệt, bạn sẽ nhận được mã thay vì một đoạn văn về việc sử dụng có trách nhiệm.

Việc hiểu rõ dịch vụ này rất hữu ích. Đây là một mô hình trọng số mở, được tinh chỉnh để trả lời mà không từ chối nội dung cho mục đích người lớn hợp pháp, do một nhà cung cấp độc lập vận hành. Đây không phải là API chính thức của bất kỳ nhà cung cấp lớn nào và nó không phải là bộ định tuyến chọn giữa các mô hình. ID mô hình là uncensored. Không có tuyên bố nào ở đây về điểm số benchmark, vì không có điểm nào được công bố cho nó trên trang web này. Một mô hình có ít từ chối hơn không tự động là một lập trình viên tốt hơn, vì vậy hãy coi tuần đầu tiên là thời gian đánh giá.

Sử dụng hợp pháp là trách nhiệm của bạn. Công cụ loại bỏ ma sát cho công việc bảo mật hợp pháp, nghiên cứu và kỹ thuật đặc biệt. Nó không phải là giấy phép để tấn công các hệ thống bạn không sở hữu.

Gọi nó từ Python hoặc curl

Bài kiểm thử đơn giản nhất là một yêu cầu duy nhất. Tập lệnh Python này yêu cầu một công cụ nhỏ và in câu trả lời.

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)

Nhiệt độ thấp phù hợp với mã. Các giá trị giữa 0.1 và 0.3 cho đầu ra ổn định hơn, và seed cho phép bạn lặp lại một lần chạy khi bạn so sánh các prompt. Cùng một yêu cầu từ shell trông như thế này.

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

Bạn có thể liệt kê những gì endpoint cung cấp bằng GET /v1/models. Lấy khóa từ trang khóa; tín dụng dùng thử một lần nhấp với giá $0.50 là đủ cho hàng trăm yêu cầu lập trình nhỏ.

Thiết lập nó trong Cursor

Cursor cho phép bạn ghi đè URL cơ sở của OpenAI trong cài đặt mô hình của nó, đây là cách bạn trỏ nó vào bất kỳ nhà cung cấp tương thích nào. Tên menu chính xác thay đổi giữa các phiên bản, vì vậy hãy làm theo ý tưởng thay vì các nhãn.

  1. Mở cài đặt Cursor và tìm phần mô hình.
  2. Dán khóa của bạn vào trường khóa API OpenAI.
  3. Bật tùy chọn ghi đè URL cơ sở OpenAI và nhập https://api.nofilterai.cc/v1.
  4. Thêm một mô hình tùy chỉnh tên là uncensored và chọn nó trong bảng chat.
  5. Gửi một tin nhắn kiểm tra nhỏ trước khi bạn thử chỉnh sửa trên nhiều tệp.

Cursor và các trình soạn thảo tương tự có thể sử dụng máy chủ riêng của chúng cho một số tính năng, và một số tính năng có thể không chấp nhận mô hình tùy chỉnh hoàn toàn. Nếu một tính năng bị lỗi, hãy kiểm tra xem nó có liên kết với các mô hình của nhà cung cấp hay không thay vì giả định rằng endpoint bị hỏng. Chat với một mô hình tùy chỉnh là phần đáng tin cậy nhất.

Các công cụ khác chấp nhận endpoint tương thích OpenAI, chẳng hạn như Continue hoặc Aider, sử dụng cùng ba giá trị: URL cơ sở, khóa, tên mô hình.

Sử dụng nó từ LangChain

Lớp ChatOpenAI của LangChain nhận đối số base_url, vì vậy endpoint được tích hợp mà không cần bộ bao tùy chỉnh.

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)

Chuỗi, mẫu prompt và trình phân tích đầu ra hoạt động giống như cách chúng hoạt động với bất kỳ mô hình chat nào tuân theo lược đồ OpenAI. Nếu bạn xây dựng một agent, hãy nhớ giới hạn độ đồng thời: khóa đầy đủ cho phép 8 yêu cầu cùng lúc và 300 mỗi phút, khóa dùng thử là 2 và 60. Một agent song song phân luồng mười lệnh gọi công cụ sẽ nhận được HTTP 429 với mã concurrency cho các lệnh gọi thêm. Hãy giới hạn việc phân luồng này, hoặc thử lại với độ trễ ngắn.

Gọi hàm và chế độ JSON cho các tác nhân

Các tác nhân lập trình dựa vào đầu ra có cấu trúc. API hỗ trợ tools, tool_choice, truyền phát tool_calls và kết quả công cụ được gửi lại dưới dạng tin nhắn role: "tool". Đây là một lượt gọi tối thiểu với một hàm đọc tệp.

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)

Luôn xác minh các đối số trước khi chạy bất cứ thứ gì mô hình yêu cầu. Đường dẫn, chuỗi shell hoặc URL đến từ mô hình là đầu vào không đáng tin cậy, bất kể mô hình nào tạo ra nó.

Đối với đầu ra mà mã của bạn phải phân tích cú pháp, hãy đặt response_format thành {"type":"json_object"} và chỉ định trong prompt các khóa bạn mong đợi. Chế độ JSON làm cho phản hồi hợp lệ JSON, nhưng việc kiểm tra lược đồ của bạn vẫn thuộc về mã của bạn.

Kích thước ngữ cảnh và chi phí một lệnh gọi lập trình

Cửa sổ ngữ cảnh là 100.000 token cho prompt cộng với phản hồi. Như một hướng dẫn sơ bộ, điều đó chứa nhiều tệp nguồn cùng một lúc, vì vậy bạn có thể dán một mô-đun, các bài kiểm tra của nó và traceback của lỗi trong một lần thay vì tóm tắt. Các prompt lớn hơn tốn nhiều chi phí hơn, vì vậy hãy gửi những gì câu hỏi cần.

Giá là $0.15 cho mỗi 1M token đầu vào và $0.50 cho mỗi 1M token đầu ra. Ví dụ:

Yêu cầuĐầu vàoĐầu raChi phí
Giải thích một hàm1,500500$0.000225 + $0.00025 = $0.000475
Đánh giá một mô-đun với các bài kiểm tra30,0002,000$0.0045 + $0.001 = $0.0055
200 bài đánh giá như vậy trong một ngày6,000,000400,000$0.90 + $0.20 = $1.10
Toàn bộ cửa sổ làm đầu vào, một lệnh gọi100,0000$0.015

Các yêu cầu bị lỗi hoặc bị từ chối không được tính phí. Tín dụng là trả trước, không hết hạn và việc nạp tiền từ $20 đến $500 với bất kỳ số nguyên nào, với bonus 5% từ $50, 10% từ $100 và 15% từ $200. Thanh toán chỉ bằng tiền mã hóa: USDT trên TRC20 hoặc USDC trên Base. Xem trang giá để biết các điều khoản hiện tại.

Một prompt đánh giá hoạt động trên các diff thực tế

Một trong những cách sử dụng tốt nhất của cửa sổ lớn là đánh giá. Thay vì hỏi "mã này có tốt không?", hãy dán diff và các tệp mà nó chạm vào, sau đó yêu cầu các phát hiện theo hình dạng cố định. Yêu cầu một danh sách được đánh số trong đó mỗi mục đặt tên cho tệp, dòng, vấn đề và một sửa đổi một dòng, và nói rằng một danh sách trống là một câu trả lời hợp lệ. Hướng dẫn cuối cùng đó rất quan trọng: một mô hình được yêu cầu tìm vấn đề đôi khi sẽ tạo ra chúng để làm hài lòng bạn.

Giữ nhiệt độ gần 0.2 cho việc xem lại, vì bạn muốn cùng một phát hiện trên lần chạy thứ hai. Nếu bạn chạy các bài xem lại trong một công việc tích hợp liên tục, hãy đặt seed và đăng nhập tiêu đề X-Request-Id để bạn có thể theo dõi một kết quả đáng ngạc nhiên sau này. Kết hợp điều này với chế độ JSON khi một tập lệnh phải đăng các phát hiện ở đâu đó, và yêu cầu các khóa như file, line, severity và fix.

Khi câu trả lời sai hoặc trống

Ba vấn đề bao gồm hầu hết các lần chạy bị lỗi. Nếu bạn nhận được 401, khóa bị thiếu hoặc tiêu đề không phải là Authorization: Bearer theo sau bởi khóa của bạn. Nếu một trình soạn thảo báo rằng mô hình không tồn tại, hãy kiểm tra xem tên có chính xác là uncensored và URL cơ sở có kết thúc bằng /v1 mà không có đường dẫn bổ sung nào không. Nếu mã biên dịch nhưng hoạt động sai, hãy cung cấp cho mô hình đầu ra bị lỗi và yêu cầu nó giải thích lỗi trước khi nó viết lại bất cứ điều gì; các sửa chữa được thực hiện sau khi chẩn đoán thường nhỏ hơn và an toàn hơn so với các sửa chữa được thực hiện mù quáng.

Nó phù hợp ở đâu và không phù hợp ở đâu

Sử dụng endpoint không kiểm duyệt cho các yêu cầu mà các trợ lý khác từ chối hoặc dự phòng, và giữ công cụ thông thường của bạn cho phần còn lại nếu nó hoạt động tốt hơn cho bạn. Nhiều nhà phát triển chạy hai mô hình song song và gửi mỗi nhiệm vụ đến bất kỳ mô hình nào trả lời nó một cách rõ ràng.

  • Phù hợp tốt: công việc phòng thí nghiệm bảo mật trên các hệ thống bạn sở hữu, các tập lệnh thu thập dữ liệu và tự động hóa, các bài viết phân tích malware cho những người bảo vệ, ghi chú reverse engineering, các công việc xử lý dữ liệu kỳ lạ.
  • Cẩn thận: mã được tạo có thể chứa lỗi hoặc các hàm thư viện được phát minh. Hãy chạy nó, kiểm thử nó, đọc nó.
  • Không cung cấp: tạo hình ảnh hoặc âm thanh, embeddings và tinh chỉnh. Đây chỉ là một endpoint chat văn bản.
  • Quyền riêng tư: các prompt không được sử dụng để đào tạo, điều này quan trọng nếu bạn dán mã độc quyền.

Giới hạn body là 8 MB mỗi yêu cầu, lớn hơn nhiều so với những gì cửa sổ ngữ cảnh có thể sử dụng. Các header phản hồi bao gồm X-Request-Id, X-Balance-USD và các giá trị giới hạn tốc độ, hữu ích cho log. tài liệu liệt kê mọi tham số được chuyển tiếp.

Hỏi đáp

Một trình soạn thảo mã AI không bộ lọc có giỏi lập trình hơn các mô hình khác không?

Không phải mặc định. Việc ít từ chối hơn thay đổi những gì nó sẽ trả lời, chứ không phải khả năng lập trình của nó. Hãy thử nghiệm trên các tác vụ của bạn trước khi dựa vào nó.

Những trình soạn thảo và framework nào hoạt động với nó?

Bất kỳ thứ gì cho phép URL cơ sở tương thích OpenAI tùy chỉnh, một khóa và tên mô hình. Cursor, LangChain và các SDK chính thức của OpenAI là những ví dụ phổ biến.

Nó có hỗ trợ gọi hàm không?

Có. Nó chấp nhận các công cụ và tool_choice, trả về tool_calls (cũng khi truyền phát), và nhận kết quả dưới dạng tin nhắn role tool. Chế độ JSON cũng có sẵn.

Điều gì xảy ra khi tôi chạm giới hạn tốc độ?

Bạn nhận được HTTP 429 với mã lỗi rate_limited hoặc concurrency. Đối với quá tải tạm thời, 429 chứa header Retry-After là 5 giây.

Khóa của bạn chỉ cách một bước điền biểu mẫu

Tạo tài khoản, sao chép khóa, thay đổi URL cơ sở. Đó là toàn bộ quá trình thiết lập.