# 串接 ChatGPT

{% hint style="warning" %}
**Webhook 模擬案例限制與商業應用評估提醒**

請注意，以下範例僅為技術層面的模擬案例，若要應用於實際商業場景，請務必評估以下限制：

1. **Webhook 併發數限制**：在高併發情境下，可能無法支援所有交談數量。
2. **Webhook 回應時效**：若未能在極短時間內回應，請求將被系統直接拒絕。
3. **不支援上下文**：此方式僅適用於單一問答場景，無法處理多輪對話。
4. **Webhook 參數字數限制**：`params` 的字數有限，無法與系統內建知識庫的完整內容等量並行。

....等，請務必依據自身業務需求進行評估，以避免在實務應用中遭遇效能瓶頸或功能限制。
{% endhint %}

<figure><img src="/files/f9AisSUaO1AySIVQeYQw" alt=""><figcaption></figcaption></figure>

## 申請 OpenAI 金鑰

1. 前往 OpenAI 官方網站 ([https://openai.com/](https://platform.openai.com/account/api-keys))，點擊「Get started for free」按鈕註冊並登入。
2. 串接 OpenAI API 的第一步就是註冊一個帳號，只需要登入 OpenAI 官網，點選右上角的帳號圖示，再選擇 View API keys 就可以進入 API 頁面。
3. 在 API 頁面上，只需要點擊 Create new secret key 就可以取得一組 key 值。請務必妥善保存此 key 值，因為它只會出現一次，萬一遺失就需要重新申請一組。

## 建立 Webhook 腳本

### 新增腳本

首先，我們需要使用「Webhook 腳本」功能呼叫 OpenAI 的 API。在「應用程式」的「整合」分類中，可以找到這個功能。點選「新增」並選擇「交談腳本」，以符合你的使用場景類型，接著你可以為腳本命名，例如「ChatGPT 整合」。

<figure><img src="/files/a3rSPotUeESkiQL6w7sI" alt=""><figcaption></figcaption></figure>

### 輸入請求資料

接下來，需要依照以下條件輸入整合所需的設定：

1. 呼叫網址：<https://api.openai.com/v1/chat/completions>
2. Http 請求方法：POST
3. 表頭 Headers：選擇 Authorization 並輸入 Bearer <您的 API 金鑰>

最後，輸入最關鍵的參數 Params：

```javascript
// 您可以依序 chatGPT 調整所需的設置
{
  "model": "gpt-3.5-turbo",
  "max_tokens": 1000,
  "temperature": 0.5,
  "messages": [
    // 當然，您也可以透過傳入更多明確的訊息內容來調整 ChatGPT 的對話內容。
    // {
    //  "role": "system",
    //  "content": "你現在是一名XXX，你要針對我提出的問題提供建議。"
    // },
    {
      "role": "user",
      "content": "{{ question }}"
    }
  ]
}
```

### 設定 Callback 操作

最後，點擊「進階」頁籤，可以設定如何處理 API 回傳的資料。這邊的設定將用於「交談腳本」中的變數資料。

```javascript
// 您可以依據自己的需求調整不同的變數名稱，
// 此處表示要將回傳資料中的 choices 個別存入至 answers 與 content 變數內。
{
  "answers": "{{ choices | this_is_array }}",
  "content": "{{ choices.0.message.content }}"
}
```

## 建立交談腳本

我們可以輕鬆地整合 ChatGPT，為客服系統新增一個簡單的對話流程。只要客戶傳送任何訊息，ChatGPT 就會回應，並完成預期的流程。

當然，我們還可以透過增加不同的條件與操作，讓客戶可以進行更多元化的提問，例如透過選項引導客戶提出不同的問題，或是當客戶提到特定關鍵字時，系統可以自動轉接客服人員。

<figure><img src="/files/DjSUufGnDpHVi3MD2Lw7" alt=""><figcaption></figcaption></figure>

1. 在腳本開頭新增一個「事件」節點，並選擇「當客戶發送訊息時」，設定「客戶訊息符合」為「\*」，表示收到任何訊息時都繼續往下執行。
2. 接著，新增一個「動作」節點，並選擇「Webhook 腳本」，選擇上一段落所建立的「Webhook 腳本」。
3. 再新增一個「動作」節點，並選擇「發送訊息」，在訊息內容中輸入「{{ content }}」，表示要使用變數「content」回覆客戶。
4. 最後，您只需將您需要使用的管道（例如 LINE 官方帳號、即時聊天）與此腳本進行綁定，就可以開始使用 chatGPT 為您的客戶提供更好的服務體驗了！
5. 🎉 開始進行對話吧！


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.firstline.cc/feature/chatbot/scenario/example/integration-chatgpt.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
