Skip to content

Latest commit

 

History

History
320 lines (238 loc) · 36.6 KB

File metadata and controls

320 lines (238 loc) · 36.6 KB

注意:このファイルはAIを使用して機械翻訳されています。翻訳の改善への貢献を歓迎します!

Comet Opik logo
Opik

AI向けオープンソースのオブザーバビリティ、評価、最適化プラットフォーム

Opikは、プロトタイプから本番まで、より良く動作する生成AIアプリケーションの構築、テスト、最適化を支援します。RAGチャットボットやコードアシスタント、複雑なエージェンティックシステムに至るまで、Opikは包括的なトレース、評価、そしてプロンプトやツールの自動最適化を提供し、AI開発における試行錯誤を取り除きます。

Python SDK License Build

WebサイトSlack コミュニティTwitter変更履歴ドキュメント


Opik platform screenshot (thumbnail)

🚀 Opikとは?

Opik(Cometによる開発)は、LLMアプリケーションのライフサイクル全体を効率化するためのオープンソースプラットフォームです。開発者がモデルやエージェンシーシステムを評価、テスト、監視、最適化できるようにします。主な提供機能は次のとおりです:

  • 包括的なオブザーバビリティ:LLM呼び出しの詳細なトレーシング、会話ログ、エージェントアクティビティの記録。
  • 高度な評価:プロンプト評価、LLM-as-a-judge、実験管理の強力な機能。
  • 本番環境対応:スケーラブルな監視ダッシュボードとオンライン評価ルール。
  • Opik Agent Optimizer:プロンプトやエージェントを強化する専用SDKとオプティマイザー。
  • Opik Guardrails:安全で責任あるAI実践を支援する機能。

主な機能:

  • 開発 & トレーシング:

    • 開発中および本番環境での詳細コンテキスト付きLLM呼び出しとトレースの追跡(クイックスタート)。
    • 幅広いサードパーティ統合によるオブザーバビリティ:Google ADK、Autogen、Flowise AIなどの最新フレームワークをネイティブサポート(統合一覧)。
    • Python SDKUIを使ったトレースやスパンへのフィードバックスコアの注釈。
    • Prompt Playgroundでプロンプトやモデルを試行。
  • 評価 & テスト:

  • 本番監視 & 最適化:

    • 高ボリュームの本番トレース記録:Opikはスケールを重視(1日あたり4,000万以上のトレース)。
    • Opikダッシュボードでフィードバックスコア、トレース数、トークン使用量を時間推移で監視(ダッシュボード)。
    • オンライン評価ルールを使った本番問題の検出。
    • Opik Agent OptimizerOpik Guardrails で本番環境のLLMアプリを継続的に改善・保護。

Tip

現在Opikにない機能が必要な場合は、ぜひ新しい機能リクエストを提出してください 🚀


🛠️ Opikサーバーのインストール

数分でOpikサーバーを起動できます。ニーズに合ったオプションを選んでください:

オプション1:Comet.comクラウド(最も簡単 & 推奨)

セットアップ不要で即時にOpikにアクセスできます。クイックスタートやメンテナンス不要の方に最適。

👉 無料のCometアカウントを作成

オプション2:セルフホストによる完全管理

独自環境にOpikをデプロイ。ローカルはDocker、スケーラブル環境はKubernetesを選択。

Docker Composeでのセルフホスト(ローカル開発 & テスト向け)

最も簡単にローカルOpikインスタンスを起動する方法です。新しい .opik.sh インストールスクリプトに注目:

On Linux or Mac Environment:

# Opikリポジトリをクローン
git clone https://github.com/comet-ml/opik.git

# リポジトリへ移動
cd opik

# Opikプラットフォームを起動
./opik.sh

On Windows Environment:

# Opikリポジトリをクローン
git clone https://github.com/comet-ml/opik.git

# リポジトリへ移動
cd opik

# Opikプラットフォームを起動
powershell -ExecutionPolicy ByPass -c ".\\opik.ps1"

開発用サービスプロファイル

Opikインストールスクリプトは、異なる開発シナリオ向けのサービスプロファイルをサポートしています:

# フルOpikスイート(デフォルト動作)
./opik.sh

# インフラストラクチャサービスのみ(データベース、キャッシュなど)
./opik.sh --infra

# インフラストラクチャ + バックエンドサービス
./opik.sh --backend

# 任意のプロファイルでガードレールを有効化
./opik.sh --guardrails # フルOpikスイート + ガードレール
./opik.sh --backend --guardrails # インフラストラクチャ + バックエンド + ガードレール

--help または --info オプションでトラブルシューティングが可能。Dockerfileは非rootユーザー実行を保証し、セキュリティを強化。起動後、ブラウザで localhost:5173 を開くだけです。詳細は ローカルデプロイガイド をご覧ください。

Kubernetes & Helmでのセルフホスト(大規模デプロイ向け)

本番や大規模セルフホスト環境では、Helmチャートを使ってKubernetesクラスタにインストールできます。詳しくはバッジをクリックして Kubernetesインストールガイド (Helm) をご参照ください。

Kubernetes

Important

バージョン 1.7.0 の変更:重要な更新と破壊的変更については 変更履歴 をご確認ください。

💻 OpikクライアントSDK

Opikは、Opikサーバーとやり取りするためのクライアントライブラリ群とREST APIを提供します。Python、TypeScript、Ruby(OpenTelemetry経由)のSDKがあり、ワークフローへのシームレスな統合が可能です。詳細は Opikクライアントリファレンス をご覧ください。

Python SDKクイックスタート

Python SDKを始めるには:

パッケージをインストール:

# pipでインストール
pip install opik

# または uv を使ってインストール
uv pip install opik

opik configure コマンドを実行して、Opikサーバーアドレス(セルフホストの場合)またはAPIキーとワークスペース(Comet.comの場合)を入力します:

opik configure

Tip

Pythonコード内で opik.configure(use_local=True) を呼び出してローカルセルフホスト構成にしたり、APIキーとワークスペースを直接指定することも可能です。詳細は Python SDKドキュメント を参照してください。

これで Python SDK を使ったトレースのログ記録が可能になります。

📝 トレースのログ記録と統合

最も簡単なトレース記録方法は、直接統合を使うことです。Opikは以下を含む多種多様なフレームワークをサポートしています:

統合 説明 ドキュメント
ADK Google Agent Development Kit (ADK) のトレースを記録 ドキュメント
AG2 AG2 LLM 呼び出しのトレースを記録 ドキュメント
aisuite aisuite LLM 呼び出しのトレースを記録 ドキュメント
Agent Spec Agent Spec 呼び出しのトレースを記録 ドキュメント
Agno Agno エージェントオーケストレーションフレームワーク呼び出しのトレースを記録 ドキュメント
Anthropic Anthropic LLM 呼び出しのトレースを記録 ドキュメント
Autogen Autogen エージェンシーワークフローのトレースを記録 ドキュメント
Bedrock Amazon Bedrock LLM 呼び出しのトレースを記録 ドキュメント
BeeAI (Python) BeeAI Python エージェントフレームワーク呼び出しのトレースを記録 ドキュメント
BeeAI (TypeScript) BeeAI TypeScript エージェントフレームワーク呼び出しのトレースを記録 ドキュメント
BytePlus BytePlus LLM 呼び出しのトレースを記録 ドキュメント
CrewAI CrewAI 呼び出しのトレースを記録 ドキュメント
Cloudflare Workers AI Cloudflare Workers AI 呼び出しのトレースを記録 ドキュメント
Cohere Cohere LLM 呼び出しのトレースを記録 ドキュメント
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 エージェントフレームワーク呼び出しのトレースを記録 ドキュメント
Mastra Mastra AI ワークフローフレームワーク呼び出しのトレースを記録 ドキュメント
Microsoft Agent Framework (Python) Microsoft Agent Framework 呼び出しのトレースを記録 ドキュメント
Microsoft Agent Framework (.NET) Microsoft Agent Framework .NET 呼び出しのトレースを記録 ドキュメント
Mistral AI Mistral AI LLM 呼び出しのトレースを記録 ドキュメント
n8n n8n ワークフロー実行のトレースを記録 ドキュメント
LlamaIndex LlamaIndex LLM 呼び出しのトレースを記録 ドキュメント
Ollama Ollama LLM 呼び出しのトレースを記録 ドキュメント
OpenAI (Python) OpenAI LLM 呼び出しのトレースを記録 ドキュメント
OpenAI (JS/TS) OpenAI JavaScript/TypeScript 呼び出しのトレースを記録 ドキュメント
OpenAI Agents OpenAI Agents SDK 呼び出しのトレースを記録 ドキュメント
OpenClaw OpenClaw エージェント実行のトレースを記録 ドキュメント
Novita AI Novita AI LLM 呼び出しのトレースを記録 ドキュメント
OpenRouter OpenRouter LLM 呼び出しのトレースを記録 ドキュメント
OpenTelemetry OpenTelemetry 対応呼び出しのトレースを記録 ドキュメント
OpenWebUI OpenWebUI の会話のトレースを記録 ドキュメント
Pipecat Pipecat リアルタイム音声エージェント呼び出しのトレースを記録 ドキュメント
Predibase Predibase LLM 呼び出しのトレースを記録 ドキュメント
Pydantic AI PydanticAI エージェント呼び出しのトレースを記録 ドキュメント
Ragas Ragas 評価のトレースを記録 ドキュメント
Smolagents Smolagents エージェント呼び出しのトレースを記録 ドキュメント
Semantic Kernel Microsoft Semantic Kernel 呼び出しのトレースを記録 ドキュメント
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 "こんにちは"

Tip

trackデコレータは統合と併用でき、ネストされた関数呼び出しのトラッキングにも対応します。

🧑‍⚖️ LLMをジャッジとして

Python Opik SDKにはLLM-as-a-judge用メトリクスが多数含まれており、LLMアプリの評価に役立ちます。詳細は メトリクスドキュメント をご覧ください。

使用例:

from opik.evaluation.metrics import Hallucination

metric = Hallucination()
score = metric.score(
    input="フランスの首都は何ですか?",
    output="パリ",
    context=["フランスはヨーロッパの国です。"]
)
print(score)

Opikには事前定義のヒューリスティックメトリクスも多数含まれており、独自メトリクスの作成も可能です。詳細は同じく メトリクスドキュメント をご覧ください。

🔍 アプリケーションの評価

開発中の評価には データセット実験 を活用できます。Opikダッシュボードは実験のチャートを強化し、大規模トレースの扱いを改善します。CI/CDへの組み込みには PyTest統合 をご利用ください。

⭐ GitHubでスターを

Opikがお役に立ちましたら、ぜひスターをお願いします!コミュニティの拡大と製品改善の励みになります。

Star History Chart

🤝 貢献

Opikへの貢献方法は多数あります:

詳細は 貢献ガイドライン をご覧ください。