iT邦幫忙

2024 iThome 鐵人賽

0
生成式 AI

運用生成式 AI 服務 所提供的API 實做應用開發(以Gemini及ChatGPT為例)系列 第 33

8-3 試作 Google Apps Script 呼叫 Chat API 與小結

  • 分享至 

  • xImage
  •  

8-3 試作與小結

https://ithelp.ithome.com.tw/upload/images/20240811/20046160fT59LRKovO.png

Chat API 當然也可以像前面章節所介紹開發 但 Gemini API的方式,去實作各大平台的串接及應用的開發。

以下試做 GAS 呼叫 Chat API

Prompt

以下改寫成 GAS 呼叫
回傳 message = completion.choices[0].message.content 就可以了
curl https://api.openai.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "model": "gpt-3.5-turbo",
    "messages": [
      {
        "role": "system",
        "content": "You are a helpful assistant."
      },
      {
        "role": "user",
        "content": "Who won the world series in 2020?"
      },
      {
        "role": "assistant",
        "content": "The Los Angeles Dodgers won the World Series in 2020."
      },
      {
        "role": "user",
        "content": "Where was it played?"
      }
    ]
  }'
response :
{
  "choices": [
    {
      "finish_reason": "stop",
      "index": 0,
      "message": {
        "content": "The 2020 World Series was played in Texas at Globe Life Field in Arlington.",
        "role": "assistant"
      },
      "logprobs": null
    }
  ],
  "created": 1677664795,
  "id": "chatcmpl-7QyqpwdfhqwajicIEznoc6Q47XAyW",
  "model": "gpt-3.5-turbo-0613",
  "object": "chat.completion",
  "usage": {
    "completion_tokens": 17,
    "prompt_tokens": 57,
    "total_tokens": 74
  }
}

## 回應

以下是使用 Google Apps Script (GAS) 呼叫 OpenAI API 並回傳 `message` 的範例程式碼:

```jsx
function callOpenAI() {
  var url = "<https://api.openai.com/v1/chat/completions>";
  var apiKey = "YOUR_OPENAI_API_KEY";  // 請將 YOUR_OPENAI_API_KEY 替換為實際的 API 金鑰

  var payload = {
    "model": "gpt-3.5-turbo",
    "messages": [
      {
        "role": "system",
        "content": "You are a helpful assistant."
      },
      {
        "role": "user",
        "content": "Who won the world series in 2020?"
      },
      {
        "role": "assistant",
        "content": "The Los Angeles Dodgers won the World Series in 2020."
      },
      {
        "role": "user",
        "content": "Where was it played?"
      }
    ]
  };

  var options = {
    "method": "post",
    "contentType": "application/json",
    "headers": {
      "Authorization": "Bearer " + apiKey
    },
    "payload": JSON.stringify(payload)
  };

  var response = UrlFetchApp.fetch(url, options);
  var json = JSON.parse(response.getContentText());
  var message = json.choices[0].message.content;

  Logger.log(message);
  return message;
}

請注意,您需要在腳本中替換 "YOUR_OPENAI_API_KEY" 為實際的 OpenAI API 金鑰。這段程式碼會將請求發送到 OpenAI API,然後回傳助手的回應內容。

小結

那自然基本的 NLP 的工作,就可以直接用 Chat API 去時做了。

而如前面所介紹 Open AI 對於將 Agent 的佈局及開發的方式, 主要的開發的邏輯,例如 function calling 及 RAG 都移到了Assistant API 。

而用 Assistant API 的好處, 諸如不用再去想對話流,要存在哪裡, 另外維度資料的訓練也直覺多了。

關於我

我是 Wolke。我是一名專業程式開發者,專長是開發 AI 和程式解決方案。

我投入了不少時間在專業發展上。我是多本書的作者,其中包括《LINE聊天機器人+AI+雲端+開源+程式:輕鬆入門到完整學習》《ChatGPT來襲,未來人人都需具備的運算思維!應用詠唱工程來釋放程式生產力—程式學習/開發篇》。也有出版線上課程,我熱衷於分享我的經驗和技術,幫助其他開發者更好地利用 AI 工具。

也在許多知名大學、論壇、社團擔任講者,如果貴方有需要也歡迎與我聯繫。
2023年 講座 紀錄

最後這篇文章若有切合你的需求,敬請訂閱按讚分享


上一篇
8-2 Chat API 介紹 及 運用 chatGPT playground 做基本串接
下一篇
5-3 Chrome Extension 呼叫 Gemini API
系列文
運用生成式 AI 服務 所提供的API 實做應用開發(以Gemini及ChatGPT為例)44
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言