使用 ChatGPT API 建立對話系統 學習筆記 - 5

閱讀時間約 28 分鐘
這一系列文章其實就是 Andrew Ng 大大與 OpenAI 合作的一門免費課程【Building Systems with the ChatGPT API】的筆記。很建議大家直接看原本的課程影片,內容蠻淺顯易懂的。

對話系統的開發,整體上就是一個持續且循環的改進過程。因此,能在持續變動之下,確保提示訊息的回應依然如我們預期的方式運作,無疑是一個關鍵步驟。
在這份文章中,我們將以大賣場的銷售助理為例子進行說明,讓大家可以看到在正式的系統開發時,能夠以數值來打分數的這類訊息,它的評估作業是如何運作的。
我們先取得賣場的所有產品類別以及各類別內的產品清單:
# 取得賣場所有的產品類別以及類別內產品清單
products_and_category = utils.get_products_and_category()
--- 以下是 products_and_category 的內容 ---
{'電腦與筆記型電腦': ['TechPro Ultrabook',
  'BlueWave 電競筆電',
  'PowerLite 二合一電腦',
  'TechPro 桌機',
  'BlueWave Chromebook'],
  ... 中間省略 ...
  '相機和攝影機': ['FotoSnap 單眼相機',
  'ActionCam 4K',
  'FotoSnap 無反光鏡相機',
  'ZoomMaster 攝影機',
  'FotoSnap 拍立得相機']}
然後設計第一個版本的提示訊息,這個提示訊息主要目的是從客戶訊息提取對方要詢問的產品類別以及產品清單:
def find_category_and_product_v1(user_input,products_and_category):
  delimiter = "####"
  system_message = f"""
  您將會收到客戶服務的查詢。
  該客戶服務查詢將以 {delimiter} 字符進行分隔。
  請輸出一個 Python 列表,其中每個物件都是一個 JSON 物件,每個物件具有以下格式:
  'category': <以下其中一種:電腦和筆記本,智慧手機和配件,電視和家庭影院系統,遊戲機和配件,音響設備,相機和攝像機>
  'products': <必須在下面允許的產品中找到的產品列表內>
  類別和產品必須在客戶服務查詢中找到。
  如果提到了產品,它必須與下面允許的產品列表中的正確類別相關聯。
  如果找不到產品或類別,則輸出一個空列表。
  根據產品名稱和產品類別與客戶服務查詢的相關程度,列出所有相關的產品。
  不要從產品的名稱推測任何特性或屬性,如相對品質或價格。
  允許的產品以 JSON 格式提供。
  每個項目的鍵代表類別。
  每個項目的值是該類別中的產品列表。
  允許的產品:{products_and_category}
  """
  few_shot_user_1 = """我想要你們最貴的電腦。"""
  few_shot_assistant_1 = """
  [{'category': '電腦與筆記型電腦', \
  'products': ['TechPro Ultrabook', 'BlueWave 電競筆電', 'PowerLite 二合一電腦', 'TechPro 桌機', 'BlueWave Chromebook']}]
  """
  messages =  [
  {'role':'system', 'content': system_message},
  {'role':'user', 'content': f"{delimiter}{few_shot_user_1}{delimiter}"},
  {'role':'assistant', 'content': few_shot_assistant_1 },
  {'role':'user', 'content': f"{delimiter}{user_input}{delimiter}"},
  ]
  return get_completion_from_messages(messages)
測試幾個客戶的訊息,的確如我們預期的回應:
customer_msg_0 = f"""如果我有預算限制的話我可以購買哪種電視?"""
products_by_category_0 = find_category_and_product_v1(customer_msg_0,
products_and_category)
print(products_by_category_0)
--- 以下是回應內容 ---
[{'category': '電視和家庭劇院系統', 'products': ['CineView 4K 液晶電視',
 'SoundMax 家庭劇院', 'CineView 8K 液晶電視', 'SoundMax 音箱',
 'CineView OLED 電視']}]
第二個訊息也是正常:
customer_msg_1 = f"""我需要幫我的手機買個充電器"""
products_by_category_1 = find_category_and_product_v1(customer_msg_1,
products_and_category)
print(products_by_category_1)
--- 以下是回應內容 ---
[{'category': '手機和配件', 'products': ['MobiTech 行動充電王',
 'MobiTech 無線充電器']}]
但是下方這個比較複雜的訊息,它就不能如預期的回覆了:
customer_msg_4 = f"""
跟我說明一下 CineView 電視,8K 的那一款,還有 Gamesphere 遊戲機,X 一款。
我有預算的限制,你們有什麼電腦可以選擇?
"""
products_by_category_4 = find_category_and_product_v1(customer_msg_4,
products_and_category)
# 預期只回覆 python 物件列表, 但是這個回覆有問題。
print(products_by_category_4)
--- 以下是回應內容 ---
[{'category': '電視和家庭劇院系統', 'products': ['CineView 8K 液晶電視']}, {'category': '遊戲機和配件', 'products': ['GameSphere X']}]
對於您的預算限制,我們有以下電腦選擇:
[{'category': '電腦與筆記型電腦', 'products': ['TechPro Ultrabook',
 'BlueWave 電競筆電', 'PowerLite 二合一電腦', 'TechPro 桌機',
 'BlueWave Chromebook']}]
你可以看到,它的回覆訊息參雜了【 對於您的預算限制,我們有以下電腦選擇:】這段訊息。針對這個問題,我們的改善方案則是在提示訊息裏面加上
請不要輸出任何不是 JSON 格式的額外文字。
輸出要求的 JSON 之後,請不要寫任何解釋性的文字。
這段要求,完整提示訊息如下:
def find_category_and_product_v2(user_input,products_and_category):
    """
    增加: 不要輸出任何不是 JSON 格式的額外文字。
    """
    delimiter = "####"
    system_message = f"""
    您將會收到客戶服務的查詢。
    該客戶服務查詢將以 {delimiter} 字符進行分隔。
    請輸出一個 Python 列表,其中每個物件都是一個 JSON 物件,每個物件具有以下格式:
    'category': <以下其中一種:電腦和筆記本,智能手機和配件,電視和家庭影院系統,遊戲機和配件,音響設備,相機和攝像機>
    'products': <必須在下面允許的產品中找到的產品列表內>
    請不要輸出任何不是 JSON 格式的額外文字。
    輸出要求的 JSON 之後,請不要寫任何解釋性的文字。
    類別和產品必須在客戶服務查詢中找到。
    如果提到了產品,它必須與下面允許的產品列表中的正確類別相關聯。
    如果找不到產品或類別,則輸出一個空列表。
    根據產品名稱和產品類別與客戶服務查詢的相關程度,列出所有相關的產品。
    不要從產品的名稱推測任何特性或屬性,如相對品質或價格。
    允許的產品以 JSON 格式提供。
    每個項目的鍵代表類別。
    每個項目的值是該類別中的產品列表。
    允許的產品:{products_and_category}
    """
    few_shot_user_1 = """我想要最貴的電腦,你有什麼建議?"""
    few_shot_assistant_1 = """
    [{'category': '電腦與筆記型電腦', \
    'products': ['TechPro Ultrabook', 'BlueWave 電競筆電',
    'PowerLite 二合一電腦', 'TechPro 桌機', 'BlueWave Chromebook']}]
    """
    messages =  [
    {'role':'system', 'content': system_message},
    {'role':'user', 'content': f"{delimiter}{few_shot_user_1}{delimiter}"},
    {'role':'assistant', 'content': few_shot_assistant_1 },
    {'role':'user', 'content': f"{delimiter}{user_input}{delimiter}"},
    ]
    return get_completion_from_messages(messages)
我們以剛剛發現的,有問題的訊息測試是否已經修正:
customer_msg_4 = f"""
跟我說明一下 CineView 電視,8K 的那一款,還有 Gamesphere 遊戲機,X 一款。
我有預算的限制,你們有什麼電腦可以選擇?
"""
products_by_category_4 = find_category_and_product_v2(customer_msg_4,
products_and_category)
print(products_by_category_4)
--- 以下是回應內容 ---
[{'category': '電視和家庭劇院系統', 'products': ['CineView 8K 液晶電視']},
 {'category': '遊戲機和配件', 'products': ['GameSphere X']},
 {'category': '電腦與筆記型電腦', 'products': ['TechPro Ultrabook',
 'BlueWave 電競筆電', 'PowerLite 二合一電腦', 'TechPro 桌機',
 'BlueWave Chromebook']}]
確定剛有問題的訊息,已經修正無誤。
這時候有一點需要特別提醒的,當你的提示訊息改變後,也記得要重新確認其他沒有問題的部分也一樣正常運作:
customer_msg_0 = f"""如果我有預算限制的話我可以購買哪種電視?"""
products_by_category_0 = find_category_and_product_v2(customer_msg_0, 
    products_and_category)
print(products_by_category_0)
--- 以下是回應內容 ---
[{'category': '電視和家庭劇院系統', 'products': ['CineView 4K 液晶電視',
 'SoundMax 家庭劇院', 'CineView 8K 液晶電視', 'SoundMax 音箱',
 'CineView OLED 電視']}]
修正版本的提示訊息,第一個測試訊息也一樣正常運作。
提示訊息的開發、驗證、重複確認就大概是前面這樣的狀況。到這裏,比較敏感的朋友可能會感受到,這樣不是很繁瑣嗎?
沒有錯,而且當你的對話系統發展一段時間後,你將會蒐集越來越多重要,而且對整體運作來說,不驗證不行的對話內容,所以你接下來就可以試著使用批次的驗證方式,以下是一個簡單的批次驗證範例。
我們先建立一個自己的測試集:
msg_ideal_pairs_set = [
    # eg 0
    {'customer_msg':"""如果我有預算限制的話我可以購買哪種電視?""",
    'ideal_answer':{
        '電視和家庭劇院系統':set(
            ['CineView 4K 液晶電視', 'SoundMax 家庭劇院', 'CineView 8K 液晶電視', 'SoundMax 音箱', 'CineView OLED 電視']
        )}
    },
    # eg 1
    {'customer_msg':"""我需要幫我的手機買個充電器""",
    'ideal_answer':{
        '手機和配件':set(
            ['MobiTech 行動充電王', 'MobiTech 無線充電器']
        )}
    },
    ... 中間省略 ...
    # eg 9
    {'customer_msg':f"""我想要一台時光機浴缸。""",
    'ideal_answer': []
    }
]
下面這個函式則是來協助我們來評估【回應的內容】與【預期的內容】的差異性:
def eval_response_with_ideal(response,
                             ideal,
                             debug=False):
    if debug:
        print("回應內容: ")
        print(response)
    # json.loads() 只能讀取雙引號字串,無法讀取單引號字串
    json_like_str = response.replace("'",'"')
    # 讀取為 dict list
    l_of_d = json.loads(json_like_str)
    # 如果兩者都是空值時
    if l_of_d == [] and ideal == []:
        return 1
    # 如果兩者只有其中一個是空值時,明顯有錯誤。
    elif l_of_d == [] or ideal == []:
        return 0
    correct = 0
    if debug:
        print("l_of_d: ")
        print(l_of_d)
    for d in l_of_d:
        cat = d.get('category')
        prod_l = d.get('products')
        if cat and prod_l:
            # 轉換為 set 以便比較
            prod_set = set(prod_l)
            # 取得理想回覆中的產品類別
            ideal_cat = ideal.get(cat)
            if ideal_cat:
                # 轉換為 set 以便比較
                prod_set_ideal = set(ideal.get(cat))
            else:
                if debug:
                    print(f"無法在理想回覆中找到 {cat} 類別")
                    print(f"理想回覆: {ideal}")
                continue
            if debug:
                print("prod_set\n",prod_set)
                print()
                print("prod_set_ideal\n",prod_set_ideal)
            # 檢查實際回應是否為理想回覆的子集
            if prod_set == prod_set_ideal:
                # 如果實際回應是理想回覆的子集,則正確
                if debug:
                    print("正確")
                correct +=1
            else:
                # 如果實際回應不是理想回覆的子集,則檢查是否為理想回覆的超集
                print("不正確")
                print(f"prod_set: {prod_set}")
                print(f"prod_set_ideal: {prod_set_ideal}")
                if prod_set <= prod_set_ideal:
                    print("實際回應只是理想回覆的子集")
                elif prod_set >= prod_set_ideal:
                    print("實際回應是理想回覆的超集")
    # 計算正確率
    pc_correct = correct / len(l_of_d)
    return pc_correct
這是單一驗證時的回應結果,最後也打了一個分數,1.0 代表完全相同:
response = find_category_and_product_v2(msg_ideal_pairs_set[7]["customer_msg"],
    products_and_category)
print(f'Response: {response}')
eval_response_with_ideal(response,
    msg_ideal_pairs_set[7]["ideal_answer"])
--- 以下是回應內容 ---
Response:
[{'category': '遊戲機和配件', 'products': ['GameSphere X', 'ProGamer 搖桿',
 'GameSphere Y', 'ProGamer 賽車方向盤', 'GameSphere VR 頭盔']}]
1.0
最後我們就可以自動化驗證所有的測試項目了:
import time
# 請注意,這個在任一個 api 呼叫逾時時,就會失敗。
score_accum = 0
for i, pair in enumerate(msg_ideal_pairs_set):
    print(f"範例 {i}")
    customer_msg = pair['customer_msg']
    ideal = pair['ideal_answer']
    # 從 customer_msg 找出產品類別和產品名稱
    # print("Customer message",customer_msg)
    # print("ideal:",ideal)
    response = find_category_and_product_v2(customer_msg,
        products_and_category)
    # 計算正確率
    # print("products_by_category",products_by_category)
    score = eval_response_with_ideal(response, ideal, debug=False)
    print(f"{i}: {score}")
    score_accum += score
    # 等待 20 秒。免費版的 openapi 有每分鐘 3 次的呼叫限制,如果確定沒有問題,可以把這行註解掉。
    #print("等待 20 秒。\n")
    time.sleep(20)
# 計算所有範例的正確率
n_examples = len(msg_ideal_pairs_set)
fraction_correct = score_accum / n_examples
print(f"{n_examples} 個測試案例的正確率 : {fraction_correct}")
``` 以下是輸出內容 ---
範例 0
0: 1.0
範例 1
1: 1.0
範例 2
2: 1.0
範例 3
3: 1.0
範例 4
4: 1.0
範例 5
5: 1.0
範例 6
6: 1.0
範例 7
7: 1.0
範例 8
8: 1.0
範例 9
9: 1
10 個測試案例的正確率 : 1.0
我們可以看到如上最後的輸出,我們測試集裏面目前有10個待驗證項目,而驗證結果是全數通過(最後一個 1.0 代表的是 100% 通過)。
以上則是我們數值型評估方式的詳細說明,完整的程式碼可以參考這裏:HelloGPT/building-system-with-chatgpt-api-05-Evaluation-Part1.ipynb at main · u8621011/HelloGPT (github.com)
下一篇則會跟大家介紹只能模糊評估的訊息它的評估方式,這也是我們這個系列的最後一篇了,敬請期待~
為什麼會看到廣告
avatar-img
18會員
19內容數
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Ted Chen的沙龍 的其他內容
本篇文章探討如何整合大型語言模型與外部程式與資源來生成回應訊息。我們使用OpenAI的Moderation API來確認內容的合適性,並使用新的提示來評估是否真正解答了使用者的疑問。整體流程的匯整讓我們一覽全貌。我們將在下一篇文章中分享更多有關回應訊息評估的細節。
本文詳述如何將大型語言模型(LLM)與程式碼深度整合,運用於3C賣場的客服助理示例,透過接收並解析使用者訊息,提取產品資訊,並與後端產品資料庫整合。接著,將整合資訊回傳給LLM生成最終回應訊息。同時,也探討了中英文理解差距及解決方法,並展示如何利用Python模擬資料庫提取詳細資訊。
這篇文章詳細說明了「思考鏈」的概念以及如何應用在設計語言模型客服助理的過程中。使用分隔號和角括弧以設定步驟、區隔訊息和提供填充空間,這種方式可使語言模型更有效地處理和回應使用者的諮詢,包括在產品清單中找不到的諮詢。
這堂課闡述開發ChatGPT所需的重要概念和工具。涵蓋語言模型如何處理文字(Token),LLM的兩種類型(Base LLM和Instruction tuned LLM),系統、助手和用戶的角色定義。並介紹以Prompting簡化AI開發流程,且透過實戰教學說明如何進行分類和預防注入提示
本文探討大資料對模型的影響。研究指出,大資料量對模型的語法和世界知識理解有顯著影響。固定運算資源下,DeepMind發現適應參數數量更重要,這使模型Chinchilla以較小規模但更多訓練資料,在實際任務中優於Gopher模型。這說明增大模型的規模已不具有太大意義,應增加訓練資料。
本文探討了大型語言模型中的特殊現象,包括頓悟現象,大模型的隱藏知識引導,以及模型越大對某些問題的理解越偏離的U型曲線。文章強調,當模型不夠理想時,我們需要更好地引導模型或了解問題的本質,而非只是增加模型的大小。
本篇文章探討如何整合大型語言模型與外部程式與資源來生成回應訊息。我們使用OpenAI的Moderation API來確認內容的合適性,並使用新的提示來評估是否真正解答了使用者的疑問。整體流程的匯整讓我們一覽全貌。我們將在下一篇文章中分享更多有關回應訊息評估的細節。
本文詳述如何將大型語言模型(LLM)與程式碼深度整合,運用於3C賣場的客服助理示例,透過接收並解析使用者訊息,提取產品資訊,並與後端產品資料庫整合。接著,將整合資訊回傳給LLM生成最終回應訊息。同時,也探討了中英文理解差距及解決方法,並展示如何利用Python模擬資料庫提取詳細資訊。
這篇文章詳細說明了「思考鏈」的概念以及如何應用在設計語言模型客服助理的過程中。使用分隔號和角括弧以設定步驟、區隔訊息和提供填充空間,這種方式可使語言模型更有效地處理和回應使用者的諮詢,包括在產品清單中找不到的諮詢。
這堂課闡述開發ChatGPT所需的重要概念和工具。涵蓋語言模型如何處理文字(Token),LLM的兩種類型(Base LLM和Instruction tuned LLM),系統、助手和用戶的角色定義。並介紹以Prompting簡化AI開發流程,且透過實戰教學說明如何進行分類和預防注入提示
本文探討大資料對模型的影響。研究指出,大資料量對模型的語法和世界知識理解有顯著影響。固定運算資源下,DeepMind發現適應參數數量更重要,這使模型Chinchilla以較小規模但更多訓練資料,在實際任務中優於Gopher模型。這說明增大模型的規模已不具有太大意義,應增加訓練資料。
本文探討了大型語言模型中的特殊現象,包括頓悟現象,大模型的隱藏知識引導,以及模型越大對某些問題的理解越偏離的U型曲線。文章強調,當模型不夠理想時,我們需要更好地引導模型或了解問題的本質,而非只是增加模型的大小。
你可能也想看
Google News 追蹤
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
最近在上LLM線上課 來分享我所學到的 LangChain LangChian是把ChatGPT API 轉換為物件導向的形式來使用我所學到 LangChain 的五個方法 : Prompt Template / LLMChain / OutputParser / Agent / Conversat
Thumbnail
產品採購:AI 可以幫助找到熱門的產品和趨勢。 客戶互動:AI 可以自動回答客戶問題,提供個性化的產品推薦。 市場分析:AI 可以自動分析市場數據,幫助你了解競爭對手和市場趨勢。 產品描述寫作:AI 可以自動生成產品描述,節省你的時間。
我們人類和ChatGPT的對話技巧也是需要學習的,有鑑於此,我想要一天分享一點「和ChatGPT對話的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 再來談一個使用 TOCD 這個 Prompt 範本,建立「食譜推薦」的完整 Prompt,TOCD 的說
我們人類和ChatGPT的對話技巧也是需要學習的,有鑑於此,我想要一天分享一點「和ChatGPT對話的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 Definition: Prompt Template Pattern 是一個系統框架,旨在透過利用富
我們人類和ChatGPT的對話技巧也是需要學習的,有鑑於此,我想要一天分享一點「和ChatGPT對話的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 在複雜的軟體開發和人工智慧世界中,設計模板作為概念工具出現,幫助工程師巧妙地應對複雜的情況,當涉及 Pr
Thumbnail
這是一篇關於如何透過教育ChatGPT來做營銷的文章,包含了指令和課程內容的相關信息。
在當今競爭激烈的市場中,提供優質的客戶服務已經成為企業成功的關鍵。隨著科技的不斷發展,AI聊天機器人作為一種創新的客服解決方案,正以其高效、便捷的特性受到越來越多企業的青睞。
Thumbnail
本文章介紹瞭如何使用AutoGPT, 一種可以自主蒐集資料生成訴求,幫你與ChatGPT在互動中提出一連串的問題,來解決你的問題。對於安裝時的常見問題也進行了解答,並提供了使用的步驟以及目前的解決方式。
Thumbnail
這篇文章將教你如何使用 ChatGPT 快速創建解決問題的名單,並進行格式化以供下載。同時提供了加速發展成功的線上服務業務的建議和相關資源。
Thumbnail
大家好,我是萊丘,今天要與大家分享的是 OpenAI最新公布的AI提示詞生成指南。這份指南分成六大要點,幫助我們如何有效地跟ChatGPT互動,就算你不會寫 code 也可以輕鬆掌握。 要點一:指令清晰且具體 大家都知道,ChatGPT 雖然聰明,但它不是讀心術的高手,所以我們需
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
最近在上LLM線上課 來分享我所學到的 LangChain LangChian是把ChatGPT API 轉換為物件導向的形式來使用我所學到 LangChain 的五個方法 : Prompt Template / LLMChain / OutputParser / Agent / Conversat
Thumbnail
產品採購:AI 可以幫助找到熱門的產品和趨勢。 客戶互動:AI 可以自動回答客戶問題,提供個性化的產品推薦。 市場分析:AI 可以自動分析市場數據,幫助你了解競爭對手和市場趨勢。 產品描述寫作:AI 可以自動生成產品描述,節省你的時間。
我們人類和ChatGPT的對話技巧也是需要學習的,有鑑於此,我想要一天分享一點「和ChatGPT對話的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 再來談一個使用 TOCD 這個 Prompt 範本,建立「食譜推薦」的完整 Prompt,TOCD 的說
我們人類和ChatGPT的對話技巧也是需要學習的,有鑑於此,我想要一天分享一點「和ChatGPT對話的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 Definition: Prompt Template Pattern 是一個系統框架,旨在透過利用富
我們人類和ChatGPT的對話技巧也是需要學習的,有鑑於此,我想要一天分享一點「和ChatGPT對話的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 在複雜的軟體開發和人工智慧世界中,設計模板作為概念工具出現,幫助工程師巧妙地應對複雜的情況,當涉及 Pr
Thumbnail
這是一篇關於如何透過教育ChatGPT來做營銷的文章,包含了指令和課程內容的相關信息。
在當今競爭激烈的市場中,提供優質的客戶服務已經成為企業成功的關鍵。隨著科技的不斷發展,AI聊天機器人作為一種創新的客服解決方案,正以其高效、便捷的特性受到越來越多企業的青睞。
Thumbnail
本文章介紹瞭如何使用AutoGPT, 一種可以自主蒐集資料生成訴求,幫你與ChatGPT在互動中提出一連串的問題,來解決你的問題。對於安裝時的常見問題也進行了解答,並提供了使用的步驟以及目前的解決方式。
Thumbnail
這篇文章將教你如何使用 ChatGPT 快速創建解決問題的名單,並進行格式化以供下載。同時提供了加速發展成功的線上服務業務的建議和相關資源。
Thumbnail
大家好,我是萊丘,今天要與大家分享的是 OpenAI最新公布的AI提示詞生成指南。這份指南分成六大要點,幫助我們如何有效地跟ChatGPT互動,就算你不會寫 code 也可以輕鬆掌握。 要點一:指令清晰且具體 大家都知道,ChatGPT 雖然聰明,但它不是讀心術的高手,所以我們需