最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

在JavaScript中調(diào)用OpenAI?API的詳細(xì)步驟

 更新時(shí)間:2025年04月01日 09:51:24   作者:匹馬夕陽(yáng)  
在?JavaScript?中調(diào)用?OpenAI?API?也非常簡(jiǎn)單,下面我將結(jié)合具體代碼示例以及使用場(chǎng)景,詳細(xì)講解如何使用?JavaScript?調(diào)用?OpenAI?API,需要的朋友可以參考下

1. 安裝 OpenAI 官方庫(kù)(可選)

如果你使用 Node.js 環(huán)境,可以通過(guò) npm 或 yarn 安裝 OpenAI 的官方 SDK。這樣你可以更方便地與 API 進(jìn)行交互。

npm install openai

如果你在瀏覽器環(huán)境中使用 fetch 來(lái)調(diào)用 API,則不需要安裝任何庫(kù)。

2. 準(zhǔn)備 API Key

和 Python 一樣,你需要在 OpenAI 賬戶 中獲取 API Key,并將其用于請(qǐng)求中。

3. 使用 JavaScript 調(diào)用 OpenAI API

基本示例:使用 fetch 調(diào)用 ChatGPT API

代碼示例(瀏覽器環(huán)境):

// 獲取 OpenAI API Key(請(qǐng)確保此密鑰安全)
const apiKey = 'your_openai_api_key';

// 請(qǐng)求的 API URL
const url = 'https://api.openai.com/v1/chat/completions';

// 定義請(qǐng)求體
const requestBody = {
  model: "gpt-3.5-turbo",  // 可以是 gpt-4 或其他模型
  messages: [
    { role: "system", content: "你是一個(gè)樂(lè)于助人的AI助手。" },
    { role: "user", content: "幫我寫一個(gè)Python計(jì)算兩個(gè)數(shù)之和的函數(shù)。" }
  ],
  temperature: 0.7,  // 控制生成內(nèi)容的隨機(jī)性,范圍 0-1
  max_tokens: 150,   // 控制生成內(nèi)容的最大長(zhǎng)度
};

// 發(fā)送請(qǐng)求到 OpenAI API
fetch(url, {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': `Bearer ${apiKey}`,
  },
  body: JSON.stringify(requestBody),
})
  .then(response => response.json())
  .then(data => {
    console.log(data.choices[0].message.content);  // 輸出生成的內(nèi)容
  })
  .catch(error => {
    console.error('Error:', error);
  });

運(yùn)行結(jié)果:

def add_numbers(a, b):
    return a + b

4. 高級(jí)使用場(chǎng)景:

場(chǎng)景 1:生成文本(例如文章、博客等)

代碼示例:

const generateContent = async (userInput) => {
  const apiKey = 'your_openai_api_key';
  const url = 'https://api.openai.com/v1/chat/completions';
  
  const requestBody = {
    model: "gpt-4",  // 選擇合適的模型
    messages: [
      { role: "system", content: "你是一名專業(yè)的文案編輯。" },
      { role: "user", content: userInput }
    ],
    temperature: 0.6,
    max_tokens: 200,
  };

  try {
    const response = await fetch(url, {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
        'Authorization': `Bearer ${apiKey}`,
      },
      body: JSON.stringify(requestBody),
    });

    const data = await response.json();
    console.log(data.choices[0].message.content);  // 輸出生成的文案
  } catch (error) {
    console.error('Error:', error);
  }
};

// 用戶輸入
generateContent("幫我寫一段關(guān)于AI教育工具的產(chǎn)品介紹。");

場(chǎng)景 2:創(chuàng)建問(wèn)答機(jī)器人

代碼示例:

const chatbotResponse = async (userInput) => {
  const apiKey = 'your_openai_api_key';
  const url = 'https://api.openai.com/v1/chat/completions';
  
  const requestBody = {
    model: "gpt-3.5-turbo",  // 使用 ChatGPT 模型
    messages: [
      { role: "system", content: "你是一個(gè)智能問(wèn)答機(jī)器人,可以回答各種問(wèn)題。" },
      { role: "user", content: userInput }
    ],
    temperature: 0.7,
    max_tokens: 150,
  };

  try {
    const response = await fetch(url, {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
        'Authorization': `Bearer ${apiKey}`,
      },
      body: JSON.stringify(requestBody),
    });

    const data = await response.json();
    return data.choices[0].message.content;  // 返回生成的回復(fù)
  } catch (error) {
    console.error('Error:', error);
    return "發(fā)生錯(cuò)誤,請(qǐng)稍后再試。";
  }
};

// 用戶輸入
const userQuery = "如何用Python讀取JSON文件?";
chatbotResponse(userQuery).then(response => {
  console.log(response);  // 輸出問(wèn)答機(jī)器人回復(fù)
});

場(chǎng)景 3:批量處理多個(gè)請(qǐng)求

代碼示例:

const batchProcess = async (texts) => {
  const apiKey = 'your_openai_api_key';
  const url = 'https://api.openai.com/v1/chat/completions';

  const responses = [];
  for (const text of texts) {
    const requestBody = {
      model: "gpt-3.5-turbo",
      messages: [
        { role: "user", content: text }
      ],
      temperature: 0.6,
      max_tokens: 100,
    };

    try {
      const response = await fetch(url, {
        method: 'POST',
        headers: {
          'Content-Type': 'application/json',
          'Authorization': `Bearer ${apiKey}`,
        },
        body: JSON.stringify(requestBody),
      });

      const data = await response.json();
      responses.push(data.choices[0].message.content);
    } catch (error) {
      console.error('Error:', error);
      responses.push('錯(cuò)誤:無(wú)法生成回復(fù)');
    }
  }

  return responses;
};

// 批量處理文本
const texts = [
  "幫我總結(jié)這段話的重點(diǎn):Python是一種非常流行的編程語(yǔ)言。",
  "幫我翻譯這句話:Hello, how are you?",
  "生成一句關(guān)于人工智能未來(lái)發(fā)展的預(yù)測(cè)。"
];

batchProcess(texts).then(responses => {
  console.log(responses.join('\n'));
});

5. 運(yùn)行時(shí)優(yōu)化和注意事項(xiàng):

  1. API 限制和錯(cuò)誤處理:

    • 在高頻請(qǐng)求的情況下,確保處理 429 Too Many Requests 錯(cuò)誤。
    • 可以實(shí)現(xiàn)重試機(jī)制,例如在遇到限流錯(cuò)誤時(shí)延時(shí)一段時(shí)間后再發(fā)起請(qǐng)求。
  2. API Key 安全:

    • 切勿在前端代碼中暴露 API Key,尤其是公開的前端應(yīng)用。
    • 推薦使用環(huán)境變量或服務(wù)器代理來(lái)隱藏 API Key。
  3. 費(fèi)用控制:

    • OpenAI 的 API 按照生成的 tokens(字符數(shù)量)進(jìn)行計(jì)費(fèi)。根據(jù) max_tokens 來(lái)控制生成的文本長(zhǎng)度,避免產(chǎn)生不必要的費(fèi)用。
  4. API 調(diào)用頻率:

    • 如果在短時(shí)間內(nèi)發(fā)送大量請(qǐng)求,可以通過(guò)添加適當(dāng)?shù)?nbsp;delay 或 debounce 來(lái)避免頻繁調(diào)用。

通過(guò)以上示例,你可以在 JavaScript 環(huán)境中靈活調(diào)用 OpenAI API 來(lái)完成多種任務(wù)

到此這篇關(guān)于在JavaScript中調(diào)用OpenAI API的詳細(xì)步驟的文章就介紹到這了,更多相關(guān)JavaScript調(diào)用OpenAI API內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 淺談JavaScript的push(),pop(),concat()方法

    淺談JavaScript的push(),pop(),concat()方法

    下面小編就為大家?guī)?lái)一篇淺談JavaScript的push(),pop(),concat()方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-06-06
  • 微信小程序?qū)崿F(xiàn)導(dǎo)航功能的操作步驟

    微信小程序?qū)崿F(xiàn)導(dǎo)航功能的操作步驟

    這篇文章主要給大家介紹了關(guān)于微信小程序?qū)崿F(xiàn)導(dǎo)航功能的操作步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • JavaScript函數(shù)作用域鏈分析

    JavaScript函數(shù)作用域鏈分析

    這篇文章主要介紹了JavaScript函數(shù)作用域鏈,實(shí)例分析了函數(shù)作用域鏈的原理與使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-02-02
  • js在ie下打開對(duì)話窗口的方法小結(jié)

    js在ie下打開對(duì)話窗口的方法小結(jié)

    下面小編就為大家?guī)?lái)一篇js在ie下打開對(duì)話窗口的方法小結(jié)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-10-10
  • JavaScript?Promise多并發(fā)問(wèn)題的解決方法詳解

    JavaScript?Promise多并發(fā)問(wèn)題的解決方法詳解

    提起控制并發(fā),大家應(yīng)該不陌生,這篇文章主要來(lái)和大家介紹一下JavaScript如何解決Promise多并發(fā)問(wèn)題,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-09-09
  • Webpack如何引入bootstrap的方法

    Webpack如何引入bootstrap的方法

    本篇文章主要介紹了Webpack如何引入bootstrap的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06
  • 通過(guò)javascript進(jìn)行UTF-8編碼的實(shí)現(xiàn)方法

    通過(guò)javascript進(jìn)行UTF-8編碼的實(shí)現(xiàn)方法

    下面小編就為大家?guī)?lái)一篇通過(guò)javascript進(jìn)行UTF-8編碼的實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-06-06
  • 微信小程序之裁剪圖片成圓形的實(shí)現(xiàn)代碼

    微信小程序之裁剪圖片成圓形的實(shí)現(xiàn)代碼

    最近在開發(fā)小程序,產(chǎn)品經(jīng)理提了一個(gè)需求,要求微信小程序換頭像,用戶剪裁圖片必須是圓形。這篇文章主要介紹了微信小程序之裁剪圖片成圓形 ,需要的朋友可以參考下
    2018-10-10
  • 原生JS實(shí)現(xiàn)的輪播圖功能詳解

    原生JS實(shí)現(xiàn)的輪播圖功能詳解

    這篇文章主要介紹了原生JS實(shí)現(xiàn)的輪播圖功能,結(jié)合實(shí)例形式分析了javascript實(shí)現(xiàn)輪播圖的原理、操作技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2018-08-08
  • JavaScript圖片懶加載的優(yōu)化方法詳解

    JavaScript圖片懶加載的優(yōu)化方法詳解

    這篇文章主要為大家詳細(xì)介紹了JavaScript圖片懶加載的優(yōu)化方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-03-03

最新評(píng)論

隆德县| 镇坪县| 永康市| 奉化市| 崇左市| 普宁市| 宁陕县| 鄂伦春自治旗| 北票市| 沙坪坝区| 高邮市| 武穴市| 余姚市| 巩义市| 菏泽市| 缙云县| 镇雄县| 革吉县| 松原市| 南和县| 石楼县| 育儿| 新沂市| 九江县| 汕头市| 罗源县| 慈溪市| 彭州市| 吐鲁番市| 宝清县| 青田县| 盐边县| 和林格尔县| 库车县| 赫章县| 汉沽区| 扎赉特旗| 龙游县| 彩票| 仁化县| 彰化市|