OpenLIT 개요

OpenLIT한 줄의 코드로 AI 에이전트, LLM, VectorDB, GPU의 성능을 쉽게 모니터링할 수 있는 오픈소스 도구다.

OpenTelemetry 기반의 트레이싱과 메트릭을 제공해 비용, 지연 시간, 상호작용, 작업 순서 같은 중요한 파라미터를 추적할 수 있다. 이를 통해 하이퍼파라미터를 추적하고 성능 문제를 모니터링하며, 시간이 지남에 따라 에이전트를 개선하고 파인튜닝할 방법을 찾을 수 있다.

OpenLIT 대시보드

주요 기능

  • 분석 대시보드: 어시스턴트의 상태와 성능을 상세히 모니터링한다. 메트릭, 비용, 사용자 상호작용을 추적하는 대시보드를 제공한다.
  • OpenTelemetry 기반 관측 가능성 SDK: 벤더 중립적인 SDK를 활용해 Grafana, DataDog 등 기존 관측 가능성 도구로 트레이스와 메트릭을 전송한다.
  • 커스텀 및 파인튜닝 모델 비용 추적: 특정 모델에 맞춘 비용 추정을 위해 커스텀 가격 파일을 사용해 정확한 예산 계획을 세운다.
  • 예외 모니터링 대시보드: 일반적인 예외와 오류를 추적하는 모니터링 대시보드를 통해 문제를 빠르게 발견하고 해결한다.
  • 규정 준수 및 보안: 욕설이나 개인정보 유출과 같은 잠재적 위협을 감지한다.
  • 프롬프트 주입 탐지: 코드 주입과 비밀 정보 유출 가능성을 식별한다.
  • API 키와 비밀 정보 관리: LLM API 키와 비밀 정보를 안전하게 중앙에서 관리해 불안전한 관행을 방지한다.
  • 프롬프트 관리: PromptHub를 사용해 어시스턴트 프롬프트를 관리하고 버전을 유지한다. 이를 통해 모든 어시스턴트에서 일관되고 쉽게 접근할 수 있다.
  • 모델 플레이그라운드: CrewAI 어시스턴트를 배포하기 전에 다양한 모델을 테스트하고 비교한다.

설정 안내

1

OpenLIT 배포

1

OpenLIT 저장소 Git Clone

git clone git@github.com:openlit/openlit.git
2

Docker Compose 실행

OpenLIT 저장소의 루트 디렉토리에서 아래 명령어를 실행한다:

docker compose up -d
2

OpenLIT SDK 설치

pip install openlit
3

애플리케이션에서 OpenLIT 초기화

애플리케이션 코드에 다음 두 줄을 추가한다:

import openlit
openlit.init(otlp_endpoint="http://127.0.0.1:4318")

CrewAI 에이전트 모니터링 예제:

from crewai import Agent, Task, Crew, Process
import openlit

openlit.init(disable_metrics=True)
# 에이전트 정의
researcher = Agent(
    role="Researcher",
    goal="AI와 AI 에이전트에 대해 철저한 연구와 분석 수행",
    backstory="기술, 소프트웨어 엔지니어링, AI, 스타트업 전문 연구원. 프리랜서로 활동 중이며 현재 새로운 클라이언트를 위해 연구 중.",
    allow_delegation=False,
    llm='command-r'
)


# 태스크 정의
task = Task(
    description="기사 주제로 흥미로운 아이디어 5개를 생성하고, 각 아이디어에 대해 전체 기사의 잠재력을 보여주는 매력적인 단락 작성. 아이디어 목록과 단락, 노트를 반환.",
    expected_output="5개의 불릿 포인트, 각각 단락과 노트 포함.",
)

# 매니저 에이전트 정의
manager = Agent(
    role="Project Manager",
    goal="크루를 효율적으로 관리하고 고품질 태스크 완수 보장",
    backstory="복잡한 프로젝트를 감독하고 팀을 성공으로 이끄는 경험 많은 프로젝트 매니저. 크루 멤버의 노력을 조율해 각 태스크가 시간 내에 최고 수준으로 완료되도록 한다.",
    allow_delegation=True,
    llm='command-r'
)

# 커스텀 매니저로 크루 인스턴스 생성
crew = Crew(
    agents=[researcher],
    tasks=[task],
    manager_agent=manager,
    process=Process.hierarchical,
)

# 크루 작업 시작
result = crew.kickoff()

print(result)

더 고급 설정과 사용 사례는 OpenLIT Python SDK 저장소를 참조한다.

4

시각화 및 분석

에이전트 관측 데이터가 OpenLIT로 수집되고 전송되면, 다음 단계는 이 데이터를 시각화하고 분석해 에이전트의 성능과 동작을 파악하고 개선할 부분을 식별하는 것이다.

브라우저에서 127.0.0.1:3000으로 OpenLIT에 접속해 탐색을 시작한다. 기본 자격 증명으로 로그인할 수 있다:

  • 이메일: user@openlit.io
  • 비밀번호: openlituser

OpenLIT 대시보드