2024-10-29|閱讀時間 ‧ 約 0 分鐘

【生成式AI】能上網的AI!打造Perplexity 事實查核聊天室

本篇適合:

+ 對 生成式 AI 應用有興趣的朋友
+ 對「AI 事實查核」有疑問想嘗試看看的朋友
+ 有寫程式經驗,想嘗試看看不同的生成式AI模型!

本篇目標:

1. 介紹 Perplexity 基礎功能
2. 介紹 Perplexity API 使用與提供官方文件參考

生成式AI蓬勃發展的今日,ChatGPT、Claude、Gemini 等大語言模型(LLM)成為許多人日常生活中不可或缺的助手。

在這些工具開發之初,這些AI工具都有一個共同的限制——無法即時上網查詢最新資訊。

起初,ChatGPT 結合 Bing 搜尋,讓使用者可以用簡單的「提問」方式,去搜尋網路上資訊,後續也推出自己的上網找資料並回應使用者的機制。今年(2024年)七月,ChatGPT 也預告將作出「SearchGPT」,使用者同樣用「問」的問問題,OpenAI 將設計如同平常使用 Google 一樣,陳列出各種結果的搜尋引擎。

Perplexity AI

然而在這之前,一個名叫「Perplexity」的 AI 工具,老早就以「AI搜尋引擎」的方向前進,且做得相當出色。

Perplexity的特色:

  • 能夠即時搜尋網路資訊
  • 自動整理和摘要搜尋結果
  • 提供資訊來源引用
  • 支援多次對話的上下文理解
  • 列出「延伸(相關)問題」,使用者可以點擊這些問題,持續和系統對話

開發者福音:Perplexity 也有 API!


目前開發者最常使用的生成式AI所提供的 API 不外乎來自兩大供應商:

  1. OpenAI:提供 GPT 系列模型,例如 gpt-4o、gpt-4o mini
  2. Anthropic:提供 Claude 系列模型,包括 Claude 3.5-Sonnet等

但 Perplexity 其實有開放 API 提供開發者使用,而這個 API 相較於上述提供的,是「可以連網」的噢!

Perplexity 所開放的 API 其實相當容易,以 Python 為例,如同一般呼叫 API 的方式使用即可

import requests

url = "https://api.perplexity.ai/chat/completions"

payload = {
"model": "llama-3.1-sonar-small-128k-online",
"messages": [
{
"role": "system",
"content": "你是一名新聞事實查核高手!"
},
{
"role": "user",
"content": "現在日本首相是誰?"
}
],
"max_tokens": "Optional",
"temperature": 0.2,
"top_p": 0.9,
"return_citations": True,
"search_domain_filter": ["perplexity.ai"],
"return_images": False,
"return_related_questions": False,
"search_recency_filter": "month",
"top_k": 0,
"stream": False,
"presence_penalty": 0,
"frequency_penalty": 1
}
headers = {
"Authorization": "Bearer TOKEN_CODE",
"Content-Type": "application/json"
}

response = requests.request("POST", url, json=payload, headers=headers)

print(response.text)

使用前須先申請 api key,之後將 key 填入上述程式碼中 TOKEN_CODE 處。

此外,今年 7 月 Perplexity 也釋出新模型「Sonar」系列,其中llama-3.1-sonar-small-128k-online 、llama-3.1-sonar-large-128k-online 皆支援連網!

價格筆者認為比起其他大語言模型稍嫌貴 (畢竟有連網XD),也有規定的 Rate Limit(使用頻率)

生成式AI實驗室——打造事實查核聊天室!


既然可以取得 API ,筆者嘗試製作成一個「聊天室」放在 Google Chrome 外掛當中,(筆者使用側邊面板(side panel),細長形狀很像聊天室 XD)。

首先,要先賦予 AI 角色的 System Prompt:「你是一名來自台灣的事實查核專家,專門查核新聞的真實性。請務必使用繁體中文回覆,且以臺灣為視角的資訊書寫回答。請將你的回覆適當分段 換行排版 不要使用markdown格式。所有資訊請都務必註明你所查詢的「時間」與「出處」。

但我覺得就算如此,Perplexity 回覆仍然會很不穩定。所謂「不穩定」,就像是他偶爾會跑出簡體中文,又或者是持續出現「Markdown」語法,我只好在後續用程式去處理它。

此外,他的回覆也有點不穩定,可能某個時候,他回答還算正確,但過一段時間再問一次,他就會回答有些偏差。

最後,AI 還是有「幻覺」,因此若要打造「事實查核聊天室」也變得相當困難。我的解決方法是盡可能多詢問他「你確定是正確的嗎?」、「請多給我一些佐證資料。」等方式,讓它持續去修正回覆。

接下來就來看看我測試的一些 DEMO 吧:

這禮拜有颱風嗎?

問「這禮拜有颱風嗎」

這禮拜康芮颱風將侵襲台灣,新聞也報很多,這部分資訊還算正確!

日本首相是誰?

前面我問了日本首相相關的資料,而他卻回答岸田文雄。筆者此時此刻書寫時間,首相是石破茂,這就是明顯錯誤,又或者說是時序上的錯誤。

問「日本首相」

不過接著我詢問石破茂相關新聞,卻並不會錯亂:

問「石破茂 辭職」

不過這邊的插曲是,他忽然又回答起簡體中文了...QQ

美國對台政策?

詢問「美國反對台灣獨立」是否正確,這題很有趣。

根據中央社報導,美國「不支持」台灣獨立,但並未以「反對」稱之。而這次 AI 做了字面上不錯的區分。

Perplexity API 未來值得期待?

目前 Perplexity API 不能附註資料來源(但其實 Perplexity 網頁版介面是有的),我覺得相當可惜。而目前在開發文件中官方表示這個功能正在封測階段,似乎預計最快年底可能會有所更新。

除此之外,「回覆圖片」、「相關問題推薦」等,也正在封測階段,我覺得很值得期待!


以上是一些自己的測試,也歡迎大家一起來玩玩!

分享至
成為作者繼續創作的動力吧!
從 Google News 追蹤更多 vocus 的最新精選內容從 Google News 追蹤更多 vocus 的最新精選內容

作者的相關文章

CT 的其他內容

你可能也想看

發表回應

成為會員 後即可發表留言
© 2024 vocus All rights reserved.