在現代 Web 開發中,使用大語言模型 (LLM) API 變得越來越普遍。然而,直接與多個 LLM API 供應商互動會增加開發的複雜性。LangChain 提供了一個簡化的解決方案,讓開發者可以更輕鬆地整合和使用 LLM API。首先,確保妥善保管 API 金鑰,建議使用 JSON 組態檔儲存,並將其加入 .gitignore 以避免洩漏。接著,使用 Python 的 json 模組讀取組態檔中的金鑰,並設定 OpenAI API 金鑰。LangChain 提供了更簡潔的介面與 OpenAI 的 GPT 模型互動,例如使用 langchain-openai 套件中的 OpenAI 類別。開發者可以利用 PromptTemplate 定義提示範本,並結合 LLMChain 建立完整的文字生成流程。相較於直接呼叫 OpenAI API,LangChain 抽象化了底層的 API 呼叫,讓開發者更專注於應用程式邏輯的開發,同時也能提升程式碼的可讀性和維護性。
設定開發環境以使用 OpenAI 的 LLM
為了開始使用 OpenAI 的大語言模型(LLM)進行開發,您需要先設定好您的開發環境。以下是步驟,幫助您順利完成設定。
步驟 1:取得 OpenAI API 金鑰
首先,您需要從 OpenAI 取得一個 API 金鑰。這個金鑰將允許您存取 OpenAI 的強大語言模型。以下是取得 API 金鑰的步驟:
- 建立或登入 OpenAI 帳戶:如果您尚未擁有 OpenAI 帳戶,請點選「註冊」按鈕建立一個新帳戶。如果您已經有帳戶,則可以直接登入。
- 驗證您的帳戶:根據您的位置,您可能需要使用手機號碼驗證您的帳戶。請按照螢幕上的指示完成驗證過程。
- 設定付款資訊:一旦您登入或建立了帳戶,您就需要設定您的付款資訊。截至目前,OpenAI 提供了幾個月的免費信用額度,因此您可以在不花費任何錢的情況下進行實驗。
步驟 2:安裝 OpenAI Python 函式庫
現在,讓我們轉到 Python 開發環境並安裝 OpenAI Python 函式庫。以下是步驟:
- 開啟 Google Colaboratory 或您偏好的開發環境:我將使用 Google Colaboratory 作為示範,但您可以根據自己的喜好選擇其他開發環境,如 Visual Studio Code 或 PyCharm。
- 建立一個新筆記本:點選「新建筆記本」並為您的檔案命名。
- 安裝 OpenAI 函式庫:您可以透過以下命令安裝 OpenAI Python 函式庫:
注意:您也可以使用 Poetry 來管理相依性,Poetry 提供了更好的相依性管理、專案隔離和可重現性。!pip install openai
步驟 3:設定 API 金鑰
安裝完成後,您需要設定您的 API 金鑰作為環境變數。這是一種最佳實踐,可以保持您的敏感憑證安全:
import os
import openai
# 設定 API 金鑰為環境變數
os.environ["OPENAI_API_KEY"] = "您的_API_金鑰"
# 確認 API 金鑰已正確設定
openai.api_key = os.getenv("OPENAI_API_KEY")
請將 "您的_API_金鑰" 替換為您之前複製的實際 API 金鑰。
步驟 4:測試設定
最後,測試您的設定是否正確:
client = openai.Client() # 建立客戶端
透過這些步驟,您應該可以成功設定您的開發環境以使用 OpenAI 的 LLM。請記得保持您的 API 金鑰安全,並小心管理您的開發環境以避免任何潛在的安全風險。
機器學習模型的概念
機器學習模型是一種利用資料和演算法來進行預測或分類別的數學模型。它可以從資料中學習模式和關係,然後使用這些知識來對新資料進行預測或分類別。機器學習模型的核心思想是使用資料來訓練模型,使其能夠對未知資料進行預測或分類別。
機器學習模型的種類別
機器學習模型可以分為兩大類別:監督式學習和非監督式學習。監督式學習是指模型在訓練時使用標記過的資料,例如圖片和其對應的標籤。非監督式學習是指模型在訓練時不使用標記過的資料,例如聚類別演算法。
機器學習模型的應用
機器學習模型在各個領域都有廣泛的應用,例如:
- 影像識別:使用機器學習模型可以識別影像中的物體、人臉等。
- 自然語言處理:使用機器學習模型可以進行文字分類別、情感分析等。
- 推薦系統:使用機器學習模型可以根據使用者的偏好推薦商品或服務。
保護 API 金鑰的安全
API 金鑰是存取 OpenAI API 的重要憑證,需要妥善保護以避免洩露。以下是保護 API 金鑰的方法:
使用環境變數
可以將 API 金鑰儲存在環境變數中,以避免將金鑰直接寫入程式碼中。在 macOS/Linux 中,可以使用以下命令設定環境變數:
export OPENAI_API_KEY=your_api_key_here
在 Windows 中,可以使用以下命令設定環境變數:
set OPENAI_API_KEY=your_api_key_here
然後,在 Python 程式碼中,可以使用以下方式讀取環境變數:
import os
import openai
# 從環境變數中讀取 API 金鑰
api_key = os.getenv('OPENAI_API_KEY')
# 設定 OpenAI API 客戶端
openai.api_key = api_key
使用組態檔案
也可以使用組態檔案來儲存 API 金鑰。例如,可以建立一個名為 config.json 的檔案,內容如下:
{
"OPENAI_API_KEY": "your_api_key_here"
}
然後,在 Python 程式碼中,可以使用以下方式讀取組態檔案:
import json
# 讀取組態檔案
with open('config.json') as f:
config = json.load(f)
# 從組態檔案中讀取 API 金鑰
api_key = config['OPENAI_API_KEY']
# 設定 OpenAI API 客戶端
openai.api_key = api_key
保護 API 金鑰及設定 LangChain 開發環境
在開始使用 LangChain 之前,瞭解如何保護 API 金鑰和設定開發環境至關重要。以下是步驟:
步驟 1:保護 API 金鑰
為了保護 API 金鑰,建議使用 JSON 組態檔案(例如config.json)來儲存金鑰。這個檔案應該被加入到.gitignore檔案中,以防止它被提交到版本控制系統中。
{
"OPENAI_API_KEY": "your_api_key_here"
}
步驟 2:讀取組態檔案
在 Python 程式碼中,使用json模組來讀取組態檔案,並取得 API 金鑰。
import json
import openai
with open('config.json') as f:
config = json.load(f)
api_key = config['OPENAI_API_KEY']
openai.api_key = api_key
步驟 3:設定 LangChain 開發環境
除了使用 JSON 組態檔案外,還有其他方法可以保護 API 金鑰,例如使用秘密管理工具(如 AWS Secrets Manager、HashiCorp Vault 或 Azure Key Vault)來儲存金鑰,或者將金鑰儲存為環境變數。
此外,設定代理伺服器來儲存 API 金鑰也是另一個選擇。這樣,應用程式就可以呼叫代理伺服器,而不是直接呼叫 OpenAI API。
步驟 4:呼叫 LLM API
在設定好開發環境後,就可以開始呼叫 LLM API 了。以下是直接呼叫 OpenAI API 的範例:
import openai
response = openai.Completion.create(
engine="text-davinci-002",
prompt="Hello, world!",
max_tokens=1024
)
步驟 5:使用 LangChain 框架
使用 LangChain 框架可以抽象化 LLM API 呼叫,提供更簡單、更靈活的方式來與大語言模型互動。以下是使用 LangChain 框架的範例:
from langchain import LLMChain
llm_chain = LLMChain(llm=openai.Completion.create)
response = llm_chain({"input": "Hello, world!"})
透過這些步驟,您可以成功設定 LangChain 開發環境,保護 API 金鑰,並開始探索大語言模型的世界。
使用 LangChain 進行文字生成:簡化 LLM API 的複雜性
在進行文字生成任務時,直接呼叫多個 LLM API 供應商的 API 可能會導致複雜性增加。為了避免這些複雜性,我們可以使用 LangChain 進行文字生成。以下是使用直接 LLM API 和 LangChain 進行基本文字生成任務的比較。
直接 LLM API 方法
任務:使用 OpenAI API 生成一個短故事,根據給定的提示。 步驟 1:選擇 LLM API 供應商並取得 API 金鑰 前往 OpenAI 的網站並註冊一個帳戶。瀏覽至 API 部分並按照指示取得您的 API 金鑰。這個金鑰將允許您的應用程式與 OpenAI 的伺服器進行驗證並傳送請求至 GPT-4。 步驟 2:安裝必要的 SDK 或函式庫
OpenAI 提供了一個官方的 Python 函式庫,簡化了與 GPT-4 的互動。您可以使用 pip(Python 的套件安裝工具)安裝這個函式庫。開啟您最喜歡的程式碼編輯器並建立一個新的 Python 檔案。在這個檔案中,您將撰寫一個指令碼,提示使用者輸入一個故事開始的提示,然後將這個提示傳送至 GPT-4,GPT-4 將生成一個續篇。 以下是簡單的範例:
# 安裝 openai 套件版本 0.28
!pip install openai==0.28
import os
import openai
# 匯入新的 Chat Completion API
import ChatCompletion
# 設定 OpenAI API 金鑰使用環境變數
os.environ["OPENAI_API_KEY"] = "sk-T"
# 確認 API 金鑰設定正確
openai.api_key = os.getenv("OPENAI_API_KEY")
# 定義一個函式來取得聊天續篇
def get_chat_completion(user_prompt):
# 使用 Chat Completion API 生成一個回應
response = ChatCompletion.create(
# 指定聊天模型引擎
model="gpt-3.5-turbo",
# 提供使用者提示作為訊息
messages=[{"role": "user", "content": user_prompt}]
)
return response
內容解密:
在上述程式碼中,我們首先安裝了 openai 套件版本 0.28。然後,我們匯入了 ChatCompletion 類別,該類別提供了一個簡單的介面來與 OpenAI 的聊天模型進行互動。接下來,我們設定了 OpenAI API 金鑰使用環境變數,並確認金鑰設定正確。最後,我們定義了一個 get_chat_completion 函式,該函式使用 ChatCompletion 類別來生成一個聊天續篇,根據給定的使用者提示。
LangChain 方法
使用 LangChain 進行文字生成可以簡化 LLM API 的複雜性。LangChain 提供了一個統一的介面來與多個 LLM API 供應商進行互動,讓您可以輕鬆地切換不同的模型和供應商。 以下是使用 LangChain 進行文字生成的範例:
import langchain
# 建立一個 LangChain 客戶端
client = langchain.Client()
# 定義一個函式來取得聊天續篇
def get_chat_completion(user_prompt):
# 使用 LangChain 客戶端來生成一個回應
response = client.chat(
# 指定聊天模型引擎
model="gpt-3.5-turbo",
# 提供使用者提示作為訊息
messages=[{"role": "user", "content": user_prompt}]
)
return response
圖表翻譯:
@startuml
skinparam backgroundColor #FEFEFE
skinparam componentStyle rectangle
title LangChain簡化LLM API開發流程
package "機器學習流程" {
package "資料處理" {
component [資料收集] as collect
component [資料清洗] as clean
component [特徵工程] as feature
}
package "模型訓練" {
component [模型選擇] as select
component [超參數調優] as tune
component [交叉驗證] as cv
}
package "評估部署" {
component [模型評估] as eval
component [模型部署] as deploy
component [監控維護] as monitor
}
}
collect --> clean : 原始資料
clean --> feature : 乾淨資料
feature --> select : 特徵向量
select --> tune : 基礎模型
tune --> cv : 最佳參數
cv --> eval : 訓練模型
eval --> deploy : 驗證模型
deploy --> monitor : 生產模型
note right of feature
特徵工程包含:
- 特徵選擇
- 特徵轉換
- 降維處理
end note
note right of eval
評估指標:
- 準確率/召回率
- F1 Score
- AUC-ROC
end note
@enduml
在上述圖表中,我們展示了使用 LangChain 進行文字生成的流程。使用者輸入一個提示,然後 LangChain 客戶端將該提示傳送至 LLM API 供應商。供應商接收到提示後,使用聊天模型引擎來生成一個續篇。最後,續篇被回應給使用者。
使用 LangChain 進行增強的靈活性
在前面的練習中,您已經學習瞭如何直接呼叫 LLM API。現在,讓我們探索如何使用 LangChain 來使事情變得更容易。
步驟 1:設定 LangChain 在您的開發環境中
要開始使用 LangChain,您需要透過 pip 安裝它。開啟您的終端或命令提示符,或使用其他開發工具,如 Google Colab,然後執行以下命令:
pip install langchain
這個命令安裝 LangChain 和其依賴項,為您的開發環境做好準備。
步驟 2:修改您的指令碼以使用 LangChain
開啟您在練習 1 中建立的 Python 指令碼。您將修改這個指令碼以使用 LangChain 而不是直接與 OpenAI API 互動。
在指令碼的開始處匯入 LangChain,並組態它以使用 LLM(例如 OpenAI 的 GPT-4)。以下是如何修改指令碼的示例:
# 匯入必要的模組
from langchain_openai import OpenAI
from langchain.prompts import PromptTemplate
from langchain.chains import LLMChain
注意:LangChain 正在積極開發中,其結構可能會發生變化。請始終參考 LangChain 的官方檔案以取得最新的匯入陳述式和使用模式。
步驟 3:組態 LLM 和定義提示範本
組態 LLM 以使用 OpenAI 的 GPT-4,並定義一個提示範本以用於生成聊天回應。
# 組態 LLM
llm = OpenAI()
# 定義提示範本
template = PromptTemplate(
input_variables=["user_input"],
template="Tell the story of {user_input}."
)
步驟 4:建立 LLMChain 並生成聊天回應
建立一個 LLMChain 並使用定義的提示範本生成聊天回應。
# 建立 LLMChain
chain = LLMChain(llm=llm, prompt=template)
# 定義使用者輸入
user_input = "earth"
# 生成聊天回應
output = chain({"user_input": user_input})
print(output)
結果
透過這個練習,您將獲得使用 LangChain 進行增強的靈活性的實踐經驗,包括:
- 取得和使用 API 金鑰進行 LLM API 的身份驗證
- 安裝和使用 Python SDK 以簡化 API 互動
- 向 LLM(GPT-4)傳送請求並處理其回應
- 使用 LangChain 組態 LLM 和定義提示範本
- 建立 LLMChain 並生成聊天回應
LangChain 提供了一種簡單且靈活的方式來與 LLM 互動,使您可以專注於構建創新的應用程式和體驗。
從技術架構視角來看,設定開發環境並使用 LangChain 與大語言模型互動,需要整合多個關鍵元件,包含 API 金鑰管理、函式庫安裝、LLM 選擇及提示工程等。本文詳細介紹瞭如何取得 OpenAI API 金鑰、安裝必要的 Python 函式庫,以及使用 LangChain 簡化與 LLM 互動的流程。其中,使用環境變數或 JSON 組態檔案儲存 API 金鑰是確保安全的重要步驟,有效降低了金鑰洩漏的風險。LangChain 的引入,則進一步抽象化了底層 API 呼叫的複雜性,提供更一致且易於使用的介面,讓開發者能更專注於應用邏輯的開發,而非底層 API 的操作。然而,LangChain 本身仍處於快速發展階段,API 和最佳實務可能會持續演進,開發者需要密切關注官方檔案並適時調整程式碼。對於追求開發效率和程式碼可維護性的開發者而言,採用 LangChain 框架並搭配完善的 API 金鑰管理策略,將是提升 LLM 應用開發效率的關鍵。接下來,隨著 LLM 技術的持續發展,預期 LangChain 將扮演更重要的角色,整合更多 LLM 供應商和功能,進一步降低開發門檻,加速 LLM 應用落地。玄貓認為,掌握 LangChain 的使用,將成為未來開發 LLM 應用程式不可或缺的技能。