Athina

Athina

Athina는 LLM 기반 앱을 위한 평가 프레임워크이자 프로덕션 모니터링 플랫폼이에요. 실시간 모니터링, 세밀한 분석, 플러그앤플레이 평가를 통해 AI 애플리케이션의 성능과 신뢰성을 높이도록 설계됐죠. LiteLLM 콜백을 통해 Athina로 로그를 보내는 방법을 알려드릴게요.

출처: 문서

본문

tip — 커뮤니티에서 유지 관리하는 통합이에요. 버그를 발견하면 이슈를 만들어 주세요 https://github.com/BerriAI/litellm

Athina는 LLM 기반 앱을 위한 평가 프레임워크이자 프로덕션 모니터링 플랫폼이에요. 실시간 모니터링, 세밀한 분석, 플러그앤플레이 평가를 통해 AI 애플리케이션의 성능과 신뢰성을 높이도록 설계됐죠.

시작하기 (Getting Started)

Athina를 사용해 모든 LLM 프로바이더(OpenAI, Azure, Anthropic, Cohere, Replicate, PaLM)에서 요청을 로깅해 보세요.

liteLLM은 callbacks를 제공해서 응답 상태에 따라 데이터를 쉽게 로깅할 수 있게 해줘요.

콜백 사용 (Using Callbacks)

먼저 Athina 대시보드에서 가입해 API_KEY를 받아 주세요.

단 한 줄의 코드로 모든 프로바이더의 응답을 Athina에 즉시 로깅할 수 있어요:

litellm.success_callback = ["athina"]

전체 코드 (Complete code)

from litellm import completion

## set env variables
os.environ["ATHINA_API_KEY"] = "your-athina-api-key"
os.environ["OPENAI_API_KEY"]= ""

# set callback
litellm.success_callback = ["athina"]

#openai call
response = completion(
  model="gpt-5.6-luna", 
  messages=[{"role": "user", "content": "Hi 👋 - i'm openai"}]
) 

metadata의 추가 정보 (Additional information in metadata)

completion의 metadata 필드를 사용해 Athina에 추가 정보를 보낼 수 있어요. customer_id, prompt_slug 등 추적하려는 요청 메타데이터를 보내는 데 유용하죠.

#openai call with additional metadata
response = completion(
  model="gpt-5.6-luna",
  messages=[
    {"role": "user", "content": "Hi 👋 - i'm openai"}
  ],
  metadata={
    "environment": "staging",
    "prompt_slug": "my_prompt_slug/v1"
  }
)

metadata에서 허용되는 필드, 타입, 설명은 다음과 같아요:

  • environment: Optional[str] — 앱이 실행되는 환경(예: production, staging 등). 환경별로 추론 호출을 세분화하는 데 유용해요.
  • prompt_slug: Optional[str] — 추론에 사용된 프롬프트의 식별자. 프롬프트별로 추론 호출을 세분화하는 데 유용해요.
  • customer_id: Optional[str] — 고객 ID. 고객별로 추론 호출을 세분화하는 데 유용해요.
  • customer_user_id: Optional[str] — 최종 사용자 ID. 최종 사용자별로 추론 호출을 세분화하는 데 유용해요.
  • session_id: Optional[str] — 세션 또는 대화 ID. 여러 추론을 대화·체인으로 묶는 데 사용돼요. 더 읽기
  • external_reference_id: Optional[str] — Athina에 로깅된 추론에 자신의 내부 식별자를 연결하고 싶을 때 유용해요.
  • context: Optional[Union[dict, str]] — 프롬프트의 정보로 사용된 컨텍스트. RAG 애플리케이션에서 이는 "검색된" 데이터예요. 문자열 또는 객체(딕셔너리)로 로깅할 수 있어요.
  • expected_response: Optional[str] — 평가 목적으로 비교할 참조 응답. 기대 응답별로 추론 호출을 세분화하는 데 유용해요.
  • user_query: Optional[str] — 사용자의 쿼리. 대화형 앱에서 사용자의 마지막 메시지예요.
  • tags: Optional[list] — 태그 목록. 태그별로 추론 호출을 세분화하는 데 유용해요.
  • user_feedback: Optional[str] — 최종 사용자의 피드백.
  • model_options: Optional[dict] — 모델 옵션 딕셔너리. 모델 동작이 최종 사용자에게 미치는 영향에 대한 인사이트를 얻는 데 유용해요.
  • custom_attributes: Optional[dict] — 사용자 지정 속성 딕셔너리. 추론에 대한 추가 정보에 유용해요.

Athina 자체 호스팅 배포 사용 (Using a self hosted deployment of Athina)

Athina의 자체 호스팅 배포를 사용한다면 ATHINA_BASE_URL 환경 변수를 자체 호스팅 배포를 가리키도록 설정해야 해요.

...
os.environ["ATHINA_BASE_URL"]= "http://localhost:9000"
...

지원 및 Athina 팀과 소통 (Support & Talk with Athina Team)

더 알아보기 (Learn more)