diff --git a/src/content/docs/ai-gateway/providers/openai.mdx b/src/content/docs/ai-gateway/providers/openai.mdx index d009813f78eba3e..a4bd9c995ae7e3e 100644 --- a/src/content/docs/ai-gateway/providers/openai.mdx +++ b/src/content/docs/ai-gateway/providers/openai.mdx @@ -11,9 +11,21 @@ pcx_content_type: get-started https://gateway.ai.cloudflare.com/v1/{account_id}/{gateway_id}/openai ``` +### Chat completions endpoint + +```txt +https://gateway.ai.cloudflare.com/v1/{account_id}/{gateway_id}/openai/chat/completions \ +``` + +### Responses endpoint + +```txt +https://gateway.ai.cloudflare.com/v1/{account_id}/{gateway_id}/openai/responses \ +``` + ## URL structure -When making requests to OpenAI, replace `https://api.openai.com/v1` in the URL you’re currently using with `https://gateway.ai.cloudflare.com/v1/{account_id}/{gateway_id}/openai`. +When making requests to OpenAI, replace `https://api.openai.com/v1` in the URL you are currently using with `https://gateway.ai.cloudflare.com/v1/{account_id}/{gateway_id}/openai`. ## Prerequisites @@ -24,34 +36,31 @@ When making requests to OpenAI, ensure you have the following: - An active OpenAI API token. - The name of the OpenAI model you want to use. -## Examples +## Chat completions endpoint -### cURL +### cURL example -```bash title="Request" +```bash curl https://gateway.ai.cloudflare.com/v1/{account_id}/{gateway_id}/openai/chat/completions \ - --header 'Authorization: Bearer {openai_token}' \ - --header 'Content-Type: application/json' \ - --data ' { - "model": "gpt-4o-mini", - "messages": [ - { - "role": "user", - "content": "What is Cloudflare" - } - ] - } -' +--header 'Authorization: Bearer {openai_token}' \ +--header 'Content-Type: application/json' \ +--data '{ + "model": "gpt-4o-mini", + "messages": [ + { + "role": "user", + "content": "What is Cloudflare?" + } + ] +}' ``` -### Use OpenAI SDK with JavaScript +### JavaScript SDK example -If you are using a library like openai-node, set the `baseURL` to your OpenAI endpoint like this: - -```js title="JavaScript" +```js import OpenAI from "openai"; -const apiKey = "my api key"; // defaults to process.env["OPENAI_API_KEY"] +const apiKey = "my api key"; // or process.env["OPENAI_API_KEY"] const accountId = "{account_id}"; const gatewayId = "{gateway_id}"; const baseURL = `https://gateway.ai.cloudflare.com/v1/${accountId}/${gatewayId}/openai`; @@ -65,17 +74,66 @@ try { const model = "gpt-3.5-turbo-0613"; const messages = [{ role: "user", content: "What is a neuron?" }]; const maxTokens = 100; - const chatCompletion = await openai.chat.completions.create({ model, messages, max_tokens: maxTokens, }); - const response = chatCompletion.choices[0].message; + console.log(response); +} catch (e) { + console.error(e); +} +``` + +## OpenAI Responses endpoint + +### cURL example + +```bash +curl https://gateway.ai.cloudflare.com/v1/{account_id}/{gateway_id}/openai/responses \ +--header 'Authorization: Bearer {openai_token}' \ +--header 'Content-Type: application/json' \ +--data '{ + "model": "gpt-4.1", + "input": [ + { + "role": "user", + "content": "Write a one-sentence bedtime story about a unicorn." + } + ] +}' +``` - return new Response(JSON.stringify(response)); +### JavaScript SDK example + +```js +import OpenAI from "openai"; + +const apiKey = "my api key"; // or process.env["OPENAI_API_KEY"] +const accountId = "{account_id}"; +const gatewayId = "{gateway_id}"; +const baseURL = `https://gateway.ai.cloudflare.com/v1/${accountId}/${gatewayId}/openai`; + +const openai = new OpenAI({ + apiKey, + baseURL, +}); + +try { + const model = "gpt-4.1"; + const input = [ + { + role: "user", + content: "Write a one-sentence bedtime story about a unicorn.", + }, + ]; + const response = await openai.responses.create({ + model, + input, + }); + console.log(response.output_text); } catch (e) { - return new Response(e); + console.error(e); } ```