API·추론 (단일/멀티 이미지·영상·스트리밍)

API·추론 (단일/멀티 이미지·영상·스트리밍)

MiniCPM 시리즈는 단순한 채팅 추론부터 실시간 전이중 음성 인터랙션까지 다양한 추론 방식을 지원해요. 최근에는 4.6 / 4.5 모델용 API 서비스와 공개 무료 API 키도 제공돼요.

Omni(전이중) 추론을 쓰려면 omni_mode=True를 켜고, 음성 출력을 원하면 generate_audio=Trueoutput_audio_path를 지정하면 돼요. 스트리밍 추론은 streaming_prefill / streaming_generate로 세션 단위 KV 캐시를 관리해요.

출처: https://huggingface.co/openbmb/MiniCPM-V

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,
)

더 알아보기