글 생성
POST /v1/text
글 모델에게 프롬프트를 보내고 답을 받아요. 결과는 응답에 바로 담겨 와요.
요청
| 필드 | 형식 | 기본값 | 설명 |
|---|---|---|---|
prompt | 문자열 | 필수 | 모델에게 보낼 내용 |
model | 문자열 | devdive-text-5-6-luna | 글 모델 ID. → 모델 |
system_prompt | 문자열 | 없음 | 역할, 말투, 지켜야 할 규칙 |
max_tokens | 1 이상의 정수 | 모델 기본값 | 답의 최대 길이(토큰) |
temperature | 0~2 | 모델 기본값 | 높을수록 답이 다양해지고, 낮을수록 일정해져요 |
stream | 불리언 | false | 스트리밍은 준비 중이에요. 지금 true로 보내면 422가 와요 |
응답
| 필드 | 설명 |
|---|---|
id | 이 호출의 ID |
object | 항상 text |
model | 답한 모델 ID |
text | 모델의 답 |
usage | input_tokens(입력), output_tokens(출력), total_tokens(합계) |
credits_used | 이번 호출로 차감된 크레딧 |
예시
시스템 프롬프트로 역할을 주고, 모델을 Claude Sonnet으로 바꿔 볼게요.
curl https://api.devdive.ai/v1/text \
-H "Authorization: Bearer $DEVDIVE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "devdive-claude-sonnet",
"system_prompt": "너는 쇼핑몰 상품 설명을 쓰는 카피라이터야. 세 문장 안으로, 존댓말로 써.",
"prompt": "제품: 접이식 캠핑 의자. 무게 1.2kg, 최대 하중 120kg, 수납 가방 포함.",
"max_tokens": 300,
"temperature": 0.7
}'
{
"id": "0e6b1c52-2f0e-4a51-9d5c-3c1f7f0f8a21",
"object": "text",
"model": "devdive-claude-sonnet",
"text": "1.2kg의 가벼운 무게로 어디든 부담 없이 들고 다닐 수 있는 접이식 캠핑 의자예요. …",
"usage": { "input_tokens": 92, "output_tokens": 118, "total_tokens": 210 },
"credits_used": 0.31
}
Python에서는 이렇게 써요.
import os
import requests
def ask(prompt: str, **options) -> str:
res = requests.post(
"https://api.devdive.ai/v1/text",
headers={"Authorization": f"Bearer {os.environ['DEVDIVE_API_KEY']}"},
json={"prompt": prompt, **options},
timeout=120,
)
body = res.json()
if not res.ok:
raise RuntimeError(f"{body['error']['code']}: {body['error']['message']}")
return body["text"]
print(ask("다음 문장을 영어로 번역해 줘: 오늘 회의는 3시로 미뤄졌어요.", model="devdive-text-5-6-terra"))
알아 두기
- 한 번에 한 턴이에요. 대화 이력을 배열로 받지 않아요. 앞선 대화가 필요하면
prompt에 함께 넣어 보내세요. - 모델 고르기: 처음에는 기본값(
devdive-text-5-6-luna)으로 시작하고, 답이 아쉬우면devdive-text-5-6-sol이나devdive-claude-opus처럼 높은 단계로 올려 보세요. 높은 단계일수록 느리고 크레딧이 더 들어요. - 길이: 답이 중간에 끊기면
max_tokens를 늘리세요. - 응답 시간: 짧은 답도 몇 초에서 수십 초 걸릴 수 있어요. 클라이언트 타임아웃은 120초 이상으로 두세요.
- 한도: 모델마다 분당 호출 수와 토큰 수에 한도가 있어요. 넘으면
429가 오니Retry-After만큼 기다렸다가 다시 보내세요. → 에러와 한도