5.5 KiB
5.5 KiB
파이프라인 플랫폼 모델 API 문서
모델 거버넌스 통합 추론 API
Base url: https://pipeline.opencomputing.cn/pipeline-llm/api/v1
모든 API 엔드포인트는 Bearer Token 인증이 필요합니다 (단기 토큰, 실제 모델 키가 아님).
테넌트 격리: 토큰에 연결된 테넌트를 기준으로 거버넌스 체인을 통해 실제 모델과 키를 해결합니다. 실제 키는 서버 프로세스 외부로 나가지 않습니다.
POST /v1/chat/completions
모델 호출 통합 입구 (OpenAI 호환 형식). 동기 모델은 한 번의 왕복으로 결과를 반환합니다. 비동기 모델 (이미지→비디오 등)은 서버가 자동으로 "작업 제출 → 폴링 → 결과 조회"를 완료하여 로컬에 영속화된 주소를 반환합니다.
필수 파라미터
| 파라미터 | 타입 | 설명 |
|---|---|---|
messages |
array | 대화 메시지 배열, [{"role": "user", "content": "..."}] |
선택 파라미터
| 파라미터 | 타입 | 설명 |
|---|---|---|
model |
string | 모델 이름 (예: happyhorse-1.1-i2v). 미지정 = 테넌트 정책 기본 모델 (주→백업 체인의 첫 번째) |
temperature |
float | 샘플링 온도 |
tools |
array | 도구 정의 (t2t 모델, OpenAI 호환) |
_purpose |
string | 용도 마커: utility = 보조 작업 (분류/선택/요약), 보조 모델 체인 사용 |
_timeout |
int | 1회 호출 타임아웃 초 (0=엔드포인트 기본값; 최대 900) |
비동기 모델 추가 파라미터 (i2v / t2v / t2i 등)
| 파라미터 | 타입 | 설명 |
|---|---|---|
image_file |
string | 업로드 미디어 (base64/data URL은 자동으로 로컬 공개 URL로 변환; http(s) URL은 그대로 사용). 동일 능력 파라미터는 통일된 xxx_file 명명 사용 |
resolution |
string | 해상도, 예: 480P / 720P / 1080P |
duration |
int | 비디오 길이 (초) |
생성물 안내: 업스트림이 반환하는 이미지/비디오 등 산출물 URL은 유효기간이 매우 짧습니다 (비디오는 24시간뿐). 서버가 로컬에 영속화한 후 반환합니다.
요청 예시 (텍스트 대화)
curl -X POST 'https://pipeline.opencomputing.cn/pipeline-llm/api/v1/chat/completions' \
-H 'Authorization: Bearer ***' \
-H 'Content-Type: application/json' \
-d '{
"model": "qwen3.8-max",
"messages": [{"role": "user", "content": "안녕하세요"}]
}'
요청 예시 (이미지→비디오, 비동기 모델)
curl -X POST 'https://pipeline.opencomputing.cn/pipeline-llm/api/v1/chat/completions' \
-H 'Authorization: Bearer ***' \
-H 'Content-Type: application/json' \
-d '{
"model": "happyhorse-1.1-i2v",
"messages": [{"role": "user", "content": "캐릭터가 랩을 시작한다"}],
"image_file": "https://example.com/first-frame.png",
"resolution": "720P",
"duration": 5,
"_timeout": 600
}'
응답 예시 (동기 모델)
{
"choices": [
{"message": {"content": "안녕하세요!", "role": "assistant"}, "finish_reason": "stop"}
],
"usage": {"prompt_tokens": 10, "completion_tokens": 5}
}
응답 예시 (비동기 모델)
{
"choices": [
{"message": {"content": "https://pipeline.opencomputing.cn/idfile/tmp/.../xxx.mp4", "role": "assistant"},
"finish_reason": "stop"}
],
"usage": {"duration": 5, "SR": 720, "video_count": 1},
"task_id": "e53dee87-...",
"media": {
"status": "SUCCEEDED",
"video": "https://pipeline.opencomputing.cn/idfile/tmp/.../xxx.mp4",
"usage": {"duration": 5, "SR": 720}
}
}
media 필드는 통합 출력 파라미터입니다 (동일 능력 모델 간 필드명 일치): 비디오는 video, 이미지는 image, 3D 모델은 glb.
오류 응답
실패 시 OpenAI 오류 구조를 반환하며, 메시지는 실행 가능한 내용입니다 (게이트 실패/타임아웃/템플릿 설정 누락 등 모두 구체적인 사유를 제공합니다):
{"error": {"message": "모델 체인 전체 사용 불가. 마지막 사유: …", "type": "invalid_request_error", "code": "govern_error"}}
GET /v1/models
현재 테넌트에서 사용 가능한 모델을 능력별로 나열 (테넌트에 거버넌스 정책이 없으면 빈 리스트).
선택 파라미터
| 파라미터 | 타입 | 설명 |
|---|---|---|
catelogid |
string | 능력 분류: t2t / t2i / i2v / t2v / embedding / rerank / tts / asr / i2t. 미지정 = 전체 |
요청 예시
curl 'https://pipeline.opencomputing.cn/pipeline-llm/api/v1/models?catelogid=i2v' \
-H 'Authorization: Bearer ***'
응답 예시
{
"object": "list",
"data": [
{"id": "happyhorse-1.1-i2v", "object": "model", "name": "happyhorse-1.1-i2v",
"catelogid": "i2v", "vendor": "Alibaba Bailian"}
]
}
인증과 단기 토큰
- 토큰은 플랫폼이 발급 (테넌트/프로젝트/작업에 연결, 만료 시간과 호출 상한 있음, 폐기 가능)
- 사용 방법: `Authorization: Bearer ***
- 토큰은 실제 모델 키가 아닙니다. 실제 키는 서버 측에서만 해결되며 프로세스 외부로 나가지 않습니다
과금
- 호출마다 자동으로 사용량 기록 (
llm_usage)이 생성되며, 모델에 연결된 요금제 (ppid) 기준으로 비동기 정산됩니다 - 토큰 외 과금 요소 (비디오 길이/해상도 등)는 기록의
usages필드에 저장됩니다