API·추론 (단일/멀티 이미지·영상·스트리밍)
API·추론 (단일/멀티 이미지·영상·스트리밍)
MiniCPM 시리즈는 단순한 채팅 추론부터 실시간 전이중 음성 인터랙션까지 다양한 추론 방식을 지원해요. 최근에는 4.6 / 4.5 모델용 API 서비스와 공개 무료 API 키도 제공돼요.
Omni(전이중) 추론을 쓰려면 omni_mode=True를 켜고, 음성 출력을 원하면 generate_audio=True와 output_audio_path를 지정하면 돼요. 스트리밍 추론은 streaming_prefill / streaming_generate로 세션 단위 KV 캐시를 관리해요.
Omni 추론 예시
msg = {"role": "user", "content": omni_contents}
msgs = [sys_msg, msg]
generate_audio = True
output_audio_path = "output.wav"
res = model.chat(
msgs=msgs,
max_new_tokens=4096,
do_sample=True,
temperature=0.7,
use_tts_template=True,
enable_thinking=False,
omni_mode=True, # Omni 추론에 필수
generate_audio=generate_audio,
output_audio_path=output_audio_path,
max_slice_nums=1, # HD 모드에서는 증가
)
print(res)
omni_mode— 전이중 추론 활성화.generate_audio+output_audio_path— TTS 음성 출력 저장.max_slice_nums— 고해상도(HD) 모드에서 슬라이스 수 증가.
스트리밍 추론
# 1단계: 시스템 프롬프트 prefill
sys_msg = model.get_sys_prompt(ref_audio=ref_audio, mode="omni", language="en")
model.streaming_prefill(session_id=session_id, msgs=[sys_msg])
# 2단계: omni 청크 prefill (마지막 오디오 청크에만 is_last_chunk=True)
model.streaming_prefill(session_id=session_id, msgs=msgs, omni_mode=True, is_last_chunk=is_last_audio_chunk)
# 3단계: 응답 생성
iter_gen = model.streaming_generate(
session_id=session_id,
generate_audio=generate_audio,
use_tts_template=True,
enable_thinking=False,
do_sample=True,
)