vi ▾
Lấy khóa API

Unrestricted ai: Troubleshooting Common Mistakes

Nhà phát triển thường chạm tường khi chuyển sang nhà cung cấp AI không giới hạn vì các giả định tiêu chuẩn về định dạng, giới hạn và hành vi phát trực tiếp không còn đúng nữa. Hướng dẫn này giúp bạn khắc phục các lỗi tích hợp phổ biến nhất để bạn có thể triển khai mô hình của mình mà không lãng phí tín dụng hoặc làm hỏng quy trình làm việc.

Cập nhật lần cuối

Tóm tắt

  1. Cửa sổ ngữ cảnh bao gồm cả prompt và kết quả, vì vậy bạn phải dành không gian cho đầu ra để tránh bị cắt ngắn.
  2. Chế độ JSON yêu cầu tuân thủ lược đồ nghiêm ngặt, và mô hình có thể trả thêm văn bản nếu prompt không rõ ràng.
  3. Phản hồi dạng stream qua SSE yêu cầu bạn xử lý các token không đầy đủ một cách an toàn mà không làm hỏng trình phân tích của mình.
  4. Giới hạn tốc độ được áp dụng theo từng khóa, vì vậy các mẫu lưu lượng truy cập bùng nổ cần các chiến lược backoff cẩn thận để tránh lỗi 429.

1. Ngưỡng cửa sổ ngữ cảnh

Mỗi yêu cầu đếm token từ cả prompt và kết hợp được tạo ra chống lại giới hạn tổng thể của bạn. Nếu bạn gửi ngữ cảnh lớn và yêu cầu phản hồi dài, bạn sẽ chạm trần trước khi mô hình hoàn thành việc tạo văn bản. Mô hình không kiểm duyệt của chúng tôi hỗ trợ cửa sổ ngữ cảnh 100,000-token, nhưng đầu ra tối đa cho mỗi yêu cầu được giới hạn ở 16,000 token trừ khi bạn chỉ định khác. Luôn tính toán số token còn lại sau prompt hệ thống và lịch sử hội thoại của bạn để đảm bảo mô hình có đủ chỗ để hoàn thành suy nghĩ của nó. Việc không tính đến điều này thường dẫn đến các phản hồi bị cắt ngang khiến trình phân tích ở tầng dưới bị nhầm lẫn.

from openai import OpenAI

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

resp = client.chat.completions.create(
    model="uncensored",
    messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)

2. Chế độ JSON & định dạng nghiêm ngặt

Chế độ JSON bắt buộc mô hình xuất ra JSON hợp lệ, nhưng nó không đảm bảo tuân thủ lược đồ hoàn hảo trong mọi trường hợp cạnh. Khi bạn đặt định dạng phản hồi thành json_object, mô hình ưu tiên tính hợp lệ về mặt cú pháp hơn việc thực thi loại nghiêm ngặt. Nếu lược đồ của bạn quá phức tạp, mô hình có thể bịa đặt các trường hoặc bỏ qua các trường tùy chọn để giữ cấu trúc hợp lệ. Luôn xác minh đầu ra ở phía máy khách trước khi phân tích cú pháp nó dưới dạng loại nghiêm ngặt. Điều này đặc biệt đúng đối với các mô hình không kiểm duyệt, những mô hình có thể tự do sáng tạo với nội dung bên trong các giá trị JSON.

import OpenAI from "openai";

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

const resp = await client.chat.completions.create({
  model: "uncensored",
  messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);

3. Các phản hồi từng phần qua Streaming

Streaming cho phép bạn nhận token khi chúng được tạo ra, cải thiện độ trễ cảm nhận cho các phản hồi lớn. Bạn phải xử lý luồng Server-Sent Events (SSE) đúng cách để tránh mất dữ liệu hoặc lỗi trình phân tích cú pháp. Mỗi chunk chứa một token một phần, và chunk cuối cùng bao gồm tổng số token sử dụng cho yêu cầu. Nếu bạn ngắt kết nối sớm, bạn sẽ mất dữ liệu sử dụng cuối cùng và có thể khiến máy chủ ở trạng thái không nhất quán. Luôn đảm bảo máy khách của bạn có thể xử lý các mảnh JSON không đầy đủ nếu bạn đang streaming dữ liệu có cấu trúc.

stream = client.chat.completions.create(
    model="uncensored",
    messages=[{"role": "user", "content": "Tell the story in second person."}],
    stream=True,
)
for chunk in stream:
    if chunk.choices and chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)

4. Lỗi chọn công cụ & gọi hàm

Gọi hàm yêu cầu các định nghĩa lược đồ chính xác và thường thất bại nếu mô hình không thể ánh xạ đầu vào của người dùng thành một công cụ cụ thể. Nếu bạn chỉ định tool_choice, mô hình có thể bắt buộc gọi công cụ ngay cả khi nó không phù hợp, dẫn đến các đối số trống hoặc không liên quan. Đảm bảo các định nghĩa công cụ của bạn đơn giản và được mô tả rõ ràng. Mô hình hỗ trợ các định dạng công cụ tương thích tiêu chuẩn với OpenAI, vì vậy bạn có thể sử dụng các SDK hiện có. Tuy nhiên, luôn xác minh rằng các đối số được chuyển cho công cụ khớp chính xác với các loại bạn mong đợi.

curl https://api.chatgptunrestricted.cc/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "Summarize the technical specs of the new GPU architecture"}]
  }'

5. Cài đặt nhiệt độ & độ sáng tạo

Việc điều chỉnh nhiệt độ thay đổi cách mô hình chọn token, ảnh hưởng đến tính ngẫu nhiên của đầu ra. Nhiệt độ cao hơn dẫn đến các phản hồi sáng tạo và đa dạng hơn, trong khi nhiệt độ thấp hơn làm cho đầu ra mang tính xác định và tập trung hơn. Nếu bạn đang sử dụng mô hình để tạo mã hoặc truy xuất dữ liệu thực tế, hãy giữ nhiệt độ thấp để tránh ảo giác. Đối với việc viết sáng tạo hoặc brainstorming, hãy tăng nhiệt độ để khám phá nhiều ý tưởng đa dạng hơn. Hãy thử nghiệm với top_p cũng như để kiểm soát việc lấy mẫu nucleus và tinh chỉnh thêm chất lượng đầu ra.

from openai import OpenAI

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

resp = client.chat.completions.create(
    model="uncensored",
    messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)

6. Xử lý các tải trọng lớn

Các tải trọng lớn có thể vượt quá giới hạn thân yêu cầu 8 MB, khiến các lệnh gọi API của bạn thất bại im lặng hoặc với lỗi 413. Nếu bạn đang gửi lịch sử hội thoại dài, hãy cân nhắc cắt bớt các tin nhắn cũ hoặc tóm tắt chúng trước khi gửi. Mô hình có thể xử lý 100,000 token, nhưng kích thước vật lý của tải trọng JSON cũng rất quan trọng. Đảm bảo thư viện khách hàng của bạn nén hoặc định dạng dữ liệu hiệu quả. Luôn kiểm tra độ dài nội dung trước khi thực hiện yêu cầu để tránh lãng phí tín dụng cho các lần thử nghiệm thất bại.

import OpenAI from "openai";

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

const resp = await client.chat.completions.create({
  model: "uncensored",
  messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);

7. Giảm Tốc Độ Khi Vượt Giới Hạn

Giới hạn tốc độ được áp dụng theo từng khóa API, với tối đa 300 yêu cầu mỗi phút và 8 yêu cầu đồng thời. Nếu vượt quá giới hạn này, bạn sẽ nhận được lỗi 429. Hãy triển khai cơ chế backoff theo cấp số nhân trong ứng dụng khách của bạn để xử lý việc thử lại một cách mượt mà. Lưu lượng truy cập tăng đột biến có thể nhanh chóng làm cạn kiệt giới hạn đồng thời của bạn, vì vậy hãy phân phối các yêu cầu theo thời gian nếu có thể. Theo dõi mức sử dụng và điều chỉnh cài đặt đồng thời của bạn có thể giúp bạn duy trì trong giới hạn mà không làm giảm hiệu suất. Điều này rất quan trọng để duy trì trải nghiệm người dùng liền mạch trong môi trường sản xuất.

curl https://api.chatgptunrestricted.cc/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "Summarize the technical specs of the new GPU architecture"}]
  }'

8. Sự chênh lệch trong đếm token

Các bộ mã hóa token khác nhau có thể đếm token khác nhau, dẫn đến sự chênh lệch giữa số đếm cục bộ của bạn và số đếm của API. Luôn sử dụng cùng một bộ mã hóa token với mô hình để tính toán chính xác. API tính phí dựa trên số token thực tế được xử lý, vì vậy việc hiểu sự khác biệt này giúp bạn dự đoán chi phí chính xác hơn. Nếu bạn nhận thấy sự chênh lệch đáng kể, hãy xem lại cách triển khai bộ mã hóa token của bạn. Điều này đặc biệt quan trọng khi tích hợp với các thư viện bên thứ ba có thể sử dụng các chiến lược token hóa khác nhau.

from openai import OpenAI

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

resp = client.chat.completions.create(
    model="uncensored",
    messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)

Câu hỏi thường gặp

Lợi thế chính của việc sử dụng mô hình AI không giới hạn so với các dịch vụ tiêu chuẩn là gì?

Một mô hình AI không giới hạn thường không từ chối các chủ đề người trưởng thành hợp pháp, sáng tạo hoặc gây tranh cãi, mang lại nhiều tự do hơn cho các trường hợp sử dụng cụ thể. Nó cho phép nhà phát triển tạo nội dung mà không bị ràng buộc bởi các bộ lọc an toàn của doanh nghiệp, rất lý tưởng cho các ứng dụng chuyên biệt hoặc táo bạo.

Làm thế nào để xử lý lỗi phân tích cú pháp JSON khi sử dụng phát trực tuyến?

Streaming gửi dữ liệu từng phần, vì vậy bạn phải đệm các chunk cho đến khi luồng hoàn tất hoặc phân tích cú pháp tăng dần nếu khách hàng của bạn hỗ trợ nó. Luôn xác minh cấu trúc JSON cuối cùng trước khi sử dụng nó trong ứng dụng của bạn. Nếu xảy ra lỗi, hãy kiểm tra đầu ra của mô hình xem có văn bản thừa nào có thể phá vỡ cú pháp JSON không.

Tôi có thể sử dụng API này cho việc gọi hàm với các công cụ hiện có không?

Có, API hỗ trợ gọi hàm tương thích tiêu chuẩn với OpenAI. Bạn có thể xác định các công cụ trong yêu cầu của mình và mô hình sẽ cố gắng gọi chúng nếu ngữ cảnh gợi ý điều đó. Đảm bảo lược đồ công cụ của bạn rõ ràng và khớp với các loại đối số dự kiến.

Điều gì xảy ra nếu tôi vượt quá giới hạn đầu ra 16,000 token?

Nếu bạn yêu cầu hơn 16.000 token để hoàn thành, mô hình sẽ dừng tạo ở giới hạn đó. Để nhận được phản hồi dài hơn, bạn có thể cần triển khai chiến lược tiếp tục tạo trong các yêu cầu tiếp theo hoặc điều chỉnh lời nhắc của bạn để ngắn gọn hơn.

Mở khóa API của bạn

Đăng ký, lấy khóa của bạn và trỏ client của bạn đến URL cơ sở mới. Đó là tất cả những gì bạn cần làm.

Lấy khóa API