인증
인증은 단일 API 키로 처리됩니다. API 키 얻기 페이지에서 Google 또는 이메일 비밀번호로 로그인할 수 있습니다. 키는 즉시 표시되며 선불 크레딧에 연결됩니다. 주요 벤더와 달리 무료 체험에는 월 구독이나 신용카드가 필요하지 않습니다. 모든 요청에는 Authorization: Bearer YOUR_API_KEY 헤더를 사용하십시오. 계정당 활성 자격 증명은 키 하나뿐이며 새 키를 생성하면 이전 키가 무효화됩니다.
기본 완료
OpenAI 호환 엔드포인트로 표준 채팅 생성 요청을 보내세요. 모델 식별자는 uncensored입니다. 이 모델은 오픈 웨이트 모델이며 합법적인 성인 사용에 콘텐츠 거부 없이 답변하도록 조정되었습니다. 이 모델은 GPT, Claude 또는 기타 벤더 모델이 아닙니다. 이 서비스의 기본 URL은 아래에 제공됩니다.
curl https://api.ornith.top/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Write a blunt product review of a cheap VPN."}]
}'YOUR_API_KEY를 대시보드에서 받은 키로 바꿉니다. 응답에는 choices[0].message.content에 생성된 텍스트가 포함됩니다. 401 오류는 유효하지 않은 키를 의미하며, 402 오류는 선불 크레딧이 소진되었음을 의미합니다.
Python SDK
공식 openai Python 패키지를 사용하세요. Ornith 기본 URL을 가리키고 API 키를 제공하세요. 이는 표준 OpenAI 클라이언트 구조와의 호환성을 보장합니다. role 및 content을 포함하는 사전 목록으로 메시지를 전달할 수 있습니다. 클라이언트는 HTTP 요청을 자동으로 처리합니다. 이 방법은 단순 텍스트 생성부터 도구 또는 JSON 모드를 사용한 더 복잡한 상호 작용에 이르기까지 모두 작동합니다.
from openai import OpenAI
client = OpenAI(base_url="https://api.ornith.top/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)응답 객체는 표준 OpenAI 구조를 반영합니다. 응답 객체에서 생성된 텍스트에 직접 액세스할 수 있습니다. 이 방법은 모델 출력에 프로그래밍 방식으로 액세스해야 하는 백엔드 서비스나 스크립트에 이상적입니다.
Node SDK
openai npm 패키지를 설치하세요. Ornith 기본 URL과 API 키로 클라이언트를 초기화하세요. 요청 구조는 Python SDK와 동일합니다. chat.completions.create 메서드를 사용하세요. 이는 웹 백엔드를 구축하든 CLI 도구를 만들든 JavaScript 환경에 적합합니다. 클라이언트는 응답의 직렬화 및 역직렬화를 처리합니다.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.ornith.top/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);오류를 적절하게 처리하세요. 네트워크 오류 또는 API 오류는 예외를 발생시킵니다. 인증 실패, 속도 제한 또는 서버 오류를 구분하기 위해 상태 코드를 확인하세요. 응답에는 Python SDK와 동일한 형식으로 완료 세부 정보가 포함됩니다.
스트리밍 응답
요청에 stream: true을 설정하여 스트리밍을 활성화하세요. 이는 생성되는 토큰의 스트림을 반환합니다. 실시간 UI 업데이트 또는 점진적 텍스트 표시에 사용하세요. 스트림은 총 토큰 사용량을 포함하는 마지막 청크로 끝납니다. 이를 통해 전체 응답을 기다리지 않고도 실시간으로 비용을 추적할 수 있습니다. 진행 상황을 표시하려는 긴 컨텍스트에 효율적입니다.
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)스트림을 반복하여 각 청크를 처리하세요. 마지막 청크에는 usage 필드가 포함됩니다. 이는 청구 투명성에 유용합니다. 클라이언트가 스트림을 올바르게 처리하여 큰 응답으로 인한 메모리 문제를 방지하도록 하세요.
제한, 오류 및 컨텍스트
컨텍스트 창은 프롬프트와 완성 텍스트를 합산한 기준 100,000 토큰입니다. 요청당 최대 출력은 32,000 토큰이며 (max_tokens이 설정되지 않은 경우 2,048 토큰) 키당 동시 요청은 8개, 분당 요청은 300개로 제한됩니다. 요청 본문 크기는 8 MB 미만이어야 합니다. 속도 제한을 초과하면 429 오류가 발생합니다. 소년 관련 콘텐츠에 대한 거절은 하드코딩되어 항상 적용됩니다. 오류는 크레딧을 소모하지 않습니다. 크레딧은 선불이며 소멸되지 않습니다.