OpenAI SDKãFastMetalã«åãã â base_urlãšapi_keyã®2ç¹ã ã
ãã§ã« OpenAI SDK ã䜿ã£ãŠãããªããFastMetal ãžã®åãæ¿ãã§å€ããã®ã¯2ç¹ã ãã§ãããªã¯ãšã¹ãã®éä¿¡å
ã瀺ã base_url ãšãèªèšŒã«äœ¿ã api_key ãå·®ãæ¿ããã°ãæ¢åã®ã³ãŒãã¯ãã®ãŸãŸåããŸããFastMetal 㯠OpenAI äºæã® API ãæäŸããŠãããããchat.completions.create ãªã©ã®åŒã³åºãæ¹ãã¬ã¹ãã³ã¹ã®åœ¢ã¯å€ãããŸããã1æ¬ã®ããŒã§è€æ°ã¢ãã«ãåŒã³åããããæéã¯å建ãŠã®åæãã§ãã
倿Žç¹ã¯2ã€ã ã
OpenAI äºæãªã®ã§ãSDK ãã³ãŒãã®æ§é ããã®ãŸãŸäœ¿ããŸããå·®ãæ¿ããã®ã¯æ¬¡ã®2ãæã§ãã
base_urlïŒæ¥ç¶å ïŒãhttps://api.fastmetal.ai/v1ã«api_keyïŒèªèšŒããŒïŒã FastMetal ã® API ããŒã«
API ããŒã¯ããã·ã¥ããŒãã§çºè¡ã§ããŸããããŒã¯1æ¬ã§ãåŒã³åºãã¢ãã«ã¯ model ãã©ã¡ãŒã¿ã® ID ã§åãæ¿ããŸããbase_url ã®æ«å°Ÿã« /v1 ãå¿
ãä»ããç¹ã ãèŠããŠãããŠãã ããã
Python ã®äŸ
openai ããã±ãŒãžïŒ1.x 以éïŒã§ã®ãµã³ãã«ã§ããpip install openai ã§å°å
¥ã§ããŸãã
from openai import OpenAI
client = OpenAI(
base_url="https://api.fastmetal.ai/v1",
api_key="sk-...", # FastMetal ã® API ããŒ
)
resp = client.chat.completions.create(
model="anthropic-claude-haiku-4-5",
messages=[
{"role": "system", "content": "ããªãã¯èŠªåãªã¢ã·ã¹ã¿ã³ãã§ãã"},
{"role": "user", "content": "ããã«ã¡ã¯"},
],
)
print(resp.choices[0].message.content)
Node.js / TypeScript ã®äŸ
npm install openai ã§å°å
¥ããŸããPython ãšéããããŒå㯠baseURLïŒURL ã倧æåïŒã«ãªãç¹ã«æ³šæããŠãã ããã
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.fastmetal.ai/v1",
apiKey: process.env.FASTMETAL_API_KEY,
});
const resp = await client.chat.completions.create({
model: "anthropic-claude-sonnet-4-6",
messages: [
{ role: "system", content: "ããªãã¯èŠªåãªã¢ã·ã¹ã¿ã³ãã§ãã" },
{ role: "user", content: "ããã«ã¡ã¯" },
],
});
console.log(resp.choices[0].message.content);
ç°å¢å€æ°ã§ç®¡çãã
æ¥ç¶å
ãšããŒãã³ãŒãã«çŽæ¥æžããããªãå Žåã¯ãç°å¢å€æ°ã䜿ããŸããOpenAI SDK 㯠OPENAI_BASE_URL ãš OPENAI_API_KEY ãèªåã§èªã¿èŸŒããããåŒæ°ãæž¡ããã« OpenAI() / new OpenAI() ãåŒã¶ã ãã§æžã¿ãŸãã
export OPENAI_BASE_URL="https://api.fastmetal.ai/v1"
export OPENAI_API_KEY="sk-..."
ãã®æ¹æ³ãªããéçºç°å¢ãšæ¬çªç°å¢ã§æ¥ç¶å ãåãæ¿ããããããŒããœãŒã¹ã³ãŒãããåé¢ãããããã®ãç°¡åã«ãªããŸããCI ãã³ã³ããã®èšå®ã§ãæ±ãããããããããã§ãã
ã€ãŸããããããã€ã³ã
åãæ¿ãã§åŒã£ããããããã®ã¯ãã»ãŒæ¬¡ã®3ã€ã§ããçç¶ããåå ãçŽ æ©ãç¹å®ããŠãã ããã
| çç¶ | åå | å¯ŸåŠ |
|---|---|---|
| 404 / Not Found ãè¿ã | base_url ã®æ«å°Ÿã« /v1 ãç¡ãããŸãã¯äœåãªãã¹ãä»ããŠãã | https://api.fastmetal.ai/v1 ãæ£ç¢ºã«æå®ãã |
| ã¢ãã«ãèŠã€ãããªãæšã®ãšã©ãŒ | model ã« OpenAI çšã®ååïŒäŸ: gpt-4oïŒãæå®ããŠãã | 察å¿ã¢ãã«ã® FastMetal ã® IDïŒäŸ: anthropic-claude-haiku-4-5ïŒãæå®ãã |
| äžéšã®ãã©ã¡ãŒã¿ãå¹ããªãïŒãšã©ãŒã«ãªã | OpenAI åºæãç¹å®ãããã€ãåãã®ãã©ã¡ãŒã¿ãéã£ãŠãã | æšæºã® messages temperature max_tokens çã䜿ããé察å¿ã®é
ç®ã¯å€ã |
| 401 / èªèšŒãšã©ãŒ | ããŒã OpenAI ã®ãã®ã®ãŸãŸããŸãã¯æªèšå® | FastMetal ã®ããŒã«å·®ãæ¿ããç°å¢å€æ°ã®èªã¿èŸŒã¿ã確èªãã |
ãããã質å
Q. æ¢åã® OpenAI åãã³ãŒãã¯ã©ããŸã§æžãæããå¿
èŠã§ããïŒ
A. ååãšã㊠base_urlïŒbaseURLïŒãš api_keyïŒapiKeyïŒã®2ç¹ããã㊠model ã®æå®ã ãã§ãããªã¯ãšã¹ãã®çµã¿ç«ãŠãã¬ã¹ãã³ã¹ã®èªã¿åãæ¹ã¯å€ãããŸããã
Q. ã¹ããªãŒãã³ã°ã颿°åŒã³åºãïŒtoolsïŒã¯äœ¿ããŸããïŒ
A. OpenAI äºæã®æšæºçãªæ©èœã¯ãã®ãŸãŸå©çšã§ããŸããstream=True ã§ã®ã¹ããªãŒãã³ã°ããOpenAI ãšåãæžãæ¹ã§åããŸãã
Q. 1æ¬ã®ããŒã§è€æ°ã®ã¢ãã«ã䜿ãåããããŸããïŒ
A. ã¯ããããŒã¯1æ¬ã®ãŸãŸãmodel ã«æå®ãã ID ãå€ããã ãã§ãClaude ç³»ã GLM ç³»ãªã©è€æ°ã®ã¢ãã«ãåŒã³åããããŸããå©çšã§ãã ID ã¯å¯Ÿå¿ã¢ãã«ã§ç¢ºèªã§ããŸãã
次ã®ã¹ããã
ãŸãã¯ããã·ã¥ããŒãã§ããŒãçºè¡ããäžã®ãµã³ãã«ãåãããŠã¿ãŠãã ãããå©çšã§ããã¢ãã«ã®äžèЧã¯å¯Ÿå¿ã¢ãã«ã«ãèªèšŒããã©ã¡ãŒã¿ã®è©³çްã¯ããã¥ã¡ã³ãã«ãŸãšãŸã£ãŠããŸããæ¢åã® OpenAI SDK ã®ã³ãŒãè³ç£ããã®ãŸãŸæŽ»ãããªãããFastMetal ã®è€æ°ã¢ãã«ãå建ãŠã§äœ¿ããŸãã