æ¬åœã«éèŠãª AI Routing API ã®ææš
AI routing API ã¯ãåã«éä¿¡ããããããã ãã§ãªããæ¬çªç°å¢ã§ã® AI åŒã³åºããéçšãããããããã®ã§ããã¹ãã§ãããã確èªããŠããããã·ã¥ããŒããã¢ãã«å¥ã®ç·ããŒã¯ã³æ°ã ããªããæ¬æ¥ routing ã解決ããã¯ãã ã£ãåé¡ãã€ãŸã倱æãããªã¯ãšã¹ããæåã®ããŒã¯ã³ã®é ãããã€ãºã®å€ããã©ãŒã«ããã¯ãèŠãã«ããå詊è¡ã³ã¹ããäºåŸã«èª¬æãã¥ããé害ãèŠéããŠããŸããŸãã
éèŠãªåãã¯ã·ã³ãã«ã§ãããã©ãã£ãã¯ã AI routing API ãéã£ãããšãä¿¡é Œæ§ãã¬ã€ãã³ã·ãã³ã¹ã管çããããã°ãæ¹åããããšãããŒã ã§èšŒæã§ããã§ãããã?
ãã®ã¬ã€ãã§ã¯ãå®è·µçãªã¹ã³ã¢ã«ãŒãã玹ä»ããŸããAI routing API ããŒã«ãè©äŸ¡ãããšããæ¢åã® LLM ã²ãŒããŠã§ã€ãèŠçŽããšãããããã¯ãããã€ããŒã®çŽæ¥å¥çŽã ãã§ãŸã ååãã倿ãããšãã«äœ¿ã£ãŠãã ããã
ç°¡åãªçã: routing ã®æŽ»åã§ã¯ãªãææã枬ã
routing ã®æŽ»åã¯æ°ãããããã®ã§ããã²ãŒããŠã§ã€ã¯ãªã¯ãšã¹ãæ°ãã¢ãã«åããããã€ããŒåãç·æ¯åºã衚瀺ã§ããŸãããããã¯å¿ èŠã§ãããAI routing API ãæçšãªä»äºãããŠããããšã®èšŒæã«ã¯ãªããŸããã
éèŠãªææšã¯æ¬¡ã®ãšããã§ã:
| ææšã°ã«ãŒã | äœã«çããã | å¥å šãªã·ã°ãã« |
|---|---|---|
| ãªã¯ãšã¹ãææã®å質 | ãŠãŒã¶ãŒã¯äœ¿ããåçãåŸãããã? | ã¯ãŒã¯ããŒãããšã«ãæåãåçãå詊è¡äžèŠã®ã¬ã¹ãã³ã¹ãå¢ãã |
| ãã©ãŒã«ããã¯ã®æå¹æ§ | ãã©ãŒã«ããã¯ã¯å®éã®é害ãå埩ã§ããã? | ãã©ãŒã«ããã¯ãäžæ£ãªåºåãæŽèµ°ããã³ã¹ããçãŸãã«é害ãå埩ãã |
| ã¬ã€ãã³ã·ãšã¹ã«ãŒããã | routing ã¯ãŠãŒã¶ãŒäœéšãæ¹åããã? | 察話åãã¹ã§ã¯ p90/p99 ã¬ã€ãã³ã·ãäœäžããããããã¹ã§ã¯ã¹ã«ãŒããããäºæž¬å¯èœã«ãªã |
| åçãããåºåãããã®ã³ã¹ã | routing ãããåçã¯å®éã«ããå®ãæžãã ã? | å詊è¡ããã©ãŒã«ããã¯ã倱æããåŒã³åºããæåŠãããåºåãå«ããŠãã³ã¹ããäœã |
| å¯èŠ³æž¬æ§ãšç£æ»å¯èœæ§ | ããŒã ã¯äœãèµ·ããã説æã§ããã? | ãã¹ãŠã®ãªã¯ãšã¹ãã keyãrouteãmodelãproviderãpolicyãcostãerror class ã«çŽã¥ãããã |
ããã¯ãã¢ãã«éžæåšãšéçšã¬ã€ã€ãŒã®éãã§ããã¢ãã«éžæåšã¯åŒã³åºãå ãæ±ºããŸããæ¬çªç°å¢ã® AI routing API ã¯ããã®éžæãããŸããã£ããã©ãããçè§£ããå©ãã«ããªããŸãã
ææš 1: ãªã¯ãšã¹ãææã®å質
ãŠãŒã¶ãŒäŸ¡å€ã«æãè¿ãã®ã¯ãªã¯ãšã¹ãææãªã®ã§ããŸãããããå§ããŸããããå®ããããéãã«ãŒãã§ããã¬ã¹ãã³ã¹ãããªããŒã·ã§ã³ã«å€±æããããschema ãå£ããããæ¬æ¥ããŠã¯ãããªãæåŠããããããŠãŒã¶ãŒã«åçæã匷ãããªãæå³ããããŸããã
ææšã¯ã¢ãã«åäœã§ã¯ãªããã¯ãŒã¯ããŒãåäœã§è¿œè·¡ããŠãã ããããµããŒãèŠçŽãã³ãŒãã¬ãã¥ãŒãšãŒãžã§ã³ãã補åç»åã¯ãŒã¯ãããŒããããè£å®ãžã§ãã¯ãããããç¬èªã®ããŒã¹ã©ã€ã³ãæã€ã¹ãã§ãã
ãã¹ãŠã® routing ãããåŒã³åºãã«ã€ããŠã次ã®ãã£ãŒã«ãã䜿ã£ãŠãã ãã:
| ãã£ãŒã«ã | éèŠãªçç± |
|---|---|
workload |
察話åã®ãããã¯ãçµè·¯ãšå éšãžã§ããåãã |
route_policy |
åŒã³åºãã latencyãcostãqualityãregionããŸã㯠fallback ã«ãŒã«ã®ã©ãã䜿ã£ããã瀺ã |
requested_model |
ã¢ããªã±ãŒã·ã§ã³ãäœãèŠæ±ããããèšé²ãã |
final_model |
å®éã«ã¬ã¹ãã³ã¹ãçæãããã®ãèšé²ãã |
status |
successãprovider errorãtimeoutãrate limitãvalidation failureãpolicy block ãåºå¥ãã |
accepted_output |
çµæãã¢ããªã±ãŒã·ã§ã³ç¬èªã®å質ã²ãŒããééãããã©ããã瀺ã |
retry_count |
1 åã®èŠããäžã®ãªã¯ãšã¹ãã®è£ã«ããé ããäœæ¥ã瀺ã |
fallback_count |
ã«ãŒãã£ã³ã°ã«ãã£ãŠ provider ãŸã㯠model ã®çµè·¯ã倿Žããããã©ããã瀺ã |
æãæçšãªåäžã®ææšã¯ accepted response rate ã§ã:
accepted_response_rate =
accepted_outputs / user_or_job_requests
çã® HTTP success ã代çšããªãã§ãã ãããåºåã JSON schema ã«éåããŠãããtool call ãæ¬ ããŠããã誀ã£ã modality ãçæããŠããããŸãã¯ãããã¯ãã®å¯Ÿè©±ã«éã«åããªãå Žåã200 ã®ã¬ã¹ãã³ã¹ã§ã䜿ããªãããšããããŸãã
AI routing API ã§ã¯ããã®ææšã workload ãš route policy ããšã«ç¢ºèªããå¿ èŠããããŸããæ°ãã routing ã«ãŒã«ã®åŸã« accepted response rate ãäžãããªããmodel ã® spend ãããè¯ãèŠããŠããŠãããã®ã«ãŒã«ã¯ãããã¯ãã«æªåœ±é¿ãäžããŠããŸãã
ææš 2: ãã©ãŒã«ããã¯ã®æå¹æ§
fallback ã¯ãããŒã ã AI routing API ãæ¡çšããäž»ãªçç±ã® 1 ã€ã§ãããfallback ã¯èª€è§£ãæãããšããããŸããfallback ã€ãã³ããèªåçã«è¯ãããã§ã¯ãããŸããããŠãŒã¶ãŒã«èŠãã倱æãå埩ãããã€çµæãæªåããããã³ã¹ãããããããªãå Žåã«ã®ã¿è¯ããã®ã§ãã
次㮠fallback ææšã远跡ããŠãã ãã:
| ææš | åŒãŸãã¯å®çŸ© | 確èªãã€ã³ã |
|---|---|---|
| Fallback trigger rate | å°ãªããšã 1 å fallback ãçºçãããªã¯ãšã¹ã / ç·ãªã¯ãšã¹ãæ° | æ¥å¢ã¯ provider ã®äžå®å®ããå¶éã®äžåããŸãã¯éåºŠã«æ»æç㪠timeout ã瀺ã |
| Fallback recovery rate | fallback åŸã® accepted outputs / fallback ãçºçãããªã¯ãšã¹ãæ° | å埩çãäœãå Žåãfallback çµè·¯ã¯èŠãããã«ãããªã |
| Fallback penalty | primary-only ã®æåãš fallback æåã®éã® latency ãš cost ã®å·®å | ããã«ãã£ãé«ãå Žåãå¥ã® primary route ãæ£åœåã§ãã |
| Fallback mismatch rate | schemaãtoolãmodalityããŸã㯠policy ã®äžäžèŽã§æåŠããã fallback åºå | ããã¯ã¢ãã model ãæ¬åœã«äºææ§ããããã©ããã瀺ã |
| Final-route visibility | final model/provider ããã°ã«èšé²ãããŠãããªã¯ãšã¹ãã®å²å | ãããã°ãšã³ã¹ãã¬ãã¥ãŒã«å¿ é |
Fallback recovery rate ã¯ãçµå¶å±€ã«ãçè§£ããããææšã§ã:
fallback_recovery_rate =
accepted_outputs_after_fallback / requests_that_triggered_fallback
éçºè ã«ãšã£ãŠãããéèŠãªææšã¯ fallback mismatch rate ã§ããäž»ã«ãŒããæ§é ååºåãtool callingãé·ãã³ã³ããã¹ããŠã£ã³ããŠããŸãã¯ç»åçæãã©ã¡ãŒã¿ããµããŒãããŠããå Žåãfallback ãåãå¥çŽããµããŒãããŠããªããã°ãªããŸãããããã§ãªããã°ãAI routing API ã¯ãããã€ããŒã®é害ãé ããŠããã¢ããªã±ãŒã·ã§ã³ã®é害ãæãå¯èœæ§ããããŸãã
Flatkey ã® REST API overview ã§ã¯ãAPI 㯠https://router.flatkey.ai/v1 ã§ OpenAI äºæãšããŠäœçœ®ã¥ããããŠããããšã³ããã€ã³ãããããã€ããŒãã¢ãã«ã«å¯Ÿã㊠1 ã€ã®ããŒã¹ URL ã䜿çšããŸãããã®äºææ§ã¯ç§»è¡æã«æçšã§ãããéçšææšã§ã¯åã¯ãŒã¯ããŒãã«ã€ããŠæçµã«ãŒããšåºåå¥çŽã確èªããå¿
èŠããããŸãã
ææš 3: ããŒã»ã³ã¿ã€ã«å¥ã®ã¬ã€ãã³ã·ãšã¹ã«ãŒããã
å¹³åã¬ã€ãã³ã·ã§ã¯ããŠãŒã¶ãŒãæããã€ããã¯èŠããŸãããéåžžçµè·¯ãææ¡ããã«ã¯ p50ãã»ãšãã©ã®ãŠãŒã¶ãŒåãæåŸ å€ã«ã¯ p90ãã€ã³ã·ãã³ãã¬ãã¥ãŒã«ã¯ p99 ã䜿ã£ãŠãã ããã
ã€ã³ã¿ã©ã¯ãã£ããªè£œåã§ã¯ã以äžã枬å®ããŸã:
| Metric | Use it for |
|---|---|
| Time to first token or first chunk | Chatãã³ãŒãã£ã³ã°ãšãŒãžã§ã³ããã¹ããªãŒãã³ã°ã¢ã·ã¹ã¿ã³ãã鲿ãéèŠãªãããã UI |
| End-to-end duration | éã¹ããªãŒãã³ã°å¿çãæ§é ååºåãç»åã¿ã¹ã¯ãtool calls |
| p90 latency by route policy | ãŠãŒã¶ãŒåã SLO ã¬ãã¥ãŒ |
| p99 latency by provider and final model | ã€ã³ã·ãã³ãããã³ããŒã«ãªã¹ã¯ã®ã¬ãã¥ãŒ |
ãããåŠçã agentic ã¯ãŒã¯ããŒãã§ã¯ãæåã®ããŒã¯ã³é床ãããã¹ã«ãŒãããã®æ¹ãéèŠãªå ŽåããããŸã:
| Metric | Use it for |
|---|---|
| Tokens per second | é·ãçæãžã§ããã³ãŒããšãŒãžã§ã³ããèŠçŽãæœåº |
| Completed jobs per minute | ãã¥ãŒã®å¥å šæ§ãšã¯ãŒã«ãŒã®ãµã€ãžã³ã° |
| Retry-adjusted throughput | ãšã©ãŒãš fallback ãèæ ®ããå®éã®ã¹ã«ãŒããã |
OpenTelemetry ã®çæ AI ã®ã»ãã³ãã£ãã¯èŠçŽ ã¯ãããŒã¯ã³äœ¿çšéããªãã¬ãŒã·ã§ã³æéãæåã®ãã£ã³ã¯ãŸã§ã®æéãåºåãã£ã³ã¯ããšã®æéãªã©ã®ææšãå®çŸ©ããŠããããæçšã§ãã忥ã«ã¹ããŒãå šäœãã³ããŒããå¿ èŠã¯ãããŸããããåŸã§å¯èŠ³æž¬æ§ãåä»ã«ããäžçºéãã®ååã invent ããã®ã¯é¿ããã¹ãã§ãã
AI routing API ã§ã¯ãããŒã»ã³ã¿ã€ã«ææšã¯åžžã«æ¬¡ã®é ç®ã§ã»ã°ã¡ã³ãåããå¿ èŠããããŸã:
- workload
- route policy
- requested model
- final model
- final provider or route
- streaming versus non-streaming
- retry and fallback status
ãã®ã»ã°ã¡ã³ããŒã·ã§ã³ãããã£ãŒããéçšäžã®çãã«å€ããŸããããããªããã°ãã¬ã€ãã³ã·ãæªåããããšã¯åãã£ãŠããåå ããããã€ããŒãªã®ããã¢ãã«ãªã®ããã«ãŒãã£ã³ã°ã«ãŒã«ãªã®ããretry storm ãªã®ããã¯ãŒã¯ããŒãã®å€æŽãªã®ãã¯åãããŸããã
ææš 4: åãå ¥ããããåºåãããã®ã³ã¹ã
ããŒã¯ã³äŸ¡æ Œã¯åºçºç¹ã«ãããŸããã倱æãã詊è¡ãå詊è¡ãfallback 詊è¡ãæåŠãããå¿çãé·ã³ã³ããã¹ãã®ç¡é§ãã«ãŒãã£ã³ã°é害ã®ãããã°ã«è²»ããã人éã®æéã¯å«ãŸããŸããã
æ¬çªã¬ãã¥ãŒã§ã¯ãcost per accepted output ãç®åºããŸã:
cost_per_accepted_output =
total_cost_for_workload / accepted_outputs
次ã«ããã®ã³ã¹ãã以äžã«åããŸãã
| ã³ã¹ãèŠçŽ | éèŠãªçç± |
|---|---|
| åå詊è¡ã³ã¹ã | äœã倱æããªãã£ãå Žåã®åºæºã³ã¹ã |
| å詊è¡ã³ã¹ã | äžæçãªé害ãå³ããã¿ã€ã ã¢ãŠãã«ããèŠãã«ããã³ã¹ã |
| ãã©ãŒã«ããã¯ã³ã¹ã | 埩æ§çµè·¯ã«ãããã³ã¹ã |
| åŽäžåºåã³ã¹ã | 䜿ãã補å䟡å€ãçãŸãªãã£ãæ¯åº |
| ããŒã«ãŸãã¯ã¡ãã£ã¢ã®ã³ã¹ã | ææããŒã«ãç»å APIããŸãã¯åç» API ãåŒã³åºãã¯ãŒã¯ãããŒã§å¿ èŠ |
ããã¯ãçŽæ¥ã®ãããã€ããŒã¢ã«ãŠã³ããš AI routing API ãæ¯èŒããéã«ç¹ã«éèŠã§ããçŽæ¥ã®ã¢ã«ãŠã³ãã¯è¡šç€ºäŸ¡æ Œã§ã¯å®ãèŠããŠããã¬ãŒãå¶éãããŠã³ã¿ã€ã ããŸãã¯å¯Ÿå¿ã¢ãã«ã®äžè¶³ã«ãã£ãŠå詊è¡ãæäœæ¥ãçºçãããšãaccepted output ãããã®ã³ã¹ãã¯é«ããªãããšããããŸããéããŸãçã§ãã«ãŒã¿ãŒã¯äŸ¿å©ã«èŠããŠãããã¹ãŠã®ãã©ãŒã«ããã¯çµè·¯ãé«äŸ¡æ Œåž¯ã®ã¢ãã«ã«æµãããšé«é¡ã«ãªãå¯èœæ§ããããŸãã
Flatkey ã® model directory ã¯ãäŸ¡æ Œãã³ã³ããã¹ããé床ãã©ã€ããã«ã¹ãªã©ã®ã¢ãã«æ¯èŒé¢ãå ¬éããŠãããããããã§åœ¹ç«ã¡ãŸããé©åãªéçšææšã¯ãããã®ã¢ãã«ã®æ²èŒäŸ¡æ Œãæãäœãã£ããïŒãã§ã¯ãããŸãããããã®ã«ãŒãã¯ããã®ã¯ãŒã¯ããŒãã«å¯ŸããŠãæãä¿¡é Œã§ããã³ã¹ãã§ accepted output ãçã¿åºãããïŒãã§ãã
ææš 5: å¯èŠ³æž¬æ§ãšç£æ»å¯èœæ§
æã匷å㪠AI routing API ã®ææšã¯ããã£ãŒãã§ã¯ãªãããšããããããŸãããšã³ãžãã¢ãã€ã³ã·ãã³ãã®è³ªåã« 5 åã§çãããããã©ããã§ãã
æ¬çªãªã¯ãšã¹ãããšã«ãã«ãŒããåæ§æã§ããã ãã®ã³ã³ããã¹ããèšé²ããŸãã
| ç£æ»é ç® | å¿ èŠãªçã |
|---|---|
request_id |
ã©ã®æ£ç¢ºãªãªã¯ãšã¹ãã«ã€ããŠè©±ããŠããã®ãïŒ |
api_key_id ãŸãã¯ç°å¢ |
ã©ã®ããŒã ãã¢ããªããŸãã¯ç°å¢ãéä¿¡ããã®ãïŒ |
workload |
ã©ã®è£œåãã¹ãŸãã¯ãžã§ããéä¿¡ããã®ãïŒ |
route_policy |
ã©ã®ã«ãŒã«ãé©çšãããã¯ãã ã£ãã®ãïŒ |
requested_model |
ã¢ããªã¯äœãèŠæ±ããã®ãïŒ |
final_model |
äœãå¿çããã®ãïŒ |
final_provider_or_route |
ãªã¯ãšã¹ãã¯å®éã«ã©ããžè¡ã£ãã®ãïŒ |
status ãš error_type |
äœãèµ·ããã®ãïŒ |
input_tokens ãš output_tokens |
ã©ãã ãã®åŠçãè¡ãããã®ãïŒ |
cost |
ãããããã£ãã®ãïŒ |
latency_ms ãš time_to_first_chunk_ms |
ã©ãã ãé ãã£ãã®ãïŒ |
retry_count ãš fallback_count |
ã©ãã ãã®é ãã埩æ§ãçºçããã®ãïŒ |
Flatkey ã® quickstart ã§ã¯ãæåã®ãªã¯ãšã¹ãåŸã« Usage Logs ã確èªããã¢ãã«ãããŒã¯ã³æ°ãã¬ã€ãã³ã·ãã³ã¹ããæåŸ ããããæ¡å ããŠããŸããããã¯æ£ããåºç€ã§ãããããã¯ã·ã§ã³ã§ã¯ãææè ãã«ãŒãããªã·ãŒãçµæã¹ããŒã¿ã¹ããã©ãŒã«ããã¯ã®æèã远å ãããã°ãã€ã³ã·ãã³ãã¬ãã¥ãŒãšè²¡åã¬ãã¥ãŒã®äž¡æ¹ãæ¯ããããããã«ããŸãã
AI routing API ã¹ã³ã¢ã«ãŒã
è³Œå ¥åãç§»è¡åŸããããŠææ¬¡ã¬ãã¥ãŒã®éã«ã¯ããã®ã¹ã³ã¢ã«ãŒãã䜿ã£ãŠãã ããã
| Question | Metric | Pass condition |
|---|---|---|
| ãŠãŒã¶ãŒã¯å®çšçãªåçãåŸãããŠãããïŒ | Accepted response rate | ã«ãŒãã£ã³ã°å€æŽåŸãã¯ãŒã¯ããŒãå¥ã«å®å®ããŸãã¯åäžããŠãã |
| ãã©ãŒã«ããã¯ã¯å®éã«é害ãå埩ã§ããŠãããïŒ | Fallback recovery rate | 远å ãããçµè·¯ã®è€éããæ£åœåã§ããã»ã©é«ã |
| ãã©ãŒã«ããã¯ã¯äºææ§ããããïŒ | Fallback mismatch rate | ãã©ãŒã«ããã¯ãã¢ããªã±ãŒã·ã§ã³ã¬ãã«ã®é害ãçºçãããªãçšåºŠã«äœã |
| ãŠãŒã¶ãŒäœéšã¯æ¹åããŠãããïŒ | p90/p99 latency, time to first chunk | ã¯ãŒã¯ããŒãåºæã® SLO ãæºãããŠãã |
| ã·ã¹ãã ã¯å®éã«ããå®äŸ¡ã«ãªã£ãŠãããïŒ | Cost per accepted output | ãªãã©ã€ããã©ãŒã«ããã¯ãæåŠãããåºåãå«ãããšäœããªã |
| ãšã³ãžãã¢ã¯ã€ã³ã·ãã³ãããããã°ã§ãããïŒ | Request audit completeness | ã«ãŒããæçµã¢ãã«ããšã©ãŒãã¬ã€ãã³ã·ãããŒã¯ã³ãã³ã¹ããå¯èŠåãããŠãã |
| 財åã¯å©çšç¶æ³ãã¬ãã¥ãŒã§ãããïŒ | Cost by key, workload, route, and model | æ¯åºãæ åœè ãšãããã¯ãã®ãã¹ã«ã²ãä»ããŠãã |
| ããŒã ã¯å®å šã«å€æŽã§ãããïŒ | Before/after route-policy comparison | æ°ããããªã·ãŒãå±éããåå¥ã«æž¬å®ã§ãã |
ãã®ã¹ã³ã¢ã«ãŒãã«å¿ èŠãªé ç®ããã³ããŒãå ¬éã§ããªãå Žåã§ãããã®è£œåã䜿ãããšã¯ã§ããŸãããæ¬çªã® AI ãã©ãã£ãã¯ã«ãããå¶åŸ¡ãã¬ãŒã³ãšããŠæ±ãã¹ãã§ã¯ãããŸããã
ã·ã³ãã«ãª 30 æ¥éã®æž¬å®èšç»
èãåŸããã¹ãŠã®ææšãäžåºŠã«èšæž¬ããããšããªãã§ãã ãããAI routing API ã圹ç«ã£ãŠãããã©ããã瀺ãããŒã¹ã©ã€ã³ããå§ããŸãããã
第 1 é±: ã¯ãŒã¯ããŒããšãªã¯ãšã¹ã ID ãå®çŸ©ãã
3ã5 åã®ã¯ãŒã¯ããŒããéžã³ãŸãã
- 1 ã€ã®å¯Ÿè©±åãã£ãããŸãã¯ã¢ã·ã¹ã¿ã³ãã®ãã¹
- 1 ã€ã®ãšãŒãžã§ã³ãåãŸãã¯ããŒã«åŒã³åºãã®ãã¹
- 1 ã€ã®ããããŸãã¯å éšèªååã®ãã¹
- 1 ã€ã®é«ã³ã¹ãã¢ãã«ã®ãã¹
- 1 ã€ã®ãã©ãŒã«ããã¯ã«ææãªãã¹
request ID ãš workload ã©ãã«ã远å ããŸãããã® 2 ã€ã®é ç®ããªããšãåŸã®åæã¯æšæž¬ã«ãªã£ãŠããŸããŸãã
第 2 é±: çµæãšã«ãŒãã®ãã£ãŒã«ãã远å ãã
åã¯ãŒã¯ããŒãã«ã€ããŠãèŠæ±ãããã¢ãã«ãæçµã¢ãã«ãã«ãŒãããªã·ãŒãã¹ããŒã¿ã¹ããªãã©ã€åæ°ããã©ãŒã«ããã¯åæ°ããããŠåãå ¥ããããåºåãèšé²ããŸãããšã©ãŒã¿ã€ãã¯äœã«ãŒãã£ããªãã£ã«ä¿ã¡ãŸããããtimeoutãrate limitãprovider errorãvalidation failureãpolicy blockãunknown ã§å§ããã«ã¯ååã§ãã
第 3 é±: ã¬ã€ãã³ã·ãšã³ã¹ãã远å ãã
æäœæéãã¹ããªãŒãã³ã°ã¯ãŒã¯ããŒãã®æåã® chunk ãŸã§ã®æéãå ¥åããŒã¯ã³ãåºåããŒã¯ã³ãã³ã¹ããèšé²ããŸããp90/p99 ã¬ã€ãã³ã·ã¯ã¯ãŒã¯ããŒãå¥ãšæçµã«ãŒãå¥ã«åããŠåæããŸãã
第 4 é±: ã«ãŒãã£ã³ã°å€æãã¬ãã¥ãŒãã
ããã§æ¬¡ãæ¯èŒããŸãã
- çŽæ¥ã® provider ãã¹ãš routed ãã¹
- primary-only ã®æåãš fallback ã®æå
- æ§ route policy ãšæ° route policy
- 1 ãªã¯ãšã¹ããããã®ã³ã¹ããš accepted output ãããã®ã³ã¹ã
- å¹³åã¬ã€ãã³ã·ãš p90/p99 ã¬ã€ãã³ã·
ãã®ã¬ãã¥ãŒã¯ãèŠæ ãã®è¯ãããã·ã¥ããŒãã§ã¯ãªããroute-policy ã®å€æŽãçã¿åºãã¹ãã§ãã
ããããééã
ééã 1: ãªãã©ã€ãèŠããªããã®ãšããŠæ±ãã
ãªãã©ã€ã¯ãŠãŒã¶ãŒäœéšãšè«æ±é¡ã®äžéšã§ããå¿
ãã«ãŠã³ãããŸãããã
ééã 2: 倱æããåºåãèæ
®ããã«ã¢ãã«ã³ã¹ããå ±åããã
ã¢ããªã±ãŒã·ã§ã³ãçµæãç Žæ£ãããªãããã®æ¯åºã¯è£œå䟡å€ãçã¿ãŸããã
ééã 3: ãã¹ãŠã®ã¯ãŒã¯ããŒãã«åãã¬ã€ãã³ã·ææšã䜿ãã
ã³ãŒãã£ã³ã°ãšãŒãžã§ã³ãããã£ããããããç»åã¯ãŒã¯ãããŒãå€éã®ãšã³ãªããã¡ã³ããžã§ãã§ã¯ãããããç°ãªããããå€ãå¿
èŠã§ãã
ééã 4: ãã©ãŒã«ããã¯ãä¿¡é Œæ§ãšå矩ã ãšèããã
ãã©ãŒã«ããã¯ãä¿¡é Œæ§ãé«ããã®ã¯ãããã¯ã¢ããçµè·¯ãäºææ§ãæã¡ãå埩ããåºåãåãå
¥ããããå Žåã ãã§ãã
ééã 5: ã«ãŒã¿ãŒã¯æž¬ãããããžãã¹çµè·¯ã¯æž¬ããªãã
AI routing API ã¯ã€ã³ãã©ã§ããæ¬åœã«éèŠãªææšã¯ã補åã®çµè·¯ãããä¿¡é Œã§ããããã«ãªã£ãããããéããªã£ãããããå®ããªã£ããããããã¯ãããã°ãããããªã£ããã§ããåãååã¯ãç»åçæ API ã®ææšã®ãããªããçãé åã«ãåœãŠã¯ãŸããŸããéä¿¡ããåŒã³åºãæ°ã ãã§ãªããåãå
¥ããããåºåãšéçšã³ã¹ããæž¬å®ããŸãããã
ãããã質å
AI routing API ã§æãéèŠãªææšã¯äœã§ããïŒ
å€ãã®ããŒã ã«ãšã£ãŠãæãéèŠãª AI routing API ã®ææšã¯ã¯ãŒã¯ããŒãããšã®åãå ¥ãæžã¿å¿ççã§ããããã¯ãã«ãŒãã£ã³ã°ã®æåãšãã¢ããªã±ãŒã·ã§ã³ãå®çšå¯èœãªåçãåãåãããã©ãããçµã³ã€ããŸãã
ãã©ãŒã«ããã¯çã¯ä¿¡é Œæ§ã®ææšãšããŠæå¹ã§ããïŒ
ãã©ãŒã«ããã¯çã¯ã·ã°ãã«ã§ãããæåææšã§ã¯ãããŸããããã©ãŒã«ããã¯çãé«ãããšã¯ãAI routing API ããããã€ããŒã®åé¡ãå埩ããŠããããšã瀺ãå ŽåããããŸããããã©ã€ããªçµè·¯ãäžå®å®ã ã£ãããã¿ã€ã ã¢ãŠãèšå®ãé床ã«å³ããã£ããããããšãæå³ããŸãããã©ãŒã«ããã¯å埩çãšãã©ãŒã«ããã¯äžäžèŽçãšçµã¿åãããŠãã ããã
ã³ã¹ããšã¬ã€ãã³ã·ã®ã©ã¡ããå ã«æé©åãã¹ãã§ããïŒ
ã¯ãŒã¯ããŒãããšã«æé©åããŠãã ãããã€ã³ã¿ã©ã¯ãã£ããªçµè·¯ã§ã¯éåžžãp90 ãŸã㯠p99 ã®ã¬ã€ãã³ã·å¶çŽãå¿ èŠã§ãããããçµè·¯ã§ã¯ãã³ã¹ããã¹ã«ãŒããããåªå ã§ããããšãå€ãã§ããééãã¯ã1ã€ã® AI routing API ããªã·ãŒããã¹ãŠã®ã¯ãŒã¯ããŒãã«é©çšããããšã§ãã
Flatkey 㯠AI routing API ã®æž¬å®ã«ã©ãé¢ä¿ããŸããïŒ
Flatkey 㯠https://router.flatkey.ai/v1 ã« OpenAI äºæ APIãå
±æã¢ãã«ã«ã¿ãã°ããããŠã¢ãã«ãããŒã¯ã³æ°ãã¬ã€ãã³ã·ãã³ã¹ãã瀺ã䜿çšãã°ãæäŸããŸããããã«ãããã«ãŒãã£ã³ã°ããã AI åŒã³åºããæž¬å®ããããã®å®è·µçãªåºç€ãããŒã ã«äžããããŸãããšã¯ãããæ¬çªããŒã ã¯ã¯ãŒã¯ããŒãã©ãã«ãåãå
¥ãæžã¿åºåã®ã«ãŒã«ãã«ãŒãããªã·ãŒã®ã¬ãã¥ãŒãå®çŸ©ãç¶ããå¿
èŠããããŸãã
æåŸã«
AI routing API ã¯ãæ¬çªã€ã³ãã©ãšããŠæž¬å®ãã䟡å€ããããŸãããªã¯ãšã¹ãæ°ãããŒã¯ã³ç·æ°ãã¢ãã«åã¯è¡šå±€ã«ãããŸããã
æ¬åœã«éèŠãªææšã¯ãåãå ¥ãæžã¿å¿ççããã©ãŒã«ããã¯å埩ããã©ãŒã«ããã¯äžäžèŽãp90/p99 ã¬ã€ãã³ã·ãåãå ¥ãæžã¿åºåãããã®ã³ã¹ããç£æ»ã®å®å šæ§ã§ããããããã¯ãŒã¯ããŒããšã«ãŒãããªã·ãŒããšã«è¿œè·¡ããã°ãAI routing API ã¯è©äŸ¡ããããã調æŽãããããªãããããã¯ãããšã³ãžãã¢ãªã³ã°ã財åããäœãå€ãã£ãã®ããåããããšãã«ã説æãããããªããŸãã
çŸåšã«ãŒããæ¯èŒããŠãããªãããŸãã¯å®çšçãªãã¹ãããå§ããŠãã ãããã€ãŸããåãã¯ãŒã¯ããŒããçŸåšã®ãããã€ãçµç±ã®ãã¹ãš Flatkey ã® OpenAI äºæããŒã¹ URL çµç±ã§éä¿¡ããåãå ¥ããããåºåãæçµã¢ãã«ãã¬ã€ãã³ã·ãããŒã¯ã³ãã³ã¹ãããã©ãŒã«ããã¯åäœãåãã¹ã³ã¢ã«ãŒãã§æ¯èŒããŸããããŒã¹å±€ããŸã å®çŸ©ããŠããæ®µéãªãããŸã LLM API ã®åºæ¬ããå§ãããããã¯ã·ã§ã³ã®ãã©ãã£ãã¯ãã«ãŒã¿ãŒãéãå§ããããã®ã¹ã³ã¢ã«ãŒãã䜿ã£ãŠãã ããã



