如何使用 Claude API
在 2024年3月最夯的新聞應該就是 Anthropic 新語言模型釋出,也就是 Claude 3。
大多數人可能只認得 OpenAI 的 GhatGPT 或是 Google Gemini,但這邊要隆重介紹第三家足以匹敵的 LLM,就是 Claude!根據官方文檔說明,Claude 比 GPT-4、Gemini Ultro 都有更好的模型表現。
很多人可能會想說「哇怎麼這麼屌」,其實這家公司的老闆是前 OpenAI 的研究員,而且跟其他 LLM 新創公司一樣,他也有個富爸爸,就是 AWS,也因此未來有可能是微軟的 OpenAI、Google 的 Gemini、AWS 的 Anthropic 三足鼎立模式,大家可以期待看看。
你說忘記 Meta 的 Llama 2 嗎,沒關係人家的戰場在開源模型,所以之後有機會在寫一篇開源版的 LLM 爭霸戰。
我們先來看一下 Claude 這個模型怎麼使用。
如同 ChatGPT 跟 Gemini 一樣,都有 Web 聊天版本可以用,Claude 也提供了類似的用法,且對於中文的支援度非常好。
但身為工程師就是要用 API 的方式來呼叫,除了可以客製化應用外,也能確保出入的訊息安全性。
1. 申請金鑰
如果想使用 API,要先至 Anthropic 的網頁申請 API Access,原則上每個帳號會有 5 美金的免費額度,台灣也終於開放試用囉。
以目前最新版的 Claude3 來看,基本上都是要錢的,且價格高於 GPT-4,但能處理的資訊量及正確率現階段來說,確實比 GPT 穩定一點,尤其是主打 pdf 文檔的處理。
2. 安裝套件並載入金鑰
我們使用 Colab 作為示範,起手勢依然是先安裝套件:
pip install anthropic
把金鑰貼上去就能呼叫 API 了,老實說目前官方文檔寫的有點陽春,可能因為模型太新了,未來可以期待官方改善:
import anthropic
api_key = '金鑰貼這邊'
client = anthropic.Anthropic( api_key = api_key)
message = client.messages.create(
model="claude-3-opus-20240229", # 模型型號
max_tokens=1000, # 選用,回傳token的最大長度,避免爆預算
messages=[
{"role": "user", "content": "這邊輸入要講的話"}
]
)
print(message.content)
3. 選擇 Model 及開始對話
目前可選擇的模型不多,但主要都會以 Claude3 為主:
我們使用 Opus 版,可以看到回答如下:
它回傳的是 List 格式,對比 GPT 跟 Gemini 可能還要再加工一下才能用。
4. pdf 解析
Claude 主打的就是 pdf 檢索,但目前並沒有提供 API 的方法來解析 pdf,只能透過官方的聊天器使用,且建議每個 pdf 不要超過 10mb。
但身為工程師,我們還是想辦法來處理這個問題,至少能比較多個 LLM 的pdf 檢索功能。
from pypdf import PdfReader
reader = PdfReader("/content/TSMC 4Q23 Transcript.pdf")
number_of_pages = len(reader.pages)
text = ''.join([page.extract_text() for page in reader.pages])
以台積電 2023Q4 法說會逐字稿為例,使用 pypdf 套件來解析約 20 頁的全英文文檔,經過多方測試,文本太長會跳 error,最後還是控制字數才跑過。
def get_completion(client, prompt):
return client.messages.create(
model='claude-3-opus-20240229',
max_tokens=2048,
messages=[{
"role": 'user', "content": prompt
}]
).content[0].text
client = anthropic.Anthropic(api_key=api_key)
completion = get_completion(client,
f"""這是一份半導體公司的法說會逐字稿: <paper>{text[:5000]}</paper>
請根據內容回答我問題:
1. 摘要法說會內容
2. 評估營運狀況並給我投資建議
請將內容濃縮在500字以內
"""
)
print(completion)
看起來反應的速度不錯,雖然逐字稿是英文版,但都有回答到問題。
我們試試看用聊天器的效果如何:
實驗證明效果出奇的好,希望官方趕快完備 API 功能,讓這個主打的應用可以盡快上線。
所謂沒有比較沒有傷害,給大家看一下 ChatGPT-4 的回答,很明顯它不會針對我的中文發問給予中文回答,且字數也明顯超過,所以 Claude 看起來有潛力呢!
目前各家收費的 LLM 百家爭鳴,雖然官方文檔都有比較圖,但主要還是要以使用體驗為主。
短時間內選出最佳模型有點困難,Gemini 免費額度香、GTPs 功能多元,Claude 如果能穩定 API 的調用並完備文檔,應該能與各家一戰,AWS 再多給一點銀彈吧~