Điểm chính
- Context windows combine prompt and completion, so long histories drain limits faster than expected.
- Streaming yêu cầu xử lý các sự kiện SSE một cách cẩn thận để tránh JSON bị hỏng hoặc mất token.
- JSON mode demands strict schema adherence; malformed responses cause silent parsing failures.
- Thanh toán crypto trả trước có nghĩa là các lỗi được miễn phí, nhưng việc đếm token phải chính xác để tránh những bất ngờ.
Tại sao khóa API của bạn có thể bị từ chối
API keys sẽ bị từ chối khi client gửi các header không hợp lệ hoặc vượt quá giới hạn của request body. Server xác thực header xác thực trước khi xử lý bất kỳ logic nào. Nếu header bị thiếu hoặc chứa khoảng trắng thừa, request sẽ thất bại ngay lập tức.
Một nguyên nhân phổ biến khác là gửi một payload vượt quá giới hạn kích thước thân 8 MB. Các cửa sổ ngữ cảnh lớn với nhiều tin nhắn dễ dàng vượt quá ngưỡng này. Hãy kiểm tra độ dài mảng tin nhắn và số lượng token trước khi gửi.
- Đảm bảo tiêu đề Authorization sử dụng đúng tiền tố 'Bearer'.
- Verify the request body size stays under 8 MB.
- Kiểm tra xem khóa API có đang hoạt động và chưa hết hạn không.
Hiểu về giới hạn cửa sổ ngữ cảnh
Cửa sổ ngữ cảnh bao gồm cả lời nhắc đầu vào và phần hoàn thành được tạo ra. API của chúng tôi hỗ trợ cửa sổ 100,000 token, nhưng bạn phải tính toán cho cả hai phía. Nếu bạn gửi 80,000 token ngữ cảnh, bạn chỉ còn 20,000 token cho phần phản hồi.
Hầu hết các mô hình mặc định giới hạn đầu ra nhỏ nếu bạn không chỉ định max_tokens. Điều này có thể làm cắt ngắn các câu trả lời dài một cách bất ngờ. Chỉ đặt max_tokens thành độ dài mong muốn nếu bạn muốn đặt một giới hạn. Hãy nhớ rằng giới hạn này áp dụng cho toàn bộ yêu cầu, không chỉ riêng phần prompt.
Xử lý đúng các gián đoạn streaming
Streaming qua Server-Sent Events (SSE) yêu cầu xử lý lỗi mạnh mẽ. Nếu kết nối bị ngắt, bạn có thể mất token cuối cùng hoặc metadata sử dụng. Luôn đệm các chunk đến và tái tạo lại phản hồi đầy đủ ở phía client.
Dữ liệu sử dụng token thường được gửi trong chunk cuối cùng của luồng. Nếu bạn đóng kết nối sớm, bạn có thể bỏ lỡ số lượng token chính xác. Điều này ảnh hưởng đến độ chính xác của việc tính phí trong các hệ thống trả trước. Hãy triển khai cơ chế thử lại với độ trễ tăng dần theo cấp số nhân để xử lý các sự cố mạng tạm thời.
Sử dụng một khách hàng phát trực tiếp chuyên dụng xử lý việc phân tích cú pháp SSE tự động. Điều này giảm thiểu nguy cơ lỗi phân tích cú pháp và đảm bảo bạn thu thập được toàn bộ dữ liệu.
Lỗi phân tích chế độ JSON
Khi sử dụng response_format: {"type": "json_object"}, mô hình phải trả về JSON hợp lệ. Mọi sai lệch đều gây ra lỗi phân tích cú pháp trong ứng dụng của bạn. Hãy đảm bảo rằng lời nhắc (prompt) của bạn yêu cầu rõ ràng mô hình chỉ xuất ra JSON.
Đôi khi mô hình bao gồm các khối mã markdown xung quanh JSON, điều này làm hỏng các trình phân tích nghiêm ngặt. Loại bỏ các bao bọc trước khi phân tích. Ngoài ra, hãy xác minh cấu trúc JSON ở phía máy khách trước khi sử dụng dữ liệu.
Sử dụng thư viện xác thực schema để bắt lỗi sớm. Điều này ngăn ngừa sự cố khi mô hình trả về các khóa hoặc kiểu dữ liệu không mong đợi.
Những bất ngờ về việc tính token và hóa đơn
Thanh toán theo gói chỉ tính phí cho việc sử dụng token thực tế. Lỗi và từ chối đều miễn phí, đây là một lợi thế đáng kể so với các mô hình đăng ký. Tuy nhiên, việc đếm token có thể phức tạp nếu bạn không tính đến toàn bộ ngữ cảnh.
Mỗi tin nhắn trong lịch sử hội thoại đều được tính vào giới hạn token đầu vào. Các cuộc hội thoại dài có thể làm cạn kiệt nhanh hơn bạn nghĩ số tiền nạp trước của bạn. Hãy thường xuyên theo dõi mức sử dụng để tránh hết tiền giữa chừng trong phiên làm việc.
Thiết lập cảnh báo cho số dư tín dụng thấp. Điều này đảm bảo bạn có thể nạp thêm trước khi các yêu cầu của bạn thất bại. Hãy nhớ rằng tín dụng không bao giờ hết hạn, vì vậy bạn có thể nạp thêm bất cứ khi nào thuận tiện.
Tránh từ chối mềm trong các prompt NSFW
Từ chối mềm xảy ra khi mô hình do dự hoặc đưa ra câu trả lời không đầy đủ thay vì phản hồi trực tiếp. Điều này thường xảy ra với các chủ đề gây tranh cãi hoặc dành cho người lớn. Ngay cả trong một mô hình không kiểm duyệt, một số kích thích nhất định có thể gây ra sự do dự.
Điều chỉnh tham số temperature để giảm tính ngẫu nhiên. Nhiệt độ thấp hơn giúp mô hình trở nên xác định hơn và ít do dự hơn. Ngoài ra, hãy đảm bảo prompt của bạn rõ ràng và trực tiếp. Tránh sử dụng ngôn ngữ mơ hồ có thể gây nhầm lẫn cho mô hình.
Nếu bạn gặp phải tình trạng từ chối mềm thường xuyên, hãy thử diễn đạt lại câu lệnh một chút. Những thay đổi nhỏ trong cách diễn đạt thường có thể vượt qua sự do dự và nhận được câu trả lời trực tiếp.
Các đỉnh giới hạn tốc độ và chiến lược backoff
API cho phép 300 yêu cầu mỗi phút và 8 yêu cầu đồng thời mỗi khóa. Các đỉnh lưu lượng truy cập có thể nhanh chóng vượt quá các giới hạn này. Hãy triển khai cơ chế backoff theo cấp số nhân để xử lý lỗi giới hạn tốc độ một cách mượt mà.
Khi nhận mã trạng thái 429, hãy đợi trước khi thử lại. Bắt đầu với độ trễ ngắn và tăng dần sau mỗi lần thử lại. Điều này giúp tránh làm quá tải máy chủ trong giờ cao điểm.
Theo dõi tỷ lệ yêu cầu của bạn và điều chỉnh mức độ đồng thời cho phù hợp. Nếu bạn đang thực hiện nhiều yêu cầu đồng thời, hãy cân nhắc phân bổ chúng trải đều theo thời gian. Điều này đảm bảo thông lượng ổn định mà không vượt quá giới hạn.
Cấu trúc payload của function calling
Gọi hàm yêu cầu một cấu trúc payload cụ thể. Định nghĩa các hàm của bạn trong tham số tools và chỉ định tool_choice. Mô hình sẽ trả về một lệnh gọi hàm nếu nó xác định đó là phản hồi phù hợp.
Đảm bảo các định nghĩa hàm của bạn chính xác và đầy đủ. Thiếu tham số hoặc kiểu không đúng có thể khiến mô hình tạo ra các lệnh gọi không hợp lệ. Luôn xác thực các đối số gọi hàm trước khi thực thi chúng.
Sử dụng tham số tool_choice để kiểm soát khi nào mô hình gọi hàm. Bạn có thể buộc gọi một hàm, để mô hình tự quyết định, hoặc tắt hoàn toàn việc gọi hàm. Điều này cho phép bạn kiểm soát chi tiết hành vi của mô hình.
Gỡ lỗi lỗi 400 so với lỗi 500
Lỗi 400 cho thấy vấn đề phía máy khách, chẳng hạn như JSON không hợp lệ hoặc thiếu tham số. Lỗi 500 cho thấy vấn đề phía máy chủ, chẳng hạn như lỗi nội bộ hoặc thời gian chờ. Việc phân biệt giữa hai loại lỗi này giúp bạn gỡ lỗi nhanh hơn.
Đối với lỗi 400, hãy kiểm tra thông báo lỗi được cung cấp trong phản hồi. Nó thường chỉ trực tiếp vào vấn đề. Đối với lỗi 500, hãy thử lại yêu cầu sau một khoảng thời gian ngắn. Nếu lỗi vẫn tiếp diễn, hãy liên hệ bộ phận hỗ trợ với ID yêu cầu.
Ghi lại chi tiết yêu cầu và phản hồi cho từng lỗi. Điều này giúp xác định các mẫu và vấn đề tái diễn. Sử dụng dịch vụ ghi nhật ký để theo dõi lỗi theo thời gian và cải thiện tích hợp API của bạn.