Maxim으로 Mistral AI 관찰 가능성(Observability) 확보하기

Maxim으로 Mistral AI 관찰 가능성(Observability) 확보하기

Maxim을 사용해 Mistral LLM 호출과 메트릭을 관찰하는 방법을 보여주는 쿡북이에요. Maxim AI는 Mistral 기반 AI 애플리케이션에 종합적인 관찰 기능을 제공하며, 원라이너 통합만으로 LLM 호출과 메트릭을 쉽게 추적·분석할 수 있습니다.

장점은 크게 두 가지예요. 성능 분석(Performance Analytics)으로 지연 시간·토큰 사용량·비용을 추적할 수 있고, 고급 시각화(Advanced Visualisation)로 직관적인 대시보드에서 에이전트의 흐름을 파악할 수 있습니다.

출처: 문서

본문

이 쿡북은 Maxim을 통해 Mistral LLM 호출과 메트릭을 관찰하는 방법을 다룹니다.

모듈 설치하고 임포트하기

PyPI에서 mistralai와 maxim-py 패키지를 설치합니다.

!pip install mistralai maxim-py

환경 변수 설정하기

Maxim에 가입한 뒤 Settings에서 새 API Key를 만들고, Logs 섹션에서 새 Log Repository를 생성하면 Log Repository Id를 받을 수 있어요. Mistral API Key도 함께 준비하면 됩니다.

import os
from google.colab import userdata

MAXIM_API_KEY=userdata.get("MAXIM_API_KEY")
MAXIM_LOG_REPO_ID=userdata.get("MAXIM_REPO_ID")
MISTRAL_API_KEY=userdata.get("MISTRAL_API_KEY")

os.environ["MAXIM_API_KEY"] = MAXIM_API_KEY
os.environ["MAXIM_LOG_REPO_ID"] = MAXIM_LOG_REPO_ID
os.environ["MISTRAL_API_KEY"] = MISTRAL_API_KEY

로거 초기화하기

Maxim Logger 인스턴스를 만듭니다.

from maxim import Maxim

logger = Maxim().logger()

MaximMistralClient로 LLM 호출하기

Maxim이 제공하는 Mistral API Client를 통해 Mistral에 호출합니다. 사용할 모델과 메시지 목록을 정의하면 돼요.

from mistralai.client import Mistral
from maxim.logger.mistral import MaximMistralClient
import os

with MaximMistralClient(Mistral(
    api_key=os.getenv("MISTRAL_API_KEY", ""),
), logger) as mistral:
    res = mistral.chat.complete(
        model="mistral-medium-latest",
        messages=[
            {
                "content": "Who is the best French painter? Answer in one short sentence.",
                "role": "user",
            }
        ]
    )
    # Handle response
    print(res)

Mistral SDK가 Maxim으로 보낸 로그를 확인하는 방법이에요. Maxim 플랫폼의 Logs 섹션으로 가서, 생성한 Log Repository를 열고, 상단 탭에서 Logs를 선택하면 받은 추적(traces)을 분석할 수 있습니다.

비동기 LLM 호출 (Async)

complete_async를 사용하면 비동기 방식으로도 호출할 수 있어요.

async with MaximMistralClient(Mistral(
    api_key=os.getenv('MISTRAL_API_KEY', ''),
), logger) as mistral:
    response = await mistral.chat.complete_async(
        model='mistral-small-latest',
        messages=[
            {
                'role': 'user',
                'content': 'Explain the difference between async and sync programming in Python in one sentence.'
            }
        ]
    )
    print(response)

피드백이나 요청이 있다면 GitHub Issue를 만들어 주세요.

더 알아보기 (Learn more)

  • Maxim AI 공식 문서 — LLM 애플리케이션 관찰 플랫폼
  • maxim.logger.mistral.MaximMistralClient — Mistral 호출을 자동 추적하는 클라이언트 래퍼
  • mistralai.client.Mistral — Mistral Python SDK의 기본 클라이언트