Bắt đầu nhanh: Yêu cầu Đầu tiên
Bắt đầu bằng cách trỏ client của bạn đến URL cơ sở của chúng tôi. Sử dụng https://api.grockapi.com/v1 và đặt khóa API của bạn trong header. Định danh mô hình luôn là uncensored. Điều này hoạt động với bất kỳ SDK tương thích OpenAI nào.
Xác thực yêu cầu một token Bearer hợp lệ. Truyền nó dưới dạng Authorization: Bearer YOUR_API_KEY. Nếu khóa bị thiếu hoặc không hợp lệ, bạn sẽ nhận được lỗi 401 ngay lập tức.
Thực hiện lệnh gọi đầu tiên để kiểm tra kết nối. Thân yêu cầu phải bao gồm tên mô hình và mảng messages.
Các tham số và chế độ được hỗ trợ
Cấu hình hành vi tạo văn bản bằng các tham số tiêu chuẩn. Bạn có thể điều chỉnh nhiệt độ để tăng tính sáng tạo hoặc top_p để lấy mẫu hạt nhân. Sử dụng tham số stop để xác định các chuỗi cụ thể dừng việc tạo văn bản.
Đặt seed cho các đầu ra xác định trong quá trình gỡ lỗi. Penalties về presence và frequency giúp giảm sự lặp lại. Mô hình hỗ trợ lên đến 100,000 token trong cửa sổ ngữ cảnh.
Đầu ra tối đa được giới hạn ở 16.000 token mỗi yêu cầu. Để max_tokens chưa được đặt để sử dụng giới hạn đầu ra mặc định 2.048. Lỗi và từ chối không tiêu thụ tín dụng.
Streaming và Việc Sử Dụng Token
Bật phát trực tiếp bằng cách đặt stream: true. API trả về các chunk thông qua các Sự kiện gửi qua máy chủ (SSE). Mỗi chunk chứa nội dung một phần và siêu dữ liệu.
Chi tiết sử dụng token xuất hiện trong chunk cuối cùng. Điều này cho phép bạn theo dõi chi phí chính xác theo thời gian thực. Chunk cuối cùng bao gồm thống kê sử dụng đầy đủ cho yêu cầu.
Xử lý việc đóng luồng (stream) đúng cách để tránh rò rỉ tài nguyên. Luôn xử lý chunk cuối cùng để có dữ liệu tính phí chính xác.
Gọi hàm (Công cụ)
Định nghĩa các công cụ trong thân yêu cầu. Chỉ định tên công cụ, mô tả và lược đồ tham số. Mô hình phản hồi bằng các cuộc gọi công cụ khi phù hợp.
Sử dụng tham số tool_choice để buộc hoặc cho phép các hành vi cụ thể. Bạn có thể đặt nó thành auto, required hoặc các ID công cụ cụ thể.
Xử lý các lệnh gọi công cụ trong logic ứng dụng của bạn. Gửi kết quả công cụ trở lại mô hình để tiếp tục cuộc trò chuyện. Điều này cho phép các quy trình làm việc đa bước phức tạp mà không cần phân tích từ bên ngoài.
Chế độ JSON và các ràng buộc
Buộc đầu ra có cấu trúc bằng cách đặt response_format thành json_object. Mô hình sẽ trả về JSON mà không có các khối mã markdown.
Chế độ này lý tưởng để phân tích dữ liệu vào các ứng dụng. Đảm bảo lược đồ của bạn rõ ràng để cải thiện độ chính xác. Các cấu trúc JSON không hợp lệ có thể gây ra lỗi phân tích cú pháp ở phía máy khách của bạn.
Kết hợp chế độ JSON với kiểm soát nhiệt độ để có định dạng nhất quán. Sử dụng các trình tự dừng để ngăn các ký tự thừa sau dấu ngoặc nhọn đóng.
Giới hạn tốc độ và Hạn mức
Mỗi khóa API được giới hạn ở 300 yêu cầu mỗi phút. Bạn có thể chạy tối đa 8 yêu cầu đồng thời cùng lúc. Kích thước tối đa của thân yêu cầu là 8 MB.
Lỗi 429 cho biết bạn đã vượt quá giới hạn tốc độ. Hãy đợi trước khi thử lại hoặc giảm độ đồng thời của bạn. Một khóa hoạt động tồn tại cho mỗi tài khoản; tạo khóa mới sẽ thay thế khóa cũ.
Theo dõi mức sử dụng của bạn qua chunk streaming cuối cùng hoặc các tiêu đề phản hồi. Các lỗi như 402 (hết tín dụng) hoặc 401 (khóa không hợp lệ) đều miễn phí và không tính vào hạn mức của bạn.
cURL
curl https://api.grockapi.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "calculate the sum of two and three"}]
}'Python
from openai import OpenAI
client = OpenAI(base_url="https://api.grockapi.com/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)Node.js
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.grockapi.com/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);Phát trực tiếp
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)