readme_JA.md
</picture></a>
Opik: オープンソースの LLM オブザーバビリティ・評価・AI エージェントトレーシング
</div>
<a href="#-llm-as-a-judge-metrics">🧑⚖️ LLM as a Judge</a> • <a href="#-evaluating-your-llm-application">🔍 アプリケーションの評価</a> • <a href="#-star-us-on-github">⭐ スターをお願いします</a> • <a href="#-contributing">🤝 コントリビュート</a>
</div><a id="-what-is-opik"></a>
Opik は、LLM アプリケーションや AI エージェントを開発するチーム向けに、開発時の最初のトレースから本番環境のモニタリングまで、LLM アプリケーションのライフサイクル全体をカバーします。主な提供機能は次のとおりです。
主な機能は次のとおりです。
開発とトレーシング:
評価とテスト:
本番環境のモニタリングと最適化:
対象ユーザー: LLM を活用したエージェントを開発する ML エンジニア、プロトタイプから本番環境へ移行する AI チーム、そして自社環境で運用できるオープンソースかつセルフホスト可能なオブザーバビリティを必要とするエンジニアリングチーム。
ここでオープンソースであることが重要な理由: Opik は Apache-2.0 ライセンスで、クライアント SDK だけでなくバックエンドを含むプラットフォーム全体を無料でセルフホストできます。このリポジトリには、サーバーバックエンド、ウェブアプリケーション、トレーシング、データセット、実験、評価、プロンプト管理、オンライン評価、エージェント最適化の各コンポーネントが、すべて Apache-2.0 のもとで含まれています。データを自社環境の外に出すことなく、またエンタープライズ営業とのやり取りを必要とせずに、自社インフラ内で LLM オブザーバビリティを運用できます。
[!TIP] 現在の Opik にない機能をお探しの場合は、機能リクエストを作成してください 🚀
<a id="-quick-start"></a>
Python SDK をインストールして設定します。
pip install opik
opik configure
任意の関数を @track デコレーターでラップすると、トレースの記録が始まります。
from opik import track
@track
def my_function(input: str) -> str:
return input
これで my_function の呼び出しは、ネストされた呼び出しも含めてすべて Opik に記録されます。そのため、単一の LLM 呼び出しだけでなく、エージェントやパイプライン全体のトレースにも対応できます。TypeScript SDK やその他のセットアップ方法については、クイックスタートガイドをご覧ください。
<a id="-how-opik-compares"></a>
Opik は LLM オブザーバビリティ / AI エージェント評価のカテゴリーで、LangSmith、Arize (Phoenix と Arize AX)、Weights & Biases (Weave)、Langfuse、Braintrust と競合しています。
| 機能 | Opik | LangSmith | Phoenix | Arize AX | Weights & Biases (Weave) | Langfuse | Braintrust |
|---|---|---|---|---|---|---|---|
| オープンソース | はい、Apache-2.0 (プラットフォーム全体) | いいえ | ソース公開 (Elastic License 2.0、OSI 非承認) | いいえ | SDK / ツールキットはオープンソース。セルフマネージドのプラットフォームには商用ライセンスが必要 | コアプラットフォームは MIT ライセンス。エンタープライズ向けモジュールは商用 | いいえ |
| セルフホストでのデプロイ | はい | エンタープライズのみ | はい | エンタープライズのみ | Weave 本体はエンタープライズのみ | はい、コア部分 | エンタープライズのみ |
| 無料プランの提供 (クラウドまたはセルフホスト) | はい、両方 | はい、クラウド | はい、セルフホスト | はい、クラウド | はい、クラウド | はい、両方 | はい、クラウド |
| エージェント / マルチステップのトレーシング | はい | はい | はい | はい | はい | はい | はい |
| LLM-as-a-judge による評価 | はい | はい | はい | はい | はい | はい | はい |
| プロンプト管理 | はい | はい | 一部 | 一部 | 一部 | はい | はい |
| フレームワーク非依存 | はい | 一部、LangChain 中心の設計 | はい | はい | はい | はい | はい |
チームが Opik を選ぶ理由: オブザーバビリティ、評価、最適化を備えた Opik のプラットフォーム全体が Apache-2.0 ライセンスで、無料でセルフホストできます。セルフホストでのデプロイにエンタープライズプランが必要なクローズドなプラットフォームとは異なり、Opik は商用ライセンスなしでデプロイでき、フレームワーク非依存であるため特定のエージェントエコシステムに縛られることもありません。セルフホストとライセンスの違いについては、上の表をご覧ください。
<a id="-frequently-asked-questions"></a>
Opik は Apache 2.0 ライセンスで提供されています。サーバー、ウェブアプリケーション、そしてオブザーバビリティと評価のコア機能は、商用ライセンスなしでセルフホストできます。
はい。ドキュメントに記載されたセルフホストの方法で、ローカル環境または自社インフラに Opik をデプロイできます。
はい。Opik は、LLM 呼び出し、ツールの実行、検索ステップ、その他のエージェントの動作を含むマルチステップのトレースを取得します。
はい。Opik は、データセット、実験、コードベースのメトリクス、LLM-as-a-judge による評価、オンライン評価をサポートしています。
いいえ。Opik はフレームワーク非依存で、独自の SDK、OpenTelemetry、各フレームワーク向けのインテグレーションをサポートしています。
<a id="%EF%B8%8F-opik-server-installation"></a>
Opik サーバーは数分で起動できます。用途に最も適した方法を選んでください。
セットアップ不要で、すぐに Opik を利用できます。手早く始めたい場合や、メンテナンスの手間をかけたくない場合に最適です。
自社環境に Opik をデプロイします。ローカル環境向けの Docker と、スケーラビリティを重視する場合の Kubernetes から選べます。
ローカルで Opik インスタンスを動かす最も簡単な方法です。新しい ./opik.sh インストールスクリプトをご利用ください。
Linux または Mac 環境の場合:
# Opik リポジトリをクローン
git clone https://github.com/comet-ml/opik.git
# リポジトリに移動
cd opik
# Opik プラットフォームを起動
./opik.sh
Windows 環境の場合:
# Opik リポジトリをクローン
git clone https://github.com/comet-ml/opik.git
# リポジトリに移動
cd opik
# Opik プラットフォームを起動
powershell -ExecutionPolicy ByPass -c ".\\opik.ps1"
インストールスクリプトのオプション
opik.sh と opik.ps1 のスクリプトは、次のオプションに対応しています。
# Opik スイート全体を起動 (デフォルトの動作)
./opik.sh
# インフラサービスのみを起動 (データベース、キャッシュなど)
./opik.sh --infra
# インフラ + バックエンドサービスを起動
./opik.sh --backend
# 任意のプロファイルで guardrails を有効化
./opik.sh --guardrails # Opik スイート全体と guardrails
./opik.sh --backend --guardrails # インフラ + バックエンドと guardrails
# 起動前にソースからコンテナをビルド
./opik.sh --build
# すべてのコンテナが正常か確認
./opik.sh --verify
# すべてのコンテナを停止
./opik.sh --stop
# すべてのコンテナを停止し、Opik のデータボリュームをすべて削除
# 警告: Opik のデータはすべて失われます
./opik.sh --clean
# 利用可能なオプションをすべて表示
./opik.sh --help
問題のトラブルシューティングには --help または --info オプションを使用してください。Dockerfile は、セキュリティ強化のためコンテナを非 root ユーザーで実行するようになりました。すべてが起動したら、ブラウザーで localhost:5173 にアクセスできます。詳しい手順はローカルデプロイガイドをご覧ください。
本番環境や大規模なセルフホストのデプロイでは、Helm チャートを使って Kubernetes クラスターに Opik をインストールできます。バッジをクリックすると、Helm を使った Kubernetes インストールガイドの全文をご覧いただけます。
<a id="-opik-client-sdk"></a>
Opik は、Opik サーバーとやり取りするための一連のクライアントライブラリと REST API を提供しています。これには Python と TypeScript の SDK に加え、ファーストパーティの OpenTelemetry サポートが含まれます。Java、Ruby、.NET など、OpenTelemetry SDK が存在する言語であれば、どれでも Opik にトレースを送信できます。API と SDK の詳細なリファレンスは、Opik クライアントリファレンスドキュメントをご覧ください。
Python SDK を使い始めるには、次の手順に従います。
パッケージをインストールします。
# pip を使ってインストール
pip install opik
# または uv を使ってインストール
uv pip install opik
opik configure コマンドを実行して Python SDK を設定します。実行すると、Opik サーバーのアドレス (セルフホストの場合)、または API キーとワークスペース (Comet.com の場合) の入力を求められます。
opik configure
[!TIP] Python コードから
opik.configure(use_local=True)を呼び出して、ローカルのセルフホスト環境向けに SDK を設定したり、Comet.com 用に API キーとワークスペースの情報を直接指定したりすることもできます。その他の設定オプションについては、Python SDK ドキュメントをご覧ください。
これで Python SDK を使ってトレースの記録を始める準備が整いました。
<a id="-logging-traces-with-integrations"></a>
トレースを記録する最も簡単な方法は、直接対応しているインテグレーションのいずれかを使うことです。Opik は、Google ADK、Autogen、AG2、Flowise AI といった最近追加されたものを含む、幅広いフレームワークをサポートしています。
| インテグレーション | 説明 | ドキュメント |
|---|---|---|
| ADK | Google Agent Development Kit (ADK) のトレースを記録 | ドキュメント |
| AG2 | AG2 の LLM 呼び出しのトレースを記録 | ドキュメント |
| Agent Spec | Agent Spec の呼び出しのトレースを記録 | ドキュメント |
| AIsuite | aisuite の LLM 呼び出しのトレースを記録 | ドキュメント |
| Agno | Agno エージェントオーケストレーションフレームワークの呼び出しのトレースを記録 | ドキュメント |
| Anthropic | Anthropic の LLM 呼び出しのトレースを記録 | ドキュメント |
| Autogen | Autogen のエージェントワークフローのトレースを記録 | ドキュメント |
| Bedrock | Amazon Bedrock の LLM 呼び出しのトレースを記録 | ドキュメント |
| BeeAI (Python) | BeeAI Python エージェントフレームワークの呼び出しのトレースを記録 | ドキュメント |
| BeeAI (TypeScript) | BeeAI TypeScript エージェントフレームワークの呼び出しのトレースを記録 | ドキュメント |
| BytePlus | BytePlus の LLM 呼び出しのトレースを記録 | ドキュメント |
| Claude Code | Opik プラグイン経由で Claude Code のセッションのトレースを記録 | GitHub |
| Cloudflare Workers AI | Cloudflare Workers AI の呼び出しのトレースを記録 | ドキュメント |
| Cohere | Cohere の LLM 呼び出しのトレースを記録 | ドキュメント |
| CrewAI | CrewAI の呼び出しのトレースを記録 | ドキュメント |
| Cursor | Cursor の会話のトレースを記録 | ドキュメント |
| DeepSeek | DeepSeek の LLM 呼び出しのトレースを記録 | ドキュメント |
| Dify | Dify のエージェント実行のトレースを記録 | ドキュメント |
| DSPY | DSPy の実行のトレースを記録 | ドキュメント |
| Fireworks AI | Fireworks AI の LLM 呼び出しのトレースを記録 | ドキュメント |
| Flowise AI | Flowise AI のビジュアル LLM ビルダーのトレースを記録 | ドキュメント |
| Gemini (Python) | Google Gemini の LLM 呼び出しのトレースを記録 | ドキュメント |
| Gemini (TypeScript) | Google Gemini TypeScript SDK の呼び出しのトレースを記録 | ドキュメント |
| Groq | Groq の LLM 呼び出しのトレースを記録 | ドキュメント |
| Guardrails | Guardrails AI の検証のトレースを記録 | ドキュメント |
| Haystack | Haystack の呼び出しのトレースを記録 | ドキュメント |
| Harbor | Harbor のベンチマーク評価トライアルのトレースを記録 | ドキュメント |
| Instructor | Instructor を使った LLM 呼び出しのトレースを記録 | ドキュメント |
| LangChain (Python) | LangChain の LLM 呼び出しのトレースを記録 | ドキュメント |
| LangChain (JS/TS) | LangChain JavaScript/TypeScript の呼び出しのトレースを記録 | ドキュメント |
| LangGraph | LangGraph の実行のトレースを記録 | ドキュメント |
| Langflow | Langflow のビジュアル AI ビルダーのトレースを記録 | ドキュメント |
| LiteLLM | LiteLLM のモデル呼び出しのトレースを記録 | ドキュメント |
| LiveKit Agents | LiveKit Agents の AI エージェントフレームワークの呼び出しのトレースを記録 | ドキュメント |
| LlamaIndex | LlamaIndex の LLM 呼び出しのトレースを記録 | ドキュメント |
| Mastra | Mastra AI ワークフローフレームワークの呼び出しのトレースを記録 | ドキュメント |
| MCP サーバー (opik-mcp) | Model Context Protocol 経由で Claude Code、Cursor、VS Code から Opik を操作 | ドキュメント |
| Microsoft Agent Framework (Python) | Microsoft Agent Framework の呼び出しのトレースを記録 | ドキュメント |
| Microsoft Agent Framework (.NET) | Microsoft Agent Framework .NET の呼び出しのトレースを記録 | ドキュメント |
| Mistral AI | Mistral AI の LLM 呼び出しのトレースを記録 | ドキュメント |
| n8n | n8n のワークフロー実行のトレースを記録 | ドキュメント |
| Novita AI | Novita AI の LLM 呼び出しのトレースを記録 | ドキュメント |
| Ollama | Ollama の LLM 呼び出しのトレースを記録 | ドキュメント |
| OpenAI (Python) | OpenAI の LLM 呼び出しのトレースを記録 | ドキュメント |
| OpenAI (JS/TS) | OpenAI JavaScript/TypeScript の呼び出しのトレースを記録 | ドキュメント |
| OpenAI Agents | OpenAI Agents SDK の呼び出しのトレースを記録 | ドキュメント |
| OpenClaw | OpenClaw のエージェント実行のトレースを記録 | ドキュメント |
| OpenRouter | OpenRouter の LLM 呼び出しのトレースを記録 | ドキュメント |
| OpenTelemetry | OpenTelemetry がサポートする呼び出しのトレースを記録 | ドキュメント |
| OpenWebUI | OpenWebUI の会話のトレースを記録 | ドキュメント |
| Pipecat | Pipecat のリアルタイム音声エージェント呼び出しのトレースを記録 | ドキュメント |
| Predibase | Predibase の LLM 呼び出しのトレースを記録 | ドキュメント |
| Pydantic AI | PydanticAI のエージェント呼び出しのトレースを記録 | ドキュメント |
| Ragas | Ragas の評価のトレースを記録 | ドキュメント |
| Semantic Kernel | Microsoft Semantic Kernel の呼び出しのトレースを記録 | ドキュメント |
| Smolagents | Smolagents のエージェントのトレースを記録 | ドキュメント |
| Spring AI | Spring AI フレームワークの呼び出しのトレースを記録 | ドキュメント |
| Strands Agents | Strands agents の呼び出しのトレースを記録 | ドキュメント |
| Together AI | Together AI の LLM 呼び出しのトレースを記録 | ドキュメント |
| Vercel AI SDK | Vercel AI SDK の呼び出しのトレースを記録 | ドキュメント |
| VoltAgent | VoltAgent のエージェントフレームワークの呼び出しのトレースを記録 | ドキュメント |
| WatsonX | IBM watsonx の LLM 呼び出しのトレースを記録 | ドキュメント |
| xAI Grok | xAI Grok の LLM 呼び出しのトレースを記録 | ドキュメント |
[!TIP] お使いのフレームワークが上の一覧にない場合は、お気軽に issue を作成するか、インテグレーションの PR を送ってください。
上記のいずれのフレームワークも使っていない場合は、track 関数デコレーターを使ってトレースを記録することもできます。
import opik
opik.configure(use_local=True) # ローカルで実行
@opik.track
def my_llm_function(user_question: str) -> str:
# ここに LLM のコードを記述
return "Hello"
[!TIP] track デコレーターは、いずれのインテグレーションと組み合わせても使用でき、ネストされた関数呼び出しの追跡にも利用できます。
<a id="-llm-as-a-judge-metrics"></a>
Python の Opik SDK には、LLM アプリケーションの評価に役立つ LLM as a judge メトリクスが多数含まれています。詳しくはメトリクスのドキュメントをご覧ください。
使い方は簡単で、対象のメトリクスをインポートして score 関数を呼び出すだけです。
from opik.evaluation.metrics import Hallucination
metric = Hallucination()
score = metric.score(
input="What is the capital of France?",
output="Paris",
context=["France is a country in Europe."]
)
print(score)
Opik には、あらかじめ用意されたヒューリスティックメトリクスも多数含まれており、独自のメトリクスを作成することもできます。詳しくはメトリクスのドキュメントをご覧ください。
<a id="-evaluating-your-llm-application"></a>
Opik では、データセットと実験を通じて、開発中に LLM アプリケーションを評価できます。Opik ダッシュボードは、実験向けの強化されたチャートと、大きなトレースのより快適な取り扱いを提供します。また、PyTest インテグレーションを使って、CI/CD パイプラインの一部として評価を実行することもできます。
<a id="-star-us-on-github"></a>
Opik が役に立つと感じたら、ぜひスターを付けてください! 皆さんの支援が、コミュニティの成長とプロダクトの継続的な改善につながります。
<a id="-contributing"></a>
Opik には、さまざまな形で貢献できます。
Opik への貢献方法について詳しくは、コントリビューションガイドラインをご覧ください。