Skip to main content

AITracer SDK - Monitor your AI/LLM applications

Project description

AITracer Python SDK

AIエージェント/LLMアプリの実行ログ・コスト・パフォーマンスを監視するためのPython SDK。

本番環境

  • API エンドポイント: https://api.aitracer.co
  • ダッシュボード: https://app.aitracer.co

SDKはデフォルトで https://api.aitracer.co に接続します。

インストール

pip install aitracer

クイックスタート

基本的な使い方

from aitracer import AITracer
from openai import OpenAI

# AITracerを初期化
tracer = AITracer(
    api_key="at-xxxxxxxx",
    project="my-chatbot"
)

# OpenAIクライアントをラップ
client = tracer.wrap_openai(OpenAI())

# 普通に使う(自動でログが送信される)
response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "Hello!"}]
)

Anthropic対応

from aitracer import AITracer
from anthropic import Anthropic

tracer = AITracer(
    api_key="at-xxxxxxxx",
    project="my-chatbot"
)

# Anthropicクライアントをラップ
client = tracer.wrap_anthropic(Anthropic())

response = client.messages.create(
    model="claude-3-5-sonnet-20241022",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Hello!"}]
)

Google Gemini対応

from aitracer import AITracer
import google.generativeai as genai

tracer = AITracer(
    api_key="at-xxxxxxxx",
    project="my-chatbot"
)

# Geminiを設定
genai.configure(api_key="your-google-api-key")
model = genai.GenerativeModel("gemini-1.5-flash")

# Geminiモデルをラップ
model = tracer.wrap_gemini(model)

response = model.generate_content("Hello!")
print(response.text)

ストリーミングも対応しています:

response = model.generate_content("Write a story...", stream=True)
for chunk in response:
    print(chunk.text, end="")

トレース機能

複数のAPI呼び出しをグループ化して追跡できます。

with tracer.trace("user-query-123") as trace:
    # この中のAPI呼び出しは同じtrace_idでグループ化される
    response1 = client.chat.completions.create(
        model="gpt-4o",
        messages=[{"role": "user", "content": "Summarize this..."}]
    )

    response2 = client.chat.completions.create(
        model="gpt-4o",
        messages=[{"role": "user", "content": "Translate to Japanese..."}]
    )

    # メタデータを追加
    trace.set_metadata({
        "user_id": "user-456",
        "feature": "summarization"
    })

    # タグを追加
    trace.add_tag("production")

ストリーミング対応

ストリーミングレスポンスも自動的にログされます。

stream = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "Write a story..."}],
    stream=True
)

for chunk in stream:
    print(chunk.choices[0].delta.content or "", end="")

# ストリーム完了後に自動的にログが送信される

設定オプション

tracer = AITracer(
    # 必須
    api_key="at-xxxxxxxx",      # または AITRACER_API_KEY 環境変数
    project="my-chatbot",        # または AITRACER_PROJECT 環境変数

    # オプション
    base_url="https://api.aitracer.co",  # APIエンドポイント(デフォルト)
    sync=False,                  # True: 同期送信(Lambda用)
    flush_on_exit=True,          # 終了時に未送信ログをフラッシュ
    batch_size=10,               # バッチサイズ
    flush_interval=5.0,          # 自動フラッシュ間隔(秒)
    enabled=True,                # False: ログ無効化(テスト用)
)

Lambda/サーバーレス環境

サーバーレス環境では sync=True を使用してください。

tracer = AITracer(
    api_key="at-xxxxxxxx",
    project="my-lambda",
    sync=True  # 同期送信
)

環境変数

export AITRACER_API_KEY=at-xxxxxxxx
export AITRACER_PROJECT=my-chatbot
# 環境変数から自動で読み込み
tracer = AITracer()

手動ログ

自動ラッパーを使わずに手動でログを送信することもできます。

tracer.log(
    model="gpt-4o",
    provider="openai",
    input_data={"messages": [{"role": "user", "content": "Hello"}]},
    output_data={"content": "Hi there!"},
    input_tokens=10,
    output_tokens=5,
    latency_ms=150,
    status="success",
    metadata={"user_id": "user-123"},
    tags=["production"]
)

フラッシュとシャットダウン

# 未送信のログを即座に送信
tracer.flush()

# シャットダウン(フラッシュ + リソース解放)
tracer.shutdown()

ライセンス

Copyright (c) 株式会社HARO. All rights reserved.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aitracer-1.2.0.tar.gz (132.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aitracer-1.2.0-py3-none-any.whl (25.2 kB view details)

Uploaded Python 3

File details

Details for the file aitracer-1.2.0.tar.gz.

File metadata

  • Download URL: aitracer-1.2.0.tar.gz
  • Upload date:
  • Size: 132.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.2

File hashes

Hashes for aitracer-1.2.0.tar.gz
Algorithm Hash digest
SHA256 6db2cceff1fdf43565626a27e4087b7782e97c58a387e9f7a3a218d805f227a4
MD5 8d25bf8973cf6bc2b3d90d2992aad4a6
BLAKE2b-256 20c0d8c151bdbe43948265160fa0a79cc757eb66d56834e0050bce728e40ba8c

See more details on using hashes here.

File details

Details for the file aitracer-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: aitracer-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 25.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.2

File hashes

Hashes for aitracer-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 baea7d103cf005deb2ccde3d245c3f110a28ed027e1aed998b3737b1ac09f5b2
MD5 288ce7561ad507aacf83b442110ac1e9
BLAKE2b-256 580b4e4f796b2196799d52d9b3c227272a14e0584a40d5e641cc490a708e0a63

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page