VI ▾
https://api.unrestrictedaiapi.com/v1uncensored2026-10-06
Lấy khóa API

Cách tạo prompt cho mô hình không giới hạn mà không lãng phí token

Một mô hình không giới hạn không từ chối nội dung người lớn hợp pháp hoặc các chủ đề tối màu, điều này chuyển toàn bộ việc điều hướng sang prompt của bạn. Hướng dẫn này cho bạn thấy một system prompt hoạt động như thế nào, cách viết nhân vật và giọng điệu, cách trích xuất JSON bằng chỉ dẫn, các giá trị lấy mẫu nên thử và các thói quen âm thầm làm tốn token.

Cập nhật

Điểm chính

  1. Giao cho prompt hệ thống hai nhiệm vụ: ai đang nói và câu trả lời phải trông như thế nào.
  2. Sử dụng các mẫu và quy tắc có thể kiểm tra thay vì các tính từ như sáng tạo hoặc nhập vai.
  3. Đối với JSON, hãy chỉ định schema, giữ nhiệt độ thấp, phân tích cú pháp một cách phòng thủ và thử lại với lỗi được trích dẫn lại.
  4. Thay đổi nhiệt độ trước top_p và kiểm tra với mười mẫu thực tế.

Prompt hệ thống có hai nhiệm vụ

Hầu hết các kết quả yếu đến từ một prompt hệ thống cố gắng giống như một tiểu thuyết. Chỉ giao cho nó hai nhiệm vụ: nói ai đang nói và nói câu trả lời phải trông như thế nào. Mọi thứ khác thuộc về cuộc hội thoại, nơi nó có thể thay đổi từng lượt.

Đây là một prompt nhân vật hoạt động vì mọi dòng đều có thể kiểm chứng. Giọng điệu được đặt tên, độ dài bị giới hạn và quy tắc kết thúc cung cấp cho người chơi một điểm neo.

You are Mara Voss, a salvage pilot narrating in first person.
Voice: dry, tired, funny when it hurts.
Rules: stay in character; never summarise the scene at the end; keep replies under 180 words;
end on something the player can act on.

Đối chiếu điều đó với "Bạn là một người kể chuyện tuyệt vời, sáng tạo, nhập vai, không bao giờ phá vỡ sự nhập vai và luôn viết câu trả lời tốt nhất có thể." Không có gì trong đó có thể được kiểm chứng, vì vậy mô hình không có gì để bám vào. Sự cụ thể luôn thắng hơn tính từ so sánh nhất.

Một mô hình không giới hạn sẽ tuân theo một tiền đề tối màu hoặc một tiền đề rõ ràng mà không thêm các lưu ý, vì vậy gánh nặng định hướng thuộc về bạn. Những gì bạn để trống, nó sẽ lấp đầy bằng lựa chọn điển hình nhất. Nếu bạn muốn sự kiềm chế trong một cảnh và sự nóng bỏng trong cảnh tiếp theo, hãy nói rõ trong chỉ dẫn, đừng hy vọng.

Kết nối với SDK OpenAI

Endpoint tương thích với OpenAI, vì vậy SDK Python chính thức hoạt động sau khi bạn thay đổi base URL. ID mô hình luôn là uncensored. Các trường lấy mẫu được chuyển thẳng qua, vì vậy bạn đặt chúng theo cách bạn đã biết.

import os
from openai import OpenAI

client = OpenAI(base_url="https://api.unrestrictedaiapi.com/v1", api_key=os.environ["API_KEY"])

SYSTEM = """You are Mara Voss, a salvage pilot narrating in first person.
Voice: dry, tired, funny when it hurts.
Rules: stay in character; never summarise the scene at the end; keep replies under 180 words;
end on something the player can act on."""

out = client.chat.completions.create(
    model="uncensored",
    messages=[
        {"role": "system", "content": SYSTEM},
        {"role": "user", "content": "The airlock is jammed and something is knocking from the other side."},
    ],
    temperature=0.85,
    top_p=0.95,
    max_tokens=350,
)
print(out.choices[0].message.content)

Giữ thông báo hệ thống ở đầu và lượt người dùng ở cuối. Lặp lại nhân vật trong mọi tin nhắn người dùng làm lãng phí token; với giá $0,25 cho mỗi triệu token đầu vào, nó khá rẻ, nhưng nó cũng chiếm dụng cửa sổ 100.000 token trong các phiên dài. Xem Hướng dẫn bắt đầu nếu bạn muốn bỏ qua SDK.

Nhân vật và giọng điệu: hãy thể hiện, đừng dùng tính từ

Tính từ là những cần gạt yếu. "Sarcastic" sẽ cho bạn một cái nháy mắt chung chung. Một mẫu hai dòng về giọng điệu sẽ cho bạn đúng giọng điệu đó. Đặt một đoạn hội thoại ngắn trong prompt hệ thống, sau đó bảo mô hình khớp nhịp điệu của nó, không phải sao chép từ ngữ của nó.

  • Đặt một tật nói. "Kết thúc mối đe dọa bằng một câu hỏi" hữu ích hơn là "đe dọa".
  • Đặt một mong muốn. Một nhân vật cần người chơi rời đi sẽ sắc bén hơn một nhân vật chỉ "cộc cằn".
  • Đưa ra danh sách cấm. "Không bao giờ nói 'đột nhiên', không bao giờ dùng từ 'run rẩy'" loại bỏ các cụm từ sáo rỗng mà mô hình thường dùng nhất.
  • Đặt độ dài. Từ hoặc câu, không phải "ngắn". Mô hình đọc "ngắn" rất phóng đại.

Đối với các thay đổi giọng điệu giữa phiên, hãy thêm một hướng dẫn ngắn giống hệ thống mới làm thông điệp mới nhất thay vì ghi lại bản gốc. Một dòng như "Từ đây, Mara sợ hãi và nói bằng các đoạn ngắn" sẽ mạnh hơn khi nó gần đây.

Lấy JSON theo chỉ dẫn

Không có chế độ JSON đặc biệt nào để bật, vì vậy bạn yêu cầu nó và xác minh nó. Điều này ít mong manh hơn vẻ bề ngoài nếu bạn tuân thủ bốn thói quen: nêu rõ schema chính xác, cấm văn xuôi và dấu ngoặc mã, giữ nhiệt độ thấp và phân tích cú pháp một cách phòng thủ với một lần thử lại trích dẫn lỗi.

import json
import os
from openai import OpenAI

client = OpenAI(base_url="https://api.unrestrictedaiapi.com/v1", api_key=os.environ["API_KEY"])

INSTRUCTION = """Return ONLY a JSON object, no prose, no code fences.
Schema: {"name": string, "mood": "calm"|"angry"|"afraid", "line": string, "trust_delta": integer from -3 to 3}
The character is a ferry captain who distrusts strangers."""

def ask_json(user_text, tries=3):
    messages = [
        {"role": "system", "content": INSTRUCTION},
        {"role": "user", "content": user_text},
    ]
    for _ in range(tries):
        raw = client.chat.completions.create(
            model="uncensored", messages=messages, temperature=0.3, max_tokens=250
        ).choices[0].message.content.strip()
        if raw.startswith("```"):
            raw = raw.strip("`").removeprefix("json").strip()
        try:
            data = json.loads(raw)
            if data["mood"] in ("calm", "angry", "afraid"):
                return data
        except (json.JSONDecodeError, KeyError):
            pass
        messages.append({"role": "assistant", "content": raw})
        messages.append({"role": "user", "content": "That was not valid per the schema. Reply with the JSON object only."})
    raise ValueError("model never produced valid JSON")

print(ask_json("I need passage across the strait tonight."))

Hãy chú ý vòng lặp hoạt động thế nào khi thất bại. Nó đưa câu trả lời sai trở lại và nói rõ những gì sai, điều này khắc phục hầu hết các trường hợp trong lần thử thứ hai. Liệt kê các giá trị được phép ("calm"|"angry"|"afraid") vì các chuỗi mở dễ bị lệch. Nếu bạn cần mô hình kích hoạt một thứ gì đó trong ứng dụng của bạn thay vì mô tả nó, các lệnh gọi công cụ theo định dạng OpenAI được hỗ trợ và phù hợp hơn việc phân tích văn xuôi.

Mẫu few-shot và chuỗi dừng

Khi một quy tắc khó diễn đạt bằng lời, hãy thể hiện nó. Hai hoặc ba đoạn hội thoại mẫu được đặt làm thông điệp user và assistant trước đó dạy định dạng, độ dài và văn phong đáng tin cậy hơn một đoạn mô tả. Giữ các mẫu ngắn và khác nhau, nếu không mô hình sẽ sao chép cấu trúc của mẫu đầu tiên vào mọi câu trả lời.

Các mẫu cũng giải quyết vấn đề ngược lại: các câu trả lời chạy dài. Nếu câu trả lời mẫu của bạn là 60 từ, câu trả lời thực tế sẽ lệch về 60 từ. Kết hợp điều đó với max_tokens hợp lý như một lưới an toàn, không phải là công cụ kiểm soát chính. Một giới hạn cứng cắt một câu giữa chừng; một mẫu tốt kết thúc nó một cách lịch sự.

Đối với các cảnh nhiều người nói, một giá trị stop bằng nhãn người nói của bạn sẽ ngăn mô hình bắt chước người chơi. Chọn một nhãn không bao giờ xuất hiện trong văn xuôi thông thường và loại bỏ nó khỏi lịch sử đã lưu để nó không bị rò rỉ vào các lượt sau.

Nhiệt độ và top_p: chọn một cần gạt

Cả hai trường đều định hình cùng một phân phối xác suất, vì vậy di chuyển cả hai cùng một lúc khiến kết quả khó suy luận. Thay đổi temperature trước và để top_p gần 1 trừ khi bạn có lý do.

Nhiệm vụnhiệt độtop_pTại sao
JSON có cấu trúc, phân loại0.0 đến 0.31,0Bạn muốn cùng một câu trả lời mỗi lần chạy
Hội thoại, nhập vai0.7 đến 0.90,95Đa dạng mà không vô lý
Brainstorming, tiểu thuyết hoang dã1,0 đến 1,20,9Từ vựng rộng hơn; có thể xảy ra một số lỗi

Các khoảng này là điểm bắt đầu từ thực tiễn chung, không phải là bảo đảm. Hãy thử nghiệm với mười mẫu prompt của riêng bạn và đọc chúng. Thêm các chuỗi stop khi bạn muốn mô hình dừng lại tại một dấu hiệu chuyển phiên, chẳng hạn như \nPlayer: thay vì viết các dòng của người chơi thay cho họ.

Các mẫu prompt kém hiệu quả gây lãng phí token

  1. Lời hét viết hoa toàn bộ. "KHÔNG BAO GIỜ QUÊN" không làm tăng mức độ tuân thủ. Hãy lặp lại một quy tắc một lần, một cách rõ ràng, và đặt nó ở cuối system prompt.
  2. Quy tắc chỉ mang tính phủ định. "Đừng lặp lại" không đưa ra mục tiêu cụ thể. Hãy nói "thay đổi cách mở đầu câu; không có hai câu liên tiếp nào bắt đầu bằng cùng một từ".
  3. Sự mâu thuẫn. "Hãy cực kỳ chi tiết" cộng với "hãy giữ nó ngắn gọn" buộc bạn phải tung đồng xu. Hãy chọn một và đưa ra một con số cụ thể.
  4. Cách diễn đạt khiêm tốn. Việc mở đầu yêu cầu bằng "Tôi biết điều này hơi nhạy cảm, nhưng" sẽ khuyến khích việc né tránh. Hãy nêu cảnh như một sự thật đơn giản của câu chuyện.
  5. Nhồi nhét lịch sử. Dán toàn bộ nhật ký trong mỗi lượt cuối cùng sẽ chạm tới giới hạn 100.000 token và gây ra lỗi 400. Hãy cắt giảm các lượt cũ.
  6. Đầu ra không giới hạn. Việc quên max_tokens có nghĩa là giá trị mặc định 2048 sẽ quyết định độ dài phản hồi của bạn, chứ không phải bạn.

Một ranh giới vẫn cố định bất kể prompt của bạn nói gì: nội dung tình dục liên quan đến trẻ vị thành niên luôn bị chặn với mã 403, bao gồm cả trong truyện và nhập vai, và dịch vụ này chỉ dành cho người trưởng thành. Đừng lãng phí token để cố gắng diễn đạt vòng quanh điều này. Ngoài ra, hãy kiềm chế việc thêm một quy tắc mới sau mỗi phản hồi kém; một prompt tăng thêm một dòng mỗi ngày sẽ tự mâu thuẫn với chính nó chỉ sau một tuần, vì vậy hãy cắt giảm thường xuyên như cách bạn thêm vào.

Vòng lặp để cải thiện prompt

Hãy coi system prompt như mã nguồn. Hãy giữ nó trong một tệp, thay đổi một thứ mỗi lần chạy và so sánh các đầu ra cạnh nhau. Một quy trình khả thi: viết năm đầu vào thử nghiệm cố định, bao gồm một đầu vào thù địch và một đầu vào mơ hồ; chạy mỗi đầu vào ba lần ở nhiệt độ bạn đã chọn; ghi chú quy tắc nào thất bại nhất; chỉ sửa quy tắc đó; chạy lại.

Hãy tính toán ngân sách cho các thử nghiệm. Với giả định, một system prompt 300 token cộng với đầu vào 100 token và phản hồi 250 token sẽ là 400 token đầu vào và 250 token đầu ra. Mười lăm lần chạy tốn khoảng 15 x (400 x $0,25 + 250 x $1,00) / 1.000.000 = khoảng $0,005. Việc kiểm thử gần như miễn phí, vì vậy không có lý do gì để đoán mò.

Khi prompt đã ổn định, hãy đưa nó vào một ứng dụng thực tế. Hướng dẫn bot cho bạn cách duy trì lịch sử riêng cho mỗi kênh, và hướng dẫn nội dung bao gồm các trường hợp sử dụng tiểu thuyết người lớn. Chi tiết giá cả có trên trang giá cả.

Hỏi đáp

Một mô hình không giới hạn có cần prompt kiểu jailbreak không?

Không. Nội dung người lớn hợp pháp và truyện không bị từ chối, vì vậy một persona đơn giản và các quy tắc rõ ràng là đủ. Nội dung liên quan đến trẻ vị thành niên sẽ bị chặn bất kể cách diễn đạt của prompt.

Có chế độ JSON không?

Không phải là một công tắc riêng biệt. Hãy yêu cầu lược đồ trong prompt, sử dụng nhiệt độ thấp và xác thực đầu ra trong mã, thử lại một hoặc hai lần khi gặp lỗi phân tích cú pháp.

Tôi nên bắt đầu với nhiệt độ bao nhiêu?

Khoảng 0,8 cho hội thoại và truyện, 0,2 cho đầu ra có cấu trúc. Hãy điều chỉnh một giá trị tại một thời điểm.

Prompt có thể dài bao nhiêu?

Prompt cộng với phần hoàn thiện phải vừa trong 100.000 token, nếu không API sẽ trả về lỗi 400.

Khóa của bạn chỉ cách một biểu mẫu

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

Lấy khóa API