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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aitracer-0.1.1.tar.gz.
File metadata
- Download URL: aitracer-0.1.1.tar.gz
- Upload date:
- Size: 23.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
392b7fbd1283f0768bd0bacb9f2dfeb537d7ee9bb1d71b888bcaa16f666ce609
|
|
| MD5 |
5d7f2aa28940a51947e021ad01bb855c
|
|
| BLAKE2b-256 |
93c8872fc255274fa2e4481cd9d7d7b1c8fc1cb160ecf4ade712ab095bc610ff
|
File details
Details for the file aitracer-0.1.1-py3-none-any.whl.
File metadata
- Download URL: aitracer-0.1.1-py3-none-any.whl
- Upload date:
- Size: 24.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
127167c87d53fd9d10396eb4aae09bf4e177351279e69df763e33e3373fcb7b7
|
|
| MD5 |
afe11f837d9a8515a34f06953694a05d
|
|
| BLAKE2b-256 |
faae280e3d7d0306d98ac3a9cc4c93aa623bfd3af5d216a74dfe8873946b53e1
|