Open9

OpenRouterを用いたAIプロダクト開発

じゅっじゅおーじゅっじゅおー

Open RouterのAPI経由で叩ける

import requests
import json

response = requests.post(
  url="https://openrouter.ai/api/v1/chat/completions",
  headers={
    "Authorization": "Bearer <OPENROUTER_API_KEY>",
    "HTTP-Referer": "<YOUR_SITE_URL>", # Optional. Site URL for rankings on openrouter.ai.
    "X-Title": "<YOUR_SITE_NAME>", # Optional. Site title for rankings on openrouter.ai.
  },
  data=json.dumps({
    "model": "openai/gpt-3.5-turbo", # Optional
    "messages": [
      {
        "role": "user",
        "content": "What is the meaning of life?"
      }
    ]
    
  })
)

https://openrouter.ai/docs/quick-start

じゅっじゅおーじゅっじゅおー

抽象化されている分、パラメーターとかはモデルごとに使えるかや意味を調べる必要はあるが、APIは一つで済むのでだいぶ実装はやりやすくなる
というか、ファインチューニングをせずにAPIを使う形であれば、モデルの試行がやりやすくなる

DeepSeek v3とかはAPI利用でもサービス改善にデータを利用される。なので、もちろん利用する際の利用規約周りはモデルごとに調べる必要がある

その辺は、OpenRouterのモデルの部分に記載がある 👏
https://openrouter.ai/openai/gpt-4o-2024-11-20

じゅっじゅおーじゅっじゅおー

APIを直で使うよりもStructured OutputがOpenAI以外だと超不安定(3回に一回は失敗するイメージ)
APIを直で使うよりも時間帯によっては不安定(特にDeepseek)

API on APIの形なので不安定なのは否めない様子。
まぁ開発リソース少ない中で試すには仕方ないし、手軽にモデル変えつつ試せるならいいと思った
プロダクトから使う場合は、非同期処理かつリトライ処理も挟めば初めの一歩は踏み出しやすいと思う