SDK compatibility and base URL setup
חבר את קוד הלקוח הקיים שלך על ידי הפנייתו לנקודת הקצה הייעודית שלנו. זה openai compatible API מקבלת כותרות סטנדרטיות ותצורות SDK ללא שינויי קוד. עליכם רק לעדכן את כתובת הבסיס (base URL) ולספק את מפתח ה-API שלכם מהלוח.
https://api.openrouterratelimits.com/v1 היא נקודת הכניסה היחידה לכל הבקשות. האימות משתמש במנגנון אסימון הנשיאה הסטנדרטי, המקובל ברוב ספריות ה-LLM המודרניות. העבירו את המפתח שלכם בתוך ה- Authorization כותרת לאימות הזהות שלך. הגדרה זו עובדת עם כל לקוח המצפה לממשק בסגנון OpenAI, מה שהופך את המעבר למהיר לצוותים שרוצים להיפטר מהנעילה לספק.
- כתובת בסיס:
https://api.openrouterratelimits.com/v1 - כותרת Auth:
Authorization: Bearer YOUR_API_KEY - מזהה מודל:
uncensored
תגובות בזרם עם SSE
אפשרו זרימה על ידי הגדרת stream: true בפלט הבקשה שלך. ה-API מחזיר אירועים שנשלחים מהשרת (SSE) למסירת אסימונים בזמן אמת. כל נתח מכיל את הטקסט שנוצר עד שהנתח הסופי כולל סטטיסטיקות שימוש. גישה זו שומרת על ממשק המשתמש שלך רספונסיבי גם עבור חלונות הקשר ארוכים.
סטרימינג אידיאלי לממשקי צ'אט או תרחישי משחק תפקידים שבהם זמן תגובה קריטי. אין צורך להמתין להשלמת התגובה המלאה כדי להציג טקסט. החלק האחרון תמיד מכיל את ספירת הטוקנים לחישוב מדויק של העלויות. גם במהלך סטרימינג, שגיאות מחזירות קודי HTTP מתאימים לטיפול מיידי.
קריאת פונקציות ומצב JSON
השתמשו בפלטים מבניים לחילוץ נתונים אמין או לשילוב כלים. הפעילו response_format עם {"type": "json_object"} כדי לכפות עמידה ב-JSON. מצב זה חיוני לניתוח מבנים מקוננים מורכבים ללא לוגיקת ניקוי נוספת. קריאה לפונקציות עובות יחד עם יצירת טקסט סטנדרטית לזרימות עבודה דינמיות של סוכנים.
הגדירו את הכלים שלכם ב- tools מערך ו- tool_choice לאכיפה קפדנית. המודל מחזיר קריאות לפונקציה בפורמט הסטנדרטי של OpenAI. תכונה זו תומכת הן בקריאות כלי בודנות והן בקריאות מרובות בתוך סיבוב אחד. השתמש בזה לבניית סוכנים שמתקשרים עם ממשקי API או מסדי נתונים חיצוניים באופן אמין.
ניהול אסימונים ופרמטרים
שלוו את התנהגות היצירה באמצעות פרמטרים סטנדרטיים כמו temperature, top_p, וכן stop. חלון ההקשר תומך עד 100,000 טוקנים עבור קלט והשלמה משולבים. זה מאפשר הקשר היסטורי נרחב או עיבוד מסמלים גדולים בבקשה אחת.
הגדר max_tokens להגביל את אורך הפלט, עם ברירת מחדל של 2,048 אם לא צוין. המודל מטפל ב presence_penalty וגם frequency_penalty לשליטה סגנונית. שימוש בטוקנים נגבה על בסיס ספירת קלט ופלט בפועל. שגיאות לא צורכות טוקנים, מה שמבטיח חיוב הוגן לבקשות שנכשלו.
הבנת מגבלות הקצב לפי מפתח
כל מפתח API תומך ב-300 בקשות לדקה עם מגבלת תהילות של 8 בקשות מקבילות. מגבלה זו חלה לכל מפתח, כך שיצירת מספר מפתחות תגדיל את קצב התפוקה שלכם בקו ישר. גודל גוף הבקשה המקסימלי הוא 8 MB, מה שמתאים לחלון ההקשר לרוב מקרי השימוש.
מגבלות הקצב מתאפסות ברציפות בהתבסס על חלון מחליק. אם תחרוג מהמגבלה, ה-API יחזיר שגיאת 429. שדרג את האשראי שלך כדי לשמור על גישה בעדיפות. בניגוד לרמות משותפות, השרתים הייעודיים שלנו אינם סובלים מרעש של שכנים. עקוב אחר לוח הבקרה שלך כדי להישאר בתוך גבולות אלו לביצועים עקביים.
פתרון תקלות בשגיאות נפוצות
טפול בשגיאות על ידי בדיקת קוד הסטטוס של HTTP וגוף התגובה. שגיאה 401 מצביעה על מפתח API לא חוקי או חסר. צור מפתח חדש מהדשבורד אם האימות נכשל. שגיאה 402 אומרת שהאשראי המקדים שלך אזל; הוסף אשראי באמצעות קריפטו כדי להמשיך בשירות.
שגיאת 429 מסמלת שחרגת ממגבלות הקצב. הפחית את תדירות הבקשות שלך או חלק עומסי עבודה בין מספר מפתחות. ה-API לא גובה אסימונים עבור שגיאות אלו, כך שלא תאבד קרדיט בגלל ניסיונות חוזרים. ודא שספריית הלקוח שלך מטפלת בניסיונות חוזרים עם backoff מעריכי לחוזק.
cURL
curl https://api.openrouterratelimits.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Process one million logs"}]
}'Python
from openai import OpenAI
client = OpenAI(base_url="https://api.openrouterratelimits.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.openrouterratelimits.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);זרימה
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)