タイトル: [windows環境でarize-phoenixの実行エラー]
はじめに
背景
windows11, python3.12環境でarize-phoenixでトレーシングしようとするとき、エラーが出力され、トレーシング結果を確認できない。
対象読者
- arize-phoenixでllmのトレーシングに興味のある方
環境
| 項目 | バージョン/詳細 |
|---|---|
| OS | Windows 11 |
| 言語 | Python 3.12 |
| ライブラリ | arize-phoenix |
| その他 | - |
- 実施日付:2026.01.27
uv run python app.py
問題
出力されたエラー
NotADirectoryError: [WinError 267] ディレクトリ名が無効です。: 'path\\to\\AppData\\Local\\Temp\\tmpw8sjvllb\\phoenix.db'
困っている点
- エラーが出力されて気になる。
- トレーシング結果が確認できない。
解決方法
手順 1: [コードの実行を終了させない]
説明文
末尾に下記のコードを追加し、終了させないことにした。これでブラウザから出力結果を確認できる
try:
# 無限ループで待機
while True:
time.sleep(1)
except KeyboardInterrupt:
print("\n\nプログラムを終了します...")
関連のあるコード
コードを見る(クリックで展開)
# PhoenixとOllamaの基本的な使い方
# 1. 必要なライブラリのインストール
# pip install arize-phoenix openinference-instrumentation-openai ollama
import phoenix as px
from phoenix.otel import register
from openai import OpenAI
from openinference.instrumentation.openai import OpenAIInstrumentor
import os
import ollama
import time
# 作業ディレクトリに明示的にデータベースを配置
db_path = os.path.join(os.getcwd(), "phoenix_data")
os.makedirs(db_path, exist_ok=True)
# 2. Phoenixセッションを起動
#session = px.launch_app(
# db_path=os.path.join(db_path, "phoenix.db")
#)
session = px.launch_app(run_in_thread=True)
print(f"Phoenix UI: {session.url}") # UIのURLが表示されます
# 3. トレーシングの設定
tracer_provider = register(
project_name="ollama-llm-app", # プロジェクト名
)
# 4. Ollamaクライアントの設定とインストゥルメンテーション
# OllamaはOpenAI互換のAPIを提供するので、OpenAIInstrumentorを使用できます
from openai import OpenAI
# Ollama用のOpenAI互換クライアント
client = OpenAI(
base_url="http://localhost:11434/v1", # Ollamaのエンドポイント
api_key="ollama" # ダミーキー(Ollamaは認証不要)
)
OpenAIInstrumentor().instrument(tracer_provider=tracer_provider)
# 5. シンプルなLLM呼び出し
response = client.chat.completions.create(
model="gemma3:12b", # 使用するOllamaモデル(事前にpullが必要)
messages=[
{"role": "system", "content": "あなたは親切なアシスタントです。"},
{"role": "user", "content": "Pythonとは何ですか?"}
],
temperature=0.7,
)
print(response.choices[0].message.content)
# 6. 複数回呼び出してトレースを蓄積
questions = [
"機械学習とは?",
"ニューラルネットワークの仕組みは?",
"過学習を防ぐ方法は?"
]
for question in questions:
response = client.chat.completions.create(
model="gemma3:12b",
messages=[{"role": "user", "content": question}],
)
print(f"Q: {question}")
print(f"A: {response.choices[0].message.content}\n")
print("Phoenix UIでトレースを確認できます:", session.url)
結果
期待通りの動作
残問題
- コードの終了後に相変わらずエラーログが出力される。やはりarize-phoenixの使い方がまだよくわかっていないようだ。継続して調査
この記事が役に立ったら、いいね ❤️ やストック 📚 をお願いします!
質問やコメントもお気軽にどうぞ 💬