Documentation Index
Fetch the complete documentation index at: https://wb-21fd5541-john-wbdocs-2044-rename-serverless-products.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
複雑な LLM ワークフローを構築する際には、精度、
コスト、または call のレイテンシに応じて、異なるモデルにプロンプトを送る必要がある場合があります。Not Diamond を使用すると、これらのワークフロー内でプロンプトを
ニーズに最適なモデルへ振り分けることができ、
モデルのコストを抑えながら精度の最大化に役立ちます。
アカウントを作成 し、APIキーを生成 してから、API
キーを環境変数 NOTDIAMOND_API_KEY として設定してください。
ここから、次のことができます。
Weave は Not Diamond の Python ライブラリ と統合されており、API コールを自動的にログします。
ワークフローの開始時に weave.init() を実行するだけで、その後は通常どおりルーティングされた
プロバイダを使用できます。
from notdiamond import NotDiamond
import weave
weave.init('notdiamond-quickstart')
client = NotDiamond()
session_id, provider = client.chat.completions.model_select(
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Concisely explain merge sort."}
],
model=['openai/gpt-4o', 'anthropic/claude-3-5-sonnet-20240620']
)
print("LLM called: ", provider.provider) # openai、anthropic など
print("Provider model: ", provider.model) # gpt-4o、claude-3-5-sonnet-20240620 など
独自の[カスタムルーター]を評価でトレーニングすることで、特定のユースケースに合わせて、評価パフォーマンスに基づき Not Diamond がプロンプトを振り分けられるようになります。
まず、カスタムルーターをトレーニングします:
from weave.flow.eval import EvaluationResults
from weave.integrations.notdiamond.custom_router import train_router
# gpt-4oとClaude 3.5 Sonnetの評価を構築する
evaluation = weave.Evaluation(...)
gpt_4o = weave.Model(...)
sonnet = weave.Model(...)
model_evals = {
'openai/gpt-4o': evaluation.get_eval_results(gpt_4o),
'anthropic/claude-3-5-sonnet-20240620': evaluation.get_eval_results(sonnet),
}
preference_id = train_router(
model_evals=model_evals,
prompt_column="prompt",
response_column="actual",
language="en",
maximize=True,
)
この preference ID を任意の model_select リクエストで再利用すると、評価データに対するパフォーマンスを最大化しつつ、コストを最小限に抑えられるようにプロンプトをルーティングできます:
from notdiamond import NotDiamond
client = NotDiamond()
import weave
weave.init('notdiamond-quickstart')
session_id, provider = client.chat.completions.model_select(
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Concisely explain merge sort."}
],
model=['openai/gpt-4o', 'anthropic/claude-3-5-sonnet-20240620'],
# この preference ID を渡すと、カスタムルーターを再利用できます
preference_id=preference_id
)
print("LLM called: ", provider.provider) # openai、anthropic など
print("Provider model: ", provider.model) # gpt-4o、claude-3-5-sonnet-20240620 など
さらにサポートが必要な場合は、ドキュメントを確認するか、お問い合わせください。