はじめに
ObserversはオープンソースのPython SDKで、ジェネレーティブAI APIに包括的な観測機能を提供するように設計されています。このライブラリを使うことで、ユーザーはAIモデルとのインタラクションを簡単に追跡・記録し、これらのオブザベーションを複数のバックエンドに保存することができます。OpenAIであろうと、OpenAI APIのメッセージフォーマットを実装している他のLLMプロバイダであろうと、オブザーバを効率的にモニタリングし、ログに記録することができます。DuckDBやHugging Faceデータセットのようなストレージバックエンドと統合することで、ユーザーはAIのインタラクションデータを簡単にクエリし、分析することができます。
機能一覧
- ジェネレーティブAI APIモニタリングOpenAI APIメッセージフォーマットを実装するOpenAIやその他のLLMプロバイダーをサポートします。
- 複数のバックエンドデータストレージDuckDB、Hugging Faceデータセット、その他多くのストレージバックエンドをサポート。
- ドキュメント情報ウォッチDoclingとの統合により、PDF、DOCX、PPTX、XLSX、画像、HTML、AsciiDoc、Markdownなど複数のドキュメント形式をサポート。
- オープンソースの遠隔測定サポートOpenTelemetry統合による複数の遠隔測定プロバイダーのサポート。
- ユニファイドインターフェースAISuiteとLitellmを通じて統一されたLLM APIインターフェースを提供します。
ヘルプの使用
取り付け
まず、pipを使ってオブザーバーSDKをインストールします:
pip install observers
AISuiteやLitellmを通して他のLLMプロバイダーを使用したい場合は、以下のコマンドでインストールできます:
pip install observers[aisuite] # または observers[litellm].
文書情報を観察する必要がある場合は、Docling統合を使用できます:
pip install observers [docling]
オープンソースの遠隔測定サポートについては、以下をインストールすることができる:
pip install observers[opentelemetry].
利用する
オブザーバー・ライブラリーは、オブザーバーとストレージを区別する。オブザーバーは生成AI API(OpenAIやllama-indexなど)をパッケージ化し、それらのインタラクションを追跡する。一方、ストレージクラスは、これらのオブザベーションを別のストレージバックエンド(DuckDBやHugging Faceデータセットなど)に同期します。
サンプルコード
以下は、Observer Library を使ってリクエストを送信し、インタラクションをログに記録する方法を示す簡単なコード例です:
from observers.observers import wrap_openai
from observers.stores import DuckDBStore
from openai import OpenAI
store = DuckDBStore()
openai_client = OpenAI()
client = wrap_openai(openai_client, store=store)
response = client.chat.completions.create(
model="gpt-4o"、
messages=[{"role": "user", "content": "Tell me a joke." }], )
)
このコードはリクエストをサーバーレスエンドポイントに送り、デフォルトストレージのDatasetsStoreを使ってHubデータセットにインタラクションを記録する。データセットは個人のワークスペース(例:http://hf.co/{your_username})にプッシュされる。
コンフィギュレーション・ストレージ
別のストレージ・バックエンドを設定するには、以下の例を参照してください:
- DuckDB ストレージデフォルトのストレージはDuckDBで、DuckDB CLIを使用して表示および照会できます。
- ハグする顔のデータセット保存データセットは、Hugging Face Datasets Viewerを使用して表示および照会できます。
- アルギラ・ストレージArgillaへの観測の同期を可能にする。
- OpenTelemetryストレージOpenTelemetry対応プロバイダーへの観測値の同期を可能にする。