AI 공동 진행자 가이드

도크 제어, 비공개 채팅 봇, AI 무대 오버레이가 함께 작동하는 방식을 설명합니다.

기능

공동 진행자에는 두 가지 작업 흐름이 있습니다. 연속 음성 대화 상대는 다음에서 사용합니다: cohost.html및 승인한 문장을 다음으로 보내는 수동 도크 동작: cohost-overlay.html.

도크 제어

무대 오버레이가 연결되면 도크의 채팅 메시지를 마우스 오른쪽 버튼으로 클릭하고 다음을 선택하세요: 공동 진행자(Co-host). 도크에서 메시지를 읽거나, AI 답변을 요청하거나, 가벼운 놀림 답변 초안을 만들 수 있습니다.

AI 무대 오버레이

오버레이에는 아바타, 말풍선, 선택적 브라우저 음성 읽기 오디오가 표시됩니다. OBS에 추가할 브라우저 소스는 이 오버레이입니다.

비공개 챗봇

Answer와 Light Roast는 비공개 채팅 봇 브리지를 통해 설정된 LLM 제공자를 사용합니다. Read는 AI가 필요하지 않습니다.

멀티모달 공동 진행자

cohost.html 은 같은 값으로 열면 SSN 실시간 채팅 피드에 연결됩니다: session. 기본 문맥 전용 모드에서는 AI가 최근 시청자 메시지를 기억하고 진행자가 물었을 때 그 내용을 이야기합니다.

도크 오른쪽 클릭 공동 진행자 설정

  1. 세션을 사용해 스트리밍 채팅 도크를 여세요: dock.html?session=YOUR_SESSION_ID.
  2. AI 무대 오버레이를 OBS에 추가합니다: cohost-overlay.html?session=YOUR_SESSION_ID. 다음을 추가합니다: &tts 는 텍스트 응답 작업 흐름에만 사용하세요.
  3. AI 답변을 사용하려면 팝업에서 LLM 제공자를 설정하세요. 빠른 테스트에는 다음을 선택합니다: SSN Hosted Trial LLM이며 다음을 사용합니다: llm.socialstream.ninja.
  4. 활성화 Chat Bots and AI services > Chat Bot - Private Interface > Enable private chat bot option.
  5. 도크 메시지를 마우스 오른쪽 버튼으로 클릭하고 다음을 선택하세요: 공동 진행자(Co-host). 무대 오버레이가 감지되기 전에는 메뉴가 숨겨져 있습니다. 도크 메시지 행의 이 메뉴는 아직 키보드로 접근할 수 없습니다. 키보드 사용자는 다음 페이지의 텍스트 입력란이나 음성 제어를 사용할 수 있습니다: cohost.html.
미디어 장치, AI 제공자 설정, 시스템 지침, 실시간 채팅 상태를 보여주는 cohost.html 제어 페이지
다음 항목: cohost.html 제어 페이지에서 카메라와 마이크를 고르고 AI 제공자를 선택한 다음 시스템 지침을 설정하고 실시간 채팅 상태 패널을 확인하세요.

팁: 동일한 값을 사용하세요: session 값을 도크와 공동 진행자 오버레이에서 동일하게 사용하세요. &tts 은 텍스트 오버레이 작업 흐름에 적용됩니다. 컨트롤러의 기본 오디오가 활성화되면 SSN은 중복 오버레이 음성 읽기를 억제합니다. &forcetts 는 이 보호 기능을 명시적으로 무시합니다.

간단한 AI 옵션

llm.socialstream.ninja 은 다음에서 사용할 수 있습니다: SSN Hosted Trial LLM 를 체험판 제공 기간에 간단한 무료 테스트 옵션으로 사용하세요.

  • 열기 Chat Bots and AI services > Configure LLM Service Provider.
  • 선택: SSN Hosted Trial LLM(실험적).
  • 기본 체험 설정을 사용하려면 엔드포인트, 토큰, 모델을 비워 두세요.
  • 장기간 사용 중 체험 서비스가 비활성화되거나 사용량 제한에 걸리면 자신의 토큰이나 로컬 제공자를 사용하세요.

음성 대화 지원

  • OpenAI Realtime: 다음에서 선택한 마이크를 스트리밍합니다: cohost.html 을 OpenAI에 직접 보내 하나의 기본 음성 간 대화를 진행합니다. 음성 대화와 실시간 채팅 맥락은 같은 공동 진행자 세션 안에 유지됩니다.
  • SSN 데스크톱: 다음에서 선택한 마이크로 로컬 Whisper를 사용합니다: cohost.html. 처음 사용할 때 약 42 MB를 다운로드하며 이후 음성 인식은 오프라인으로 실행됩니다.
  • Chrome / Chrome 확장 프로그램 링크: 확장 프로그램은 Chrome 탭에서 호스팅된 공동 진행자 페이지를 엽니다. OpenAI Realtime은 수명이 짧은 클라이언트 비밀 키와 함께 WebRTC를 사용합니다. 텍스트 응답 제공자는 Chrome 음성 인식을 사용하며 인터넷 연결이 필요할 수 있습니다.
  • 다른 브라우저: 음성 인식 작동은 보장되지 않습니다. 음성 인식 없이도 입력한 공동 진행자 채팅, 실시간 채팅 입력, 카메라/화면 입력, 설정된 LLM의 응답은 작동할 수 있습니다.

OpenAI Realtime을 사용하면 진단에 다음이 표시되어야 합니다: 듣는 중(OpenAI WebRTC). Desktop Whisper를 사용하면 다음이 표시되어야 합니다: 듣는 중(Desktop Whisper) 그리고 인식된 텍스트는 다음 아래에 표시됩니다: 인식한 내용(Heard).

개인정보 보호: 선택한 마이크, 명시적으로 선택한 카메라/화면 프레임, 선택한 실시간 채팅 모드에서 공유하는 시청자 메시지는 해당 AI 제공자에게 전송됩니다. 시청자 메시지는 신뢰할 수 없는 맥락으로 취급되며 공동 진행자 도구 사용을 승인할 수 없습니다. 팝업에서 생성된 공동 진행자 컨트롤러 링크를 열고 비공개로 유지하세요. 이 비공개 권한은 12시간 후 만료되며 현재 SSN 세션으로 범위가 제한되고, 페이지가 로드되면 주소 표시줄에서 제거됩니다.

OpenAI Realtime 설정

  1. SSN 팝업에서 다음을 선택합니다: ChatGPT API를 선택하고 OpenAI 프로젝트 API 키를 추가한 뒤 다음을 사용합니다: 선택한 챗봇 테스트.
  2. 생성된 링크를 여세요: cohost.html?session=YOUR_SESSION_ID 링크를 팝업에서 여세요. 이 링크의 비공개 공동 진행자 권한은 만료 시간이 있으며, 별도의 비공개 챗봇 옵션을 활성화하지 않아도 Realtime 사용을 승인합니다.
  3. 선택: OpenAI Realtime. 일반 API 키는 SSN 확장 프로그램·데스크톱 앱의 백그라운드에 보관되며, 공동 진행자 페이지에는 수명이 짧은 Realtime 클라이언트 시크릿만 전달됩니다.
  4. 사용할 마이크를 명시적으로 선택하고 다음 설정을 유지합니다: 음성 응답(Audio Response) 을 선택한 상태에서 다음을 누르세요: 공동 진행자 시작.
  5. 선택 사항: 영상 소스를 다음으로 두세요: 영상 없음 (기본값)을 사용하거나 다음을 명시적으로 선택합니다: 화면 공유 또는 카메라를 선택하세요. OpenAI는 연속 영상 대신 직접 말하거나 입력한 요청마다 현재 이미지 한 장을 받습니다. 이로 인해 API 비용과 지연 시간이 늘어날 수 있습니다.
  6. Live Chat을 다음으로 설정해 둡니다: 문맥만 — 요청받으면 답변. ‘채팅에서 무슨 이야기를 하고 있어?’라고 물으면 같은 음성 AI가 최근 시청자 메시지를 설명해 줍니다.
  7. 공동 진행자 브라우저·앱의 오디오를 OBS에서 캡처하세요. OpenAI 기본 음성은 다음에서만 재생됩니다: cohost.html; cohost-overlay.html 는 아바타와 텍스트를 받으며 같은 오디오 스트림을 받지는 않습니다. 지원되는 경우 다음에서 가상 케이블을 선택하세요: 공동 진행자 출력 를 사용해 OBS 오디오를 별도로 라우팅하세요.
  8. AI 답변을 소리로만 제공하지 않도록 무대 오버레이의 말풍선을 표시하거나 자막을 제공하세요.

이 기능은 OpenAI API 요금을 사용하고 WebRTC를 통해 하나의 SSN Realtime 대화를 생성하며, 다음과는 별개입니다: chatgpt.com. 답변은 출력 토큰 512개로 제한됩니다. Diagnostics에서 누적 토큰 사용량과 첫 출력까지 측정된 지연 시간을 확인할 수 있습니다. 진행자가 말을 끊으면 OpenAI가 아직 재생되지 않은 오디오를 자동으로 잘라냅니다. SSN은 유료 후원, 회원, 관리자, 이벤트, 소스 채널 문맥을 포함한 최근 채팅 메시지를 최대 20개, 90초까지 보관한 뒤 임시 문맥을 지웁니다. SSN은 조용한 세션을 점검하고 연결 실패 시 다시 연결하며, 60분 제한 전에 새 세션으로 전환합니다. 복구된 세션에는 시스템 지침과 성능 설정을 다시 적용하지만 이전 음성 대화는 이어받지 않습니다.

OpenAI 속도, 품질, 비용

  • 모델: Mini는 일반적으로 더 빠르고 비용이 적습니다. Full quality는 기능이 더 뛰어나지만 비용이 더 듭니다.
  • 추론 노력: Minimal이나 Low는 일반적으로 응답 지연과 과금되는 출력 사용량을 줄입니다. High나 Extra high는 복잡한 답변을 개선할 수 있지만 더 느리고 비쌀 수 있습니다. 연결된 상태에서도 변경 사항이 적용됩니다.
  • 발화 전환 속도: Fast는 생각이 끝나기를 최대 약 2초, Balanced는 약 4초, Patient는 약 8초 기다립니다. Fast는 더 빠르게 반응하지만 자연스러운 말 사이의 쉼을 끊을 수 있습니다.
  • 진단(Diagnostics): Latency는 대화 차례가 끝난 시점부터 첫 텍스트나 오디오가 나올 때까지의 시간을 표시하며, 가능하면 모델 지연을 별도로 구분합니다. 비슷한 요청이어도 네트워크 상태와 제공자 부하에 따라 달라질 수 있습니다.

선택적 방송 제어

OpenAI Realtime은 아래의 Spotify, OBS 장면, 채팅 강조 표시 도구를 지원합니다. SSN Configured LLM은 현재 Spotify만 지원하며, 다른 공동 진행자 제공자는 아직 이 도구들을 제공하지 않습니다.

  1. SSN 팝업에서 원하는 공동 진행자 도구만 활성화하세요. Spotify, OBS 장면, 선택한 채팅 표시 중에서 고릅니다.
  2. OBS에는 허용할 장면 이름을 정확히 입력하고 쉼표로 구분합니다. 다음을 유지하세요: actions.html 를 OBS에 연결하거나 전체 권한을 가진 OBS 브라우저 소스를 사용하세요.
  3. 켜짐 cohost.html를 선택하고 다음을 엽니다: 공동 진행자의 방송 제어 그리고 해당 컨트롤러에서 같은 도구들을 사용 준비 상태로 설정하세요.
  4. ‘BRB로 전환해 줘’, ‘마지막 메시지를 띄워 줘’, ‘선택한 채팅을 지워 줘’처럼 직접 요청하세요. 시청자 메시지로는 도구 사용을 승인할 수 없으며, 진행자의 직접 요청 한 번당 방송을 변경하는 도구는 하나만 실행됩니다.

도구 접근은 허용 목록으로 제한되며 일반 API 접근 권한이 아닙니다. OBS는 SSN 설정에 지정된 장면만 선택할 수 있습니다. 채팅 강조 표시 요청은 최근 캡처된 채팅 메시지를 사용하며 스트리밍 채팅 도크가 필요합니다. 도구 응답은 전달 여부를 알려줄 뿐, OBS나 오버레이가 동작을 완료했다는 증거는 아닙니다.

페이지 간 통신 방식

도크와 오버레이는 기존 Social Stream 세션 브리지를 사용합니다. 메시지는 다음 형식으로 전송됩니다: overlayNinja 페이로드로 전송되며 라벨로 대상이 지정됩니다.

공동 진행자로 읽기: 도크는 선택한 채팅 메시지를 다음으로 직접 보냅니다: cohost-overlay.html.

답변 / 가벼운 놀림(Answer / Light Roast): 도크는 SSN 백그라운드 서비스에 비공개 챗봇 요청을 보내고 AI 초안을 도크에 표시한 뒤, 방송자가 말하기를 클릭해야 오버레이로 전송합니다.

{
  "action": "cohostOverlay",
  "target": "cohost-overlay",
  "meta": {
    "command": "say",
    "text": "The line the avatar should say",
    "speak": true,
    "emotion": "happy"
  }
}

사용 가능한 동작

동작 필요 항목: 결과
공동 진행자로 읽기 연결됨(Connected) cohost-overlay.html 선택한 채팅 메시지를 오버레이에서 읽습니다.
답변(Answer) 비공개 챗봇 + 설정된 LLM 또는 호스팅 체험 LLM 진행자가 승인할 짧은 답변 초안을 만듭니다.
가벼운 놀림(Light Roast) 비공개 챗봇 + 설정된 LLM 또는 호스팅 체험 LLM 진행자가 승인할 짧고 장난스러우며 온 가족이 볼 수 있는 초안을 만듭니다.
말하기 승인 패널의 초안 승인한 텍스트를 AI 무대 오버레이로 보냅니다.
복사 승인 패널의 초안 오버레이에 보내지 않고 초안을 복사합니다.

상태 및 문제 해결

  • Co-host 메뉴가 없으면 같은 세션에서 공동 진행자 오버레이가 감지되지 않은 것입니다.
  • Answer나 Light Roast가 비활성화되어 있다면 SSN 브리지 또는 비공개 채팅 봇을 사용할 수 없는 상태입니다.
  • 기본 챗봇 오버레이 스위치는 선택 사항이며 도크의 마우스 오른쪽 버튼 공동 진행자 동작을 활성화하지 않습니다.
  • 다음 경우: cohost.html 에 채팅이 표시되지 않으면 URL에 같은 값이 있는지 확인하세요: session 이 팝업과 같은지, 실시간 채팅이 Context, Questions 또는 All로 설정되어 있는지 확인하세요.
  • 문맥만(Context only) 은 현재 OpenAI Realtime을 사용할 때만 채팅을 AI와 공유합니다. 다른 제공자는 피드를 모니터링하지만 모델에 삽입하지는 않습니다.
  • 마이크 음소거 은 공동 진행자에게 보내는 오디오를 중지합니다. 공동 진행자 음성 음소거, 음량 슬라이더, 출력 장치 선택기, 다음 항목: 말하기 중지 로 재생을 제어합니다. 공유 시스템 오디오 음소거 은 별도 항목이며 화면을 지원하는 제공자에서 표시됩니다.
  • 방송 제어 도구를 사용할 수 없다면 SSN 팝업과 다음 두 곳에서 활성화하세요: 공동 진행자의 방송 제어. OBS는 허용 목록에 정확한 장면 이름이 최소 하나 있어야 합니다.
  • 사용: 오버레이 테스트 를 사용해 무해한 테스트 문구를 표시하고 OBS의 AI 무대 오버레이에 나타나는지 확인하세요.
  • 공동 진행자가 채팅 내용을 알지만 말하지 않는다면 다음 모드에서는 정상입니다: 문맥만(Context only): 채팅 내용을 물어보세요. Questions나 All 모드는 공동 진행자 페이지에서 자동 답변을 음성으로 재생하며, YouTube·Twitch·Kick 채팅에 게시하지는 않습니다.
  • 데스크톱 앱에 다음이 표시되면: 듣는 중(Desktop Whisper) 하지만 다음 값은 채우지 않습니다: 인식한 내용(Heard)을 확인하고 선택한 마이크가 음소거되지 않았는지 확인한 뒤 첫 모델 다운로드가 끝날 때까지 기다리세요.
  • Chrome에서 다음 항목이 채워지지 않으면: 인식한 내용(Heard)을 확인하고 마이크 권한을 허용하세요. 운영체제의 기본 마이크와 인터넷 연결을 확인하고 Chrome 음성 인식을 사용할 수 있는지 확인합니다.
  • OpenAI Realtime의 텍스트는 나타나지만 소리가 나지 않으면 다음을 확인합니다: 음성 응답(Audio Response), 브라우저 오디오 권한, OBS의 브라우저·앱 오디오 캡처를 확인하세요. 다음을 사용합니다: &tts 는 별도의 텍스트 오버레이 작업 흐름에만 사용하세요.
  • OpenAI Realtime 답변이 느리면 Mini, Low 추론, Fast 대화 전환을 사용해 보고 Diagnostics의 Latency 항목을 비교하세요. 더 높은 추론 수준과 Patient 대화 전환은 속도 대신 깊이 있는 답변이나 긴 쉼을 선택하는 설정입니다.
  • OpenAI Realtime 연결이 끊기면 재시도하는 동안 공동 진행자를 계속 실행하세요. Diagnostics에서 데이터, 피어, 제공자, 상태 확인 중 무엇이 실패했는지 알 수 있습니다. 복구된 세션은 선택한 시스템 지침과 성능 설정을 유지하지만 이전 음성 대화는 복구하지 못합니다.
  • Answer, Light Roast, SSN Configured LLM 요청이 시간 초과되면 Social Stream이 켜져 있는지, 세션이 같은지, 비공개 채팅 봇이 활성화되어 있는지, 선택한 LLM 제공자에 접근할 수 있는지 확인하세요. OpenAI Realtime에는 비공개 채팅 봇이 필요하지 않습니다.
  • Local Gemma가 기본 리소스 호스트에서 모델 파일을 다운로드하지 못하면, 리소스 호스트를 직접 미러링한 Gemma 폴더로 설정하세요.
  • 호스팅 체험 AI가 응답하지 않으면 서비스가 비활성화되었거나 사용량 제한에 걸렸을 수 있습니다. 자신의 토큰, Ollama, Custom API로 전환하세요.
  • 오버레이를 여러 개 열었다면 오버레이 라벨이 도크 대상과 일치하는지 확인하세요. 기본 라벨은 다음과 같습니다: cohost-overlay.

유용한 URL 매개변수

  • session=YOUR_SESSION_ID - 도크와 오버레이가 같은 방을 공유하는 데 필요합니다.
  • tts 또는 speak=1 - 오버레이가 브라우저 TTS로 말하도록 합니다.
  • forcetts - 공동 진행자 제어 페이지가 이미 오디오를 재생 중이어도 오버레이 TTS를 허용합니다. 의도적으로 두 번째 음성을 만듭니다.
  • label=cohost-overlay - 오버레이 대상 라벨을 설정합니다.
  • name=NinjaBot - 오버레이의 표시 이름을 설정합니다.
  • avatar=https://... - 사용자 지정 아바타 이미지를 사용합니다.
  • position=bottom-right - 무대의 위치를 조정합니다.
  • scale=1.2 - 오버레이 크기를 조절합니다.
  • status - 오버레이에 연결·상태 텍스트를 표시합니다.

설계 설명

  • 도크·수동 텍스트 작업에서는 오버레이가 화면 표시와 선택적 TTS 재생을 담당합니다. OpenAI 기본 음성을 사용한다면 다음의 오디오를 캡처하세요: cohost.html 오디오는 별도로 처리하세요. 무대 오버레이는 같은 WebRTC 오디오를 다시 재생하지 않습니다.
  • 도크가 제어 화면이므로 방송자의 승인 과정은 방송에 표시되지 않습니다.
  • 생성된 답변은 자동으로 읽지 않으며, 진행자가 먼저 승인해야 합니다.
  • 표준 이외의 명령 세부 정보는 다음 안에 들어갑니다: meta에 넣어 오버레이와 자동화에서 일관되게 처리할 수 있도록 합니다.