VI ▾
Lấy khóa API

Trình tạo truyện AI không bộ lọc qua API

Một trình tạo truyện dừng giữa cảnh vì cốt truyện trở nên bi kịch là một công cụ viết kém. Bài viết này cho bạn cách xây dựng nó trên một endpoint tương thích OpenAI, với mã bạn có thể chạy ngay hôm nay.

Cập nhật

Sách mở với các trang chuyển thành dải sáng chảy vào terminal, đại diện cho việc tạo truyện qua API

Điểm chính

  • Chỉ định bất kỳ SDK OpenAI nào vào base URL, sử dụng model ID uncensored, và bạn có một công cụ tạo truyện chỉ với khoảng hai mươi dòng mã.
  • Một system prompt thiết lập thể loại, giọng điệu và quy tắc quan trọng hơn bất kỳ cài đặt lấy mẫu nào.
  • Cửa sổ 100.000 token cho phép bạn giữ toàn bộ tài liệu thế giới truyện và nhiều chương trong một yêu cầu.
  • Một chương 1,200-token tốn khoảng một phần mười xu, nên chi phí hiếm khi là giới hạn.

Trình tạo truyện không bộ lọc thực sự là gì

Một trình tạo truyện AI không bộ lọc là mô hình văn bản viết truyện mà không ngắt lại để giảng đạo lý, thay đổi nhân vật phản diện thành một kẻ tốt bụng, hoặc từ chối một cảnh vì chủ đề u ám. Các truyện trinh thám hình sự, truyện chiến tranh, kinh dị, nhân vật chính có đạo đức phức tạp và tình yêu trưởng thành giữa những người lớn đều cần một mô hình xử lý chất liệu tối tăm như chất liệu, chứ không phải như một cảnh báo.

Dịch vụ đằng sau trang web này cung cấp cho bạn một mô hình open-weight duy nhất, được tinh chỉnh để trả lời mà không từ chối nội dung cho mục đích người trưởng thành hợp pháp. Nó chạy tại một nhà cung cấp độc lập và được truy cập thông qua một API chuẩn giống OpenAI. Bạn gửi một danh sách các message, bạn nhận lại văn bản. Không có trình soạn thảo web để học và không có template để điền, đó là điểm mấu chốt: bạn quyết định công cụ truyện hoạt động như thế nào, và mô hình cung cấp văn bản.

Có một quy tắc cố định. Nội dung tình dục liên quan đến người chưa thành niên không bao giờ được phép, và không prompt nào thay đổi điều đó. Mọi thứ khác trong truyện trưởng thành hợp pháp đều thuộc về bạn để viết. Nếu bạn muốn xem xét tổng quan về cách so sánh với nền tảng nhân vật được lưu trữ, trang NoFilter AI so với Character AI đã bao gồm nội dung đó.

Câu chuyện đầu tiên của bạn trong hai mươi dòng Python

Vì API tuân theo định dạng OpenAI, gói openai chính thức hoạt động không thay đổi. Bạn chỉ cần thay đổi base URL và key. Cài đặt nó bằng pip install openai, sau đó chạy cái này.

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.9,
    messages=[
        {"role": "system", "content": (
            "You are a fiction author. Write in third person, past tense. "
            "Use concrete detail and subtext. Never summarise the scene, "
            "never moralise, never address the reader."
        )},
        {"role": "user", "content": (
            "Genre: noir crime. Setting: a flooded harbour town. "
            "Write the opening 600 words. A smuggler finds a body in his net."
        )},
    ],
)
print(resp.choices[0].message.content)

Model ID là uncensored. Khóa đến từ trang khóa API. Nếu bạn chưa đăng ký, người dùng mới có thể nhận $0.50 tín dụng dùng thử ở đó chỉ với một cú nhấp chuột, có hiệu lực trong 7 ngày, nên script đầu tiên này không tốn gì của bạn.

Cuộc gọi tương tự hoạt động từ curl, rất hữu ích để kiểm tra một prompt trước khi bạn gói nó trong mã.

curl https://api.nofilterai.cc/v1/chat/completions \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [
      {"role": "user", "content": "Write a 200 word horror scene set in a lighthouse."}
    ]
  }'

Cấu trúc prompt tạo ra fiction có thể sử dụng được

Đầu ra kém hấp dẫn nhất từ một mô hình truyện đến từ các hướng dẫn mơ hồ, không phải từ mô hình. Ba phần của lời nhắc thực hiện công việc nặng nhọc.

Message hệ thống thiết lập tác giả, không phải chủ đề

Đặt quy tắc giọng điệu ở đây: điểm nhìn, thì, nhịp câu, những gì cần tránh. Một dòng như "không kết thúc cảnh với một suy ngẫm về ý nghĩa của tất cả" loại bỏ một thói quen mà nhiều mô hình ngôn ngữ chia sẻ. Giữ thông báo này ổn định xuyên suốt một dự án để các chương nghe giống nhau.

Message người dùng thiết lập nhịp điệu

Cung cấp từng cảnh một. Đặt tên các nhân vật, địa điểm, những thay đổi vào cuối cảnh và độ dài mục tiêu. "Viết 700 từ. Mara đối đầu anh trai về sổ cái bị mất. Cô ấy không nhận được câu trả lời" tốt hơn nhiều so với "tiếp tục câu chuyện".

Story bible đi kèm

Giữ một khối ngắn với sự thật về nhân vật, thời gian cho đến nay và các luồng mở, và gửi nó với mọi yêu cầu. Một bible 800-token tốn gần như không đáng kể và ngăn mô hình thay đổi màu mắt hoặc hồi sinh một nhân vật.

  • Sử dụng temperature khoảng 0.8 đến 1.0 cho việc soạn thảo và 0.5 đến 0.7 cho việc chỉnh sửa.
  • Sử dụng các chuỗi stop nếu bạn tạo theo định dạng cố định, ví dụ như dừng lại ở một dòng có nội dung "END SCENE".
  • Sử dụng presence_penalty và frequency_penalty nhẹ nhàng nếu mô hình lặp lại các pet phrases. Cả hai đều được chuyển tiếp đến mô hình.
  • Sử dụng seed khi bạn muốn so sánh hai phiên bản prompt trên cơ sở bình đẳng.

Giữ cho một câu chuyện dài nhất quán

Cửa sổ ngữ cảnh là 100,000 token, tính cả prompt và câu trả lời cùng nhau. Đó là chỗ cho một story bible đầy đủ, các chương trước đó và một chương đầu ra mới trong một yêu cầu duy nhất. Đối với hầu hết các dự án hư cấu, bạn có thể ngừng lo lắng về các thủ thuật bộ nhớ trong một thời gian dài.

Một vòng lặp đơn giản xử lý một câu chuyện được tuần tự hóa. Giữ một danh sách chạy các message, thêm mỗi chương mô hình viết, và thêm hướng dẫn tiếp theo của bạn. Khi danh sách gần giới hạn, thay thế các chương cũ nhất bằng một tóm tắt ngắn mà bạn cũng yêu cầu mô hình viết.

from openai import OpenAI

client = OpenAI(base_url="https://api.nofilterai.cc/v1", api_key="YOUR_KEY")

bible = "Mara Voss, 34, ferry pilot. Brother Teo owes money. Setting: Harbor Nine, rain every night."
history = [{"role": "system", "content": "Fiction author. Third person, past tense. No moralising.\nBible: " + bible}]

def write(beat):
    history.append({"role": "user", "content": beat})
    r = client.chat.completions.create(model="uncensored", messages=history, temperature=0.85)
    text = r.choices[0].message.content
    history.append({"role": "assistant", "content": text})
    return text

print(write("Chapter 1, 700 words: Mara finds Teo's boat adrift."))
print(write("Chapter 2, 700 words: she searches the cabin and finds a second ledger."))

Khi bạn đạt đến giới hạn, đừng truncate im lặng. Một mô hình mất phần mở đầu của câu chuyện thường giữ lại cốt truyện nhưng quên các sự thật nhỏ. Một bản summary viết bằng 500 đến 800 token, được chèn sau system message, giữ những sự thật đó sống động với chi phí nhỏ.

Các yêu cầu thất bại hoặc bị từ chối không bị tính phí, nên thử lại sau lỗi không bao giờ làm hóa đơn của bạn tăng gấp đôi. Danh sách đầy đủ các tham số có trong tài liệu API.

Truyền phát và hư cấu tương tác

Đối với một trò chơi nhập vai văn bản hoặc trợ lý viết trực tiếp, bạn muốn từ ngữ xuất hiện trên màn hình khi chúng đến. Đặt stream: true và đọc các sự kiện gửi từ máy chủ. Số liệu sử dụng đến vào cuối luồng.

import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api.nofilterai.cc/v1",
  apiKey: process.env.NOFILTER_KEY,
});

const stream = await client.chat.completions.create({
  model: "uncensored",
  stream: true,
  messages: [
    { role: "system", content: "You are the narrator of a survival horror text adventure. Second person, present tense." },
    { role: "user", content: "I open the cellar door." },
  ],
});

for await (const chunk of stream) {
  process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
}

Hai giới hạn thực tế áp dụng. Khóa đầy đủ cho phép 8 yêu cầu đồng thời và 300 yêu cầu mỗi phút; khóa dùng thử cho phép 2 và 60. Một yêu cầu truyền phát giữ khe yêu cầu đồng thời của nó cho đến khi luồng kết thúc, vì vậy một trình đọc chậm trên trang web có thể chặn khe lâu hơn bạn mong đợi. Nếu bạn vượt quá giới hạn, bạn nhận được HTTP 429 với mã lỗi rate_limited hoặc concurrency. Trong trường hợp quá tải ngắn hạn, bạn cũng nhận được 429 với Retry-After: 5, và chờ năm giây trước khi thử lại là phản hồi đúng.

Tại sao truyện được tạo ra trở nên nhàm chán và cách khắc phục

Ngay cả không có từ chối, một mô hình có thể viết hư cấu nhàm chán. Các nguyên nhân thông thường dễ sửa chữa một khi bạn biết chúng.

Thứ nhất là phản xạ tóm tắt. Để một mình, một mô hình nén các sự kiện thành một bản tóm tắt gọn gàng. Yêu cầu một cảnh, đặt tên độ dài của nó, và cấm các bản tóm tắt trong thông báo hệ thống. Thứ hai là sự giống nhau: mọi nhân vật nói trong cùng một giọng điệu lịch sự. Cho mỗi nhân vật nói một ghi chú giọng điệu hai dòng, chẳng hạn như "ngắn gọn, không bao giờ hoàn thành câu" hoặc "trang trọng, sử dụng danh hiệu ngay cả với bạn bè". Thứ ba là thiếu tính chất quan trọng. Một nhịp như "họ nói về kế hoạch" tạo ra nội dung đệm, trong khi "cô ấy cần anh ấy đồng ý trước bình minh, và anh ấy biết điều đó" tạo ra căng thẳng.

Cuối cùng, đọc đầu ra như một biên tập viên. Nếu cùng một hình thức câu mở đầu bốn đoạn liên tiếp, hãy nói với mô hình điều đó trong yêu cầu tiếp theo và yêu cầu viết lại. Bạn đang điều hướng, không chấp nhận bất cứ thứ gì đến. Các nhà văn coi đầu ra đầu tiên là bản nháp thô nhận được các chương tốt hơn nhiều so với những người mong đợi một bản hoàn chỉnh.

Chi phí cho một câu chuyện

Giá là $0.15 cho mỗi 1M token đầu vào và $0.50 cho mỗi 1M token đầu ra, từ tín dụng trả trước không có đăng ký. Tín dụng không hết hạn. Các số liệu dưới đây được tính toán từ hai giá đó.

Nhiệm vụToken đầu vàoToken đầu raChi phí
Một chương với bible và văn bản trước đó3,0001,200$0.00045 + $0.0006 = $0.00105
100 chương như vậy300,000120,000$0.045 + $0.06 = $0.105
Phiên tương tác: 50 lượt, ngữ cảnh 20,000-token mỗi lần, câu trả lời 1,000-token1,000,00050,000$0.15 + $0.025 = $0.175
Một yêu cầu lấp đầy cửa sổ với đầu vào100,0000$0.015

Ngay cả một trăm chương cũng tốn khoảng mười xu. Các khoản top-up bắt đầu từ $20 và tăng lên đến $500 theo 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 crypto, sử dụng USDT trên TRC20 hoặc USDC trên Base. Chi tiết hiện tại có trên trang giá cả.

Thói quen tốn kém là gửi lại lịch sử rất dài ở mỗi lượt của câu chuyện tương tác. Tóm tắt các lượt cũ và token đầu vào của bạn sẽ giảm mạnh.

Lời khuyên thực tế và giới hạn

Một vài điểm giúp bạn tiết kiệm thời gian khi bắt đầu xây dựng.

  • Chỉ văn bản. Dịch vụ không tạo hình ảnh, âm thanh hoặc video, và không cung cấp embeddings hoặc fine-tuning. Để tạo bìa hoặc giọng nói, hãy sử dụng công cụ khác.
  • Chế độ JSON giúp với cấu trúc. Yêu cầu response_format: {"type":"json_object"} khi bạn muốn mô hình trả về một trang nhân vật hoặc danh sách cảnh mà mã của bạn phân tích.
  • Các prompt của bạn không được dùng để huấn luyện. Điều đó quan trọng nếu bản thảo của bạn chưa được xuất bản.
  • Chỉnh sửa theo từng lượt. Soạn thảo ở nhiệt độ cao, sau đó gửi bản nháp lại với hướng dẫn để siết chặt hội thoại hoặc cắt bớt tính từ ở nhiệt độ thấp hơn.
  • Kiểm tra đầu ra. Một mô hình không có từ chối sẽ đi theo hướng dẫn của bạn, vì vậy giọng điệu bạn nhận được là giọng điệu bạn yêu cầu.

Mô hình là một mô hình trọng số mở chung, không phải API chính thức của nhà cung cấp, vì vậy hãy thử nghiệm nó trên thể loại của riêng bạn trước khi xây dựng sản phẩm xung quanh nó. Hãy bắt đầu với tín dụng dùng thử và một vài chương thực tế.

Hỏi đáp

Có cách miễn phí nào để thử trình tạo câu chuyện AI không kiểm duyệt thông qua API không?

Người dùng mới có thể nhận $0.50 tín dụng dùng thử chỉ với một cú nhấp chuột trên trang khóa API sau khi đăng ký. Bạn không cần thanh toán, tín dụng có hiệu lực trong 7 ngày và giới hạn một lần cho mỗi người.

Một yêu cầu câu chuyện đơn lẻ có thể dài bao nhiêu?

Cửa sổ ngữ cảnh là 100,000 token, dùng chung cho prompt và câu trả lời. Câu trả lời có thể sử dụng phần token còn lại mà prompt để lại, và max_tokens là tùy chọn.

Tôi có thể sử dụng nó với các công cụ đã hỗ trợ OpenAI không?

Có. Bất kỳ client nào cho phép bạn đặt base URL và khóa tùy chỉnh đều hoạt động, sử dụng model ID uncensored. Các phương thức được hỗ trợ là POST /v1/chat/completions và GET /v1/models.

Có nội dung nào mà mô hình sẽ không viết không?

Nội dung tình dục liên quan đến người chưa thành niên không bao giờ được phép. Ngoài ra, mô hình được tinh chỉnh để trả lời mà không có từ chối nội dung cho mục đích người trưởng thành hợp pháp.

Bạn có lưu trữ hoặc huấn luyện trên các câu chuyện của tôi không?

Các prompt không được sử dụng để huấn luyện.

Khóa của bạn chỉ cách một bước

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