OpenAI 호환 API의 권장 Base URL:
https://miyang.cn/v1는 기존 클라이언트와 계속 호환돼요. 새로 연동할 때는 https://miyang.cn/api/v1를 사용해 주세요.
공개 모델 목록을 제외한 추론 엔드포인트는 요청 헤더에 API 키가 필요해요. 다음 두 가지 헤더를 지원해요:
- 권장:
Authorization: Bearer miyang-xxxxx - 대체:
x-api-key: miyang-xxxxx
API 키는 콘솔에서 만들고 암호화해 저장하며, API Keys 페이지에서 다시 확인하고 복사할 수 있어요.
# Bearer Token(推荐) curl https://miyang.cn/api/v1/models \ -H "Authorization: Bearer miyang-xxx" # x-api-key(备用) curl https://miyang.cn/api/v1/models \ -H "x-api-key: miyang-xxx"
모델 ID는 보통 {provider_slug}/{model_name} 형식이에요. miyang/auto로 자동 선택하거나, 모델 목록 또는 콘솔에서 다른 호출 ID를 복사할 수 있어요.
miyang/auto— 현재 요청에 맞는 모델을 자동으로 선택해요miyang/standard— 스탠다드 모델miyang/premium— 프리미엄 모델
miyang/* 모델은 Alice 클라이언트용이에요. 다른 앱이나 스크립트는 모델 목록에서 usage_scope가 general인 모델을 선택해 주세요.
# 自动选择适合当前请求的模型 model = "miyang/auto"
API 키마다 따로 집계되며, 기본값은 분당 60회이에요. 상한은 콘솔에서 조정할 수 있어요. 제한을 넘으면 429 Too Many Requests를 반환해요.
{
"error": {
"message": "Rate limit exceeded",
"type": "rate_limit_error",
"code": 1002
}
}
정산 단위는 크레딧(米粒)이며 호출 시 바로 차감돼요. 현재 충전은 1위안 = 140 크레딧(米粒)로 입금되고, 이벤트 보너스는 별도예요.
- 호출 전 잔액이 0보다 큰지 확인하며, 잔액이 부족하면
402를 반환해요 - prompt + completion 토큰 사용량으로 과금해요
- Prompt Cache를 지원하며
cache_read_tokens는 할인 요금으로 계산해요
콘솔에서 크레딧(米粒)을 충전하고, 사용량에서 호출과 소비 내역을 볼 수 있어요.
// 余额不足响应(402) { "error": { "message": "Insufficient balance", "type": "insufficient_balance", "code": 1004 } }
OpenAI 호환 대화 엔드포인트로, 스트리밍과 비스트리밍을 지원해요. OpenAI SDK의 base_url만 바꾸면 돼요.
| 매개변수 | 유형 | 설명 |
|---|---|---|
| model 필수 | string | 모델 ID, 형식 provider_slug/model |
| messages 필수 | array | 대화 메시지 목록이며 각 항목은 role과 content를 포함해요 |
| stream | boolean | 스트리밍(SSE) 사용 여부, 기본값 false |
| temperature | float | 샘플링 온도, 범위 0–2 |
| max_tokens | integer | 최대 출력 토큰 수 |
| response_format | object | 구조화 출력 형식. 「구조화 출력」 섹션을 참고하세요 |
curl https://miyang.cn/api/v1/chat/completions \ -H "Authorization: Bearer miyang-xxx" \ -H "Content-Type: application/json" \ -d '{ "model": "miyang/auto", "messages": [ {"role": "user", "content": "Hello!"} ], "stream": false }'
공개 엔드포인트이며 API 키가 필요 없어요. 현재 공개 모델을 반환하고, API 키를 넣으면 계정 권한에 따라 내부 또는 허용 목록 모델도 포함돼요. 응답 필드는 표준 OpenAI 형식에 pricing, context_length, 사용 범위 정보를 더해요.
{
"object": "list",
"data": [
{
"id": "miyang/auto",
"object": "model",
"owned_by": "miyang",
"name": "自动",
"model_type": "text",
"usage_scope": "alice",
"usage_hint": "请在 Alice 客户端内使用",
"pricing": {
"prompt": "3.250000",
"completion": "13.500000",
"cache_read": "0.550000",
"cache_write": "0.000000"
},
"context_length": 262144
}
]
}
OpenAI 호환 임베딩 엔드포인트예요. 모델이 벡터 작업을 지원하는지는 모델 목록과 콘솔 표시를 확인해 주세요.
| 매개변수 | 유형 | 설명 |
|---|---|---|
| model 필수 | string | Embedding 모델 호출 ID |
| input 필수 | string / array | 벡터화할 텍스트 또는 텍스트 배열 |
| encoding_format | string | 벡터 인코딩 형식. 흔히 float를 사용해요 |
curl https://miyang.cn/api/v1/embeddings \ -H "Authorization: Bearer miyang-xxx" \ -H "Content-Type: application/json" \ -d '{ "model": "provider/embedding-model", "input": "需要向量化的文本" }'
miyang/jev-1.13은 모든 Miyang API 사용자가 이용할 수 있는 저비용 구조화 결정 모델이며 엔진은 typesafe/jev-1.13으로 고정돼요. 대화 문장을 생성하지 않고 명시된 질문에 답해요. Alice의 장기 기억 사전 필터가 첫 번째 운영 사례예요.
Authorization: Bearer miyang-xxx로 호출할 수 있어요. /api/v1/chat/completions과 다른 전용 Decisions 프로토콜을 사용하므로 Chat 전용 /api/v1/models 목록에는 섞이지 않아요.
| 모델 정보 | 값 |
|---|---|
| Miyang 모델 ID | miyang/jev-1.13 |
| 결정 엔진 | typesafe/jev-1.13 |
| 컨텍스트 한도 | 32768 tokens |
| 질문 유형 | noul / choice / score |
| 가격 | 입력 $0.042 / 1M tokens, 출력 $0.000 / 1M tokens. 업스트림이 반환한 실제 토큰 사용량으로 정산해요. |
| 사용 범위 | 유효한 Miyang API 키를 가진 모든 사용자 |
요청에는 등록된 Decisions 모델 셸을 지정해야 해요. Gateway는 해당 셸로 과금하면서 실제 업스트림 엔진을 고정해요. state에는 판단할 구조화 컨텍스트를, questions에는 답할 질문을 넣어요.
| 매개변수 | 유형 | 설명 |
|---|---|---|
| model 필수 | string | 공개 호출에는 miyang/jev-1.13을 사용해요. 일반 API 사용자는 내부 시나리오 셸을 호출할 수 없어요. |
| state 필수 | object | 결정에 사용할 구조화 상태예요. 호출자는 전송 전에 불필요한 민감 정보를 제거해야 해요. |
| questions 필수 | object | 질문 이름을 키로 하는 객체이며 1개 이상 24개 이하예요. |
| questions.*.type 필수 | string | noul(0–1 확률), choice 또는 score. |
| questions.*.instructions 필수 | string | 모델이 판단할 내용을 명확하게 설명해요. |
| questions.*.criteria | object | 선택 사항. 각 답이나 점수의 의미를 설명해 모호함을 줄여요. |
요청 본문은 최대 64 KiB, 질문은 최대 24개예요. 서버는 state 본문이나 결정 답변을 기록하지 않고 질문 수, 지연 시간, 토큰 사용량만 저장해요.
curl https://miyang.cn/api/v1/decisions \ -H "Authorization: Bearer miyang-xxx" \ -H "Content-Type: application/json" \ -d '{ "model": "miyang/jev-1.13", "state": {"dialog": "사용자가 일반적인 기술 질문을 했어요"}, "questions": { "remember": { "type": "noul", "instructions": "이 대화에 장기 보관할 가치가 있는 정보가 있나요?", "criteria": { "true": "안정적인 신원, 장기 선호 또는 명시적인 관계 사건", "false": "일회성 작업, 일반 질의응답 또는 가벼운 대화" } } } }'
{
"model": "miyang/jev-1.13",
"provider": "miyang",
"answers": {
"remember": {
"type": "noul",
"noul": 0.02
}
}
}
OpenAI 호환 이미지 생성 엔드포인트예요. 텍스트 프롬프트로 이미지를 만들고 URL 또는 Base64를 반환하며, OpenAI Images API와 완전히 호환돼요.
| 매개변수 | 유형 | 설명 |
|---|---|---|
| model 필수 | string | 모델 ID, 형식 provider/model, 예: ts/gpt-image-2 |
| prompt 필수 | string | 이미지 설명 텍스트 |
| n | integer | 생성할 이미지 수. 기본값 1, 여러 장 가능 |
| size | string | 이미지 크기. 자주 쓰는 값: 1024x1024(정사각), 1024x1536(세로), 1536x1024(가로), auto(모델이 선택). 긴 변 최대 3840px, 양쪽은 16의 배수, 장단비는 3:1 이하 |
| quality | string | 렌더 품질: low(빠른 초안), medium, high, auto(기본, 모델이 선택) |
| output_format | string | 출력 형식: png(기본), jpeg(더 빠름), webp |
| output_compression | integer | 압축률 0–100. JPEG / WebP만 적용돼요 |
| background | string | opaque(기본) 또는 transparent(투명 배경, 아이콘/스티커에 적합) |
| moderation | string | 콘텐츠 검열: auto(기본) 또는 low(느슨함) |
기본 예제 — 텍스트-이미지:
curl https://miyang.cn/api/v1/images/generations \ -H "Authorization: Bearer miyang-xxx" \ -H "Content-Type: application/json" \ -d '{ "model": "ts/gpt-image-2", "prompt": "A children'\''s book drawing of a veterinarian listening to the heartbeat of a baby otter", "size": "1024x1024", "quality": "high" }'
from openai import OpenAI import base64 client = OpenAI( api_key="miyang-xxx", base_url="https://miyang.cn/api/v1", timeout=180.0, # 图像生成需要较长超时 ) result = client.images.generate( model="ts/gpt-image-2", prompt="A children's book drawing of a veterinarian listening to the heartbeat of a baby otter", size="1024x1024", quality="high", ) print(result.data[0].url)
고급 예제 — JPEG 출력 + 압축 + 로컬 저장:
import httpx, json, base64 resp = httpx.post( "https://miyang.cn/api/v1/images/generations", headers={"Authorization": "Bearer miyang-xxx"}, json={ "model": "ts/gpt-image-2", "prompt": "A serene Japanese garden with a koi pond", "size": "1536x1024", "quality": "medium", "output_format": "jpeg", # jpeg 比 png 更快 "output_compression": 80, # 压缩率 0-100 }, timeout=180.0, ) data = resp.json() print(data["data"][0]["url"])
// 响应示例 { "created": 1779691963, "data": [ { "url": "https://image.token-recyclebin.com/images/2026/05/25/xxx.png", "revised_prompt": "A serene Japanese garden with a koi pond..." } ] }
크기와 품질 참고
| 매개변수 | 선택값 | 설명 |
|---|---|---|
| size | 1024x1024(정사각)1536x1024(가로)1024x1536(세로)2048x2048(2K)3840x2160(4K 가로)auto | 긴 변 ≤ 3840px, 양쪽은 16의 배수, 비율 ≤ 3:1, 총 픽셀 655,360 – 8,294,400 |
| quality | low · medium · high · auto | low가 가장 빠르고 초안·반복에 좋아요. high가 가장 정밀하고 최종 출력에 좋아요 |
| output_format | png · jpeg · webp | jpeg가 png보다 빨라서 지연에 민감한 상황에 우선 사용해요 |
GPT Image 2 참고 가격(크레딧(米粒) / 장)
| Quality | 1024×1024 | 1024×1536 / 1536×1024 |
|---|---|---|
| Low | 6 크레딧(米粒) | 5 크레딧(米粒) |
| Medium | 53 크레딧(米粒) | 41 크레딧(米粒) |
| High | 211 크레딧(米粒) | 165 크레딧(米粒) |
OpenAI 호환 이미지 편집 엔드포인트예요. 참조 이미지를 한 장 이상 올리고 텍스트 프롬프트로 새 이미지를 만들어요. 부분 편집(mask)과 여러 장 합성을 지원하며, 요청은 multipart/form-data 형식이에요.
대표 사용 예:
- 스타일 변환 — 사진 업로드 + "유화 스타일로 바꿔 주세요"
- 여러 장 합성 — 여러 소재 업로드 + "이 물건들이 들어간 선물 바구니를 만들어 주세요"
- 부분 편집 — 원본 + mask + "마스크 영역에 플라밍고를 추가해 주세요"
| 매개변수 | 유형 | 설명 |
|---|---|---|
| model 필수 | string | 모델 ID, 예: ts/gpt-image-2 |
| image 필수 | file / file[] | 참조 이미지. 한 장은 image, 여러 장은 image[]( image[]=@file.png를 여러 번) |
| prompt 필수 | string | 편집 지시 설명 |
| mask | file | 마스크 이미지(알파 채널 필요). 투명 영역이 편집 대상이에요. 여러 장일 때 mask는 첫 장에 적용돼요 |
| n | integer | 생성 수, 기본값 1 |
| size | string | 출력 크기. 기본값 auto. Generations와 같은 크기 옵션을 지원해요 |
| quality | string | low · medium · high · auto |
한 장 편집 — 스타일 변환:
curl https://miyang.cn/api/v1/images/edits \ -H "Authorization: Bearer miyang-xxx" \ -F "model=ts/gpt-image-2" \ -F "prompt=Turn this photo into a Studio Ghibli style illustration" \ -F "image=@photo.png" \ -F "size=1536x1024"
from openai import OpenAI client = OpenAI( api_key="miyang-xxx", base_url="https://miyang.cn/api/v1", timeout=180.0, ) result = client.images.edit( model="ts/gpt-image-2", image=open("photo.png", "rb"), prompt="Turn this photo into a Studio Ghibli style illustration", ) print(result.data[0].url)
여러 장 합성 — 여러 소재를 한 장으로:
# 多图参考:用 image[] 传多张 curl https://miyang.cn/api/v1/images/edits \ -H "Authorization: Bearer miyang-xxx" \ -F "model=ts/gpt-image-2" \ -F "image[]=@lotion.png" \ -F "image[]=@soap.png" \ -F "image[]=@candle.png" \ -F 'prompt=A gift basket on a white background containing all these items'
부분 편집 — mask 사용:
# mask 需要有 alpha 通道,透明区域为编辑区 result = client.images.edit( model="ts/gpt-image-2", image=open("room.png", "rb"), mask=open("mask.png", "rb"), prompt="Add a flamingo in the pool area", quality="high", ) print(result.data[0].url)
비동기 비디오 생성 엔드포인트예요. 생성 요청이 성공하면 task_id를 반환해요. 같은 요청을 다시 보내지 말고 조회 엔드포인트로 상태를 확인해 주세요.
miyang/h3, miyang/h3-max예요.
| 매개변수 | 유형 | 설명 |
|---|---|---|
| model 필수 | string | miyang/h3 또는 miyang/h3-max |
| content 필수 | array | 정확히 하나의 비어 있지 않은 텍스트를 포함하는 멀티모달 배열이며 이미지, 비디오, 오디오를 함께 넣을 수 있어요 |
| duration 필수 | integer | 출력 길이(초). H3는 4–15초, H3 Max는 5–15초를 지원해요 |
| resolution | string | 기본값 768P. H3는 768P / 2K, H3 Max는 480P / 768P를 지원해요 |
| ratio | string | 화면 비율: 21:9, 16:9, 4:3, 1:1, 3:4, 9:16. 참조 미디어는 adaptive를 사용할 수 있어요 |
| aigc_watermark | boolean | AIGC 워터마크 추가 여부 |
| extra | object | H3 Max 전용. prompt_expansion_mode는 disabled, balanced, quality 중 하나예요 |
content 미디어 형식
| type | role | 설명 |
|---|---|---|
| text | — | 정확히 한 개가 필요하며 최대 7,000자예요 |
| image_url | first_frame / last_frame / reference_image | 첫 프레임, 마지막 프레임 또는 참조 이미지. role이 없는 이미지 한 장은 첫 프레임으로 처리돼요 |
| video_url | reference_video | 참조 비디오, 최대 3개. role이 필요해요 |
| audio_url | reference_audio | 참조 오디오, 최대 3개. role이 필요해요 |
curl https://miyang.cn/api/v1/videos/generations \ -H "Authorization: Bearer miyang-xxx" \ -H "Idempotency-Key: alice-video-001" \ -H "Content-Type: application/json" \ -d '{ "model": "miyang/h3", "content": [ {"type": "text", "text": "A lamb runs across a sunlit meadow"} ], "duration": 5, "resolution": "768P", "ratio": "16:9" }'
{
"task_id": "443429054845209"
}
사용자 과금
표는 정확한 CNY 기준 가격이에요. 크레딧(米粒)은 CNY price ÷ CNY-per-USD rate × 1000로 계산해요.
| 모델 | 과금 항목 | 사용자 가격 |
|---|---|---|
| miyang/h3 | 출력 비디오 · 768P | ¥1.25 / s |
| miyang/h3 | 출력 비디오 · 2K | ¥2.0 / s |
| miyang/h3 | 참조 비디오 입력 · 768P | ¥1.25 / s |
| miyang/h3 | 참조 비디오 입력 · 2K | ¥2.0 / s |
| miyang/h3 | 참조 이미지 입력(처음 5장은 무료, 초과분만 과금) | ¥0.5 / 장 |
| miyang/h3-max | 출력 비디오 · 480P | ¥0.825 / s |
| miyang/h3-max | 출력 비디오 · 768P | ¥1.25 / s |
| miyang/h3-max | 참조 비디오 입력 · 480P | ¥0.925 / s |
| miyang/h3-max | 참조 비디오 입력 · 768P | ¥2.425 / s |
| miyang/h3-max | 참조 이미지 입력(처음 2장은 무료, 초과분만 과금) | ¥1.25 / 장 |
| — | 참조 오디오 입력 | 무료 |
생성 시 받은 task_id로 조회해요. 상태는 queued, running, succeeded, failed, cancelled 중 하나예요. 5–15초 간격으로 조회하는 것을 권장해요.
curl https://miyang.cn/api/v1/videos/generations/443429054845209 \
-H "Authorization: Bearer miyang-xxx"
{
"task": {
"status": "succeeded",
"resolution": "768P",
"duration": 5,
"content": {
"url": "https://signed.example/video.mp4",
"drive_file_id": "drv-xxx",
"size_bytes": 1757278,
"expires_in": 3600
}
}
}
처리 중인 작업을 취소하고 과금 보류를 해제해요. 연결된 Miyang Drive 파일도 함께 삭제돼요. 완료된 작업을 업스트림에서 취소할 수 없는 경우 엔드포인트 응답을 따라 주세요.
curl -X DELETE https://miyang.cn/api/v1/videos/generations/443429054845209 \
-H "Authorization: Bearer miyang-xxx"
에이전트와 앱에 실시간 웹 기능을 제공해요: 웹 검색, 뉴스 검색, 페이지 본문 읽기. 모두 GET이며 추론과 같은 API 키로 인증해요(Authorization: Bearer miyang-xxx).
| 엔드포인트 | 매개변수 | 설명 |
|---|---|---|
| /api/v1/websearch/search | q | 심층 검색: 결과에 페이지 본문 추출과 재정렬 컨텍스트가 있어 RAG에 좋아요 |
| /api/v1/websearch/simple-search | q | 빠른 검색: 제목과 요약만 반환하며 더 빨라요 |
| /api/v1/websearch/reader | url | 페이지 읽기: 지정 URL을 가져와 깨끗한 텍스트로 변환해요 |
| /api/v1/websearch/search-news | q | 뉴스 검색: 최근 뉴스 소스만 검색하며 결과에도 검색 컨텍스트가 있어요 |
전체 파이프라인: 검색 → 페이지 추출 → 벡터 검색 → 재정렬. 각 결과에 contexts 본문 조각이 있어 모델에 바로 넣어 인용 답변을 만들 수 있어요. 응답은 보통 3–8초예요.
| 매개변수 | 유형 | 설명 |
|---|---|---|
| q 필수 | string | 검색 키워드 |
curl "https://miyang.cn/api/v1/websearch/search?q=最新AI新闻" \ -H "Authorization: Bearer miyang-xxx"
// 响应示例 { "code": 200, "message": "ok", "took_ms": 4200, "data": { "organic": [ { "title": "AI News", "link": "https://example.com", "snippet": "Latest updates...", "contexts": [ { "idx": 0, "text": "..." } ] } ] } }
검색만 하고 페이지 추출·재정렬은 하지 않아요. 보통 1초 안에 돌아와요. 제목 + 요약 + 링크만 필요할 때 쓰면 좋아요. 답변 카드에 히트하면 응답에 answerBox 필드가 추가로 들어가요.
| 매개변수 | 유형 | 설명 |
|---|---|---|
| q 필수 | string | 검색 키워드 |
curl "https://miyang.cn/api/v1/websearch/simple-search?q=最新AI新闻" \ -H "Authorization: Bearer miyang-xxx"
// 响应示例 { "code": 200, "message": "ok", "took_ms": 950, "data": { "answerBox": { "title": "Latest AI news", "snippet": "..." }, "organic": [ { "title": "AI News", "link": "https://example.com", "snippet": "Latest updates..." } ] } }
대상 페이지 URL을 이미 알 때 페이지를 가져와 깨끗한 Markdown으로 변환해요. 이 엔드포인트는 최상위 content를 반환하며 data가 아니에요.
| 매개변수 | 유형 | 설명 |
|---|---|---|
| url 필수 | string | 읽을 웹페이지 주소. http:// 또는 https://로 시작해야 해요 |
curl "https://miyang.cn/api/v1/websearch/reader?url=https://go.dev" \ -H "Authorization: Bearer miyang-xxx"
// 响应示例(content 为页面正文) { "code": 200, "message": "ok", "content": "# The Go Programming Language\n\nGo is an open source programming language..." }
최근 뉴스 소스만 검색해요. 나머지 파이프라인은 심층 검색과 같고, 결과에도 contexts 본문 조각이 있어요.
404를 반환해요(본문 {"code": 404, "message": "no search results"}). 정상적인 업무 결과이며 차감하지 않아요.
| 매개변수 | 유형 | 설명 |
|---|---|---|
| q 필수 | string | 뉴스 검색 키워드 |
curl "https://miyang.cn/api/v1/websearch/search-news?q=OpenAI" \ -H "Authorization: Bearer miyang-xxx"
// 响应示例 { "code": 200, "message": "ok", "took_ms": 4200, "data": { "organic": [ { "title": "Latest OpenAI news", "link": "https://example.com/news", "snippet": "Recent product and research updates...", "contexts": [ { "idx": 0, "text": "..." } ] } ] } }
요청 본문에 "stream": true을 넣으면 스트리밍이 켜져요. 응답 형식은 OpenAI SSE 규격과 완전히 호환돼요. 스트림 종료 표시는 data: [DONE]이에요.
from openai import OpenAI client = OpenAI( api_key="miyang-xxx", base_url="https://miyang.cn/api/v1", ) stream = client.chat.completions.create( model="miyang/auto", messages=[{"role": "user", "content": "Hello!"}], stream=True, ) for chunk in stream: print(chunk.choices[0].delta.content, end="")
response_format 필드를 그대로 전달하며 JSON Schema를 지원해요. 출력 형식은 업스트림 모델이 보장하고, 플랫폼은 추가로 가공하지 않아요.
{
"model": "miyang/auto",
"messages": [...],
"response_format": {
"type": "json_schema",
"json_schema": {
"name": "result",
"schema": {
"type": "object",
"properties": {
"answer": { "type": "string" }
}
}
}
}
}
Prompt Cache를 지원하는 모델은 업스트림이 반환한 캐시 히트 토큰을 할인 요금으로 과금해요. 플랫폼은 업스트림 usage 필드를 그대로 전달하고, 청구서에 캐시 히트량이 보여요.
공급업체마다 필드 이름이 달라요:
cache_read_input_tokens— Anthropicprompt_cache_hit_tokens— DeepSeekcached_tokens— OpenAI
{
"usage": {
"prompt_tokens": 1000,
"completion_tokens": 200,
"cache_read_input_tokens": 800, // Anthropic
"prompt_cache_hit_tokens": 800, // DeepSeek
"cached_tokens": 800 // OpenAI
}
}
base_url과 api_key만 바꾸면 OpenAI SDK로 호출할 수 있어요.
from openai import OpenAI client = OpenAI( api_key="miyang-xxx", base_url="https://miyang.cn/api/v1", ) resp = client.chat.completions.create( model="miyang/auto", messages=[{"role": "user", "content": "Hello!"}], ) print(resp.choices[0].message.content)
# 非流式 curl https://miyang.cn/api/v1/chat/completions \ -H "Authorization: Bearer miyang-xxx" \ -H "Content-Type: application/json" \ -d '{ "model": "miyang/auto", "messages": [{"role": "user", "content": "Hello"}] }' # 流式 curl https://miyang.cn/api/v1/chat/completions \ -H "Authorization: Bearer miyang-xxx" \ -H "Content-Type: application/json" \ -d '{ "model": "miyang/auto", "messages": [{"role": "user", "content": "Hello"}], "stream": true }'