예: 스마트 팟캐스트 🎙#

설명

🎙️AI 팟캐스트 - M2 Max 칩에서의 다중 에이전트 음성 대화

지원 언어:

AI_Podcast.py

AI_Podcast_ZH.py

English version involves technology:

데모 기능에 대한 상세 설명:

  1. XInference를 시작하고 Wizardlm 모델과 Vicuna 모델을 배포합니다. 두 모델에 이름을 지정하고 “username”이라는 인간 사용자가 있음을 알려 채팅방을 시작합니다. 여기서 “username”은 사용자 입력으로 제공됩니다. 그런 다음 채팅방에 빈 채팅 기록을 초기화합니다.

  2. 오디오 장치를 사용하여 녹음을 파일에 저장한 후, OpenAI의 Whisper를 사용하여 파일을 사람이 읽을 수 있는 텍스트 문자열로 변환합니다.

  3. 입력된 메시지 문자열을 기반으로 사용자가 대화하고자 하는 에이전트(모델)를 확인합니다. 해당 대상 에이전트를 호출하여 사용자 입력 문자열과 채팅 기록을 입력으로 제공하고, 모델이 이에 대응하는 내용을 생성하도록 합니다.

  4. 모델의 출력이 준비되면 MacOS의 “Say” 명령을 사용하여 스피커를 통해 오디오를 생성합니다. 각 에이전트는 말할 때 고유한 목소리를 가집니다.

  5. 사용자 입력과 에이전트 응답을 채팅 기록에 저장하고, 사용자가 자신의 응답에서 “안녕”과 같은 말을 명확히 언급할 때까지 프로그램을 반복적으로 재귀 실행합니다.

Xinference의 두드러진 특징:

  1. Xinference의 분산 시스템을 활용하면 동일한 세션 및 동일한 “채팅방”에서 두 개의 다른 모델을 쉽게 배포할 수 있습니다. 충분한 리소스가 있는 경우 이 프레임워크는 동시에 임의의 수의 모델을 배포할 수 있습니다.

  2. Xinference를 사용하면 몇 줄의 코드만 추가하여 모델을 쉽게 배포할 수 있습니다. 예를 들어, 데모에서 vicuna 모델을 시작하려면 다음과 같이 하면 됩니다:

    args = parser.parse_args()
    endpoint = args.endpoint
    client = Client(endpoint)
    
    model_a = "vicuna-v1.3"
    model_a_uid = client.launch_model(
        model_name=model_a,
        model_format="ggmlv3",
        model_size_in_billions=7,
        quantization="q4_0",
        n_ctx=2048,
    )
    model_a_ref = client.get_model(model_a_uid)
    

    그런 다음 Xinference 클라이언트는 “대상 모델의 다운로드 및 캐싱”, “모델에 대한 환경 및 프로세스 설정”, “선택한 엔드포인트에서 서비스 실행”을 처리합니다. 이제 LLM 모델과 상호작용할 준비가 되었습니다.

원본 데모 영상

소스 코드