필수 조건: SDK 설정
연결을 구성하기 전에 선호하는 언어의 공식 클라이언트 라이브러리를 설치하세요. 라이브러리는 JSON 직렬화, 재시도 및 스트리밍 프로토콜을 자동으로 처리합니다.
Python의 경우 pip를 통해 패키지를 설치하세요. Node.js의 경우 npm 또는 yarn을 사용하여 프로젝트에 종속성을 추가하세요.
함수 호출 및 JSON 모드와 같은 모든 기능을 지원하기 위해 최신 버전의 SDK를 사용하고 있는지 확인하세요.
구성: 기본 URL & 키
특정 기본 URL로 SDK 클라이언트를 설정하고 가입 시 얻은 API 키를 제공하세요.
기본 URL은 HTTPS://api.claudellmapi.com/v1입니다. 이는 모든 요청이 기본 제공업체 대신 비검열 모델 서버로 가도록 보장합니다.
API 키를 환경 변수로 설정하거나 클라이언트 생성자에 직접 전달하세요. 추가 헤더는 필요하지 않습니다.
첫 번째 요청 보내기
연결성 및 응답 품질을 확인하기 위한 간단한 채팅 완료 요청 전송. 모델 id 'uncensored'를 사용하여 제한 없는 모델에 액세스합니다.
요청 구조는 표준 OpenAI 형식을 따르므로 기존 통합을 쉽게 교체할 수 있습니다.
프롬프트에 대한 모델의 답변을 포함하는 텍스트 응답을 예상합니다.
ストリーミングレスポンスの処理
긴 출력의 인지된 지연 시간을 줄이기 위해 생성되는 대로 토큰을 받도록 스트리밍을 활성화하세요.
요청에서 stream 매개변수를 true로 설정하세요. SDK는 사용 가능해질 때 텍스트 청크를 생성합니다.
이것은 모델이 여전히 사고 중일 때 즉각적인 피드백을 기대하는 채팅 인터페이스에 이상적입니다.
함수 호출 구현
요청에 도구를 정의하여 모델이 일반 텍스트 대신 구조화된 데이터를 반환하도록 하세요.
Specify the function schema and set tool_choice to 'auto' or a specific function name.
이 모델은 코드에서 실행할 수 있는 함수 호출 객체를 반환합니다. 이는 우리의 uncensored 모델과 원활하게 작동합니다.
오류 처리 & 제한
부드러운 사용자 경험을 유지하기 위해 일반적인 HTTP 오류를 우아하게 처리하세요. 401 상태는 유효하지 않거나 누락된 API 키를 나타냅니다. 402 상태는 사전 지불 크레딧이 고갈되었음을 의미합니다. 429 상태는 1분당 300개 요청의 속도 제한을 초과했음을 나타냅니다.
컨텍스트 윈도우는 프롬프트와 completion을 합쳐 100,000 토큰입니다. 8 MB 본문 한도를 초과하는 요청은 실패합니다.
cURL
curl https://api.claudellmapi.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "What are the current rate limits for large context windows"}]
}'Python
from openai import OpenAI
client = OpenAI(base_url="https://api.claudellmapi.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.claudellmapi.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)