URL پایه و احراز هویت
ابتدا با URL پایه احراز هویت کنید https://api.googlegeminiuncensored.com/v1. شما بلافاصله پس از ثبتنام از طریق گوگل یا ایمیل، یک کلید API فعال دریافت میکنید. این کلید را در Authorization هدر به عنوان یک توکن Bearer برای تمام درخواستهای بعدی.
- URL پایه:
https://api.googlegeminiuncensored.com/v1 - هدر:
Authorization: Bearer YOUR_API_KEY
curl https://api.googlegeminiuncensored.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "List the top five open source LLMs for local deployment"}]
}'
نقطه پایانی تکمیل چت
ارسال درخواستهای تولید متن به POST /v1/chat/completions. این انتهایبند، آرایههای پیام استاندارد را میپذیرد و پاسخهای متنی خام بدون فیلترهای محتوا برای استفاده بزرگسالان قانونی برمیگرداند.
from openai import OpenAI
client = OpenAI(base_url="https://api.googlegeminiuncensored.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)شناسه مدل uncensored. یک مدل وزنباز است که روی سرورهای ما اجرا میشود و از GPT یا Gemini متمایز است. بین فروشندگان مسیریابی نمیکند یا امبدینگ ارائه نمیدهد.
پاسخهای استریم (SSE)
استریمینگ را با تنظیم stream: true در بدنه درخواست خود. API رویدادهای ارسالشده توسط سرور (SSE) را برمیگرداند که در آن دادههای مصرف توکن در قطعه نهایی ظاهر میشود.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.googlegeminiuncensored.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)