該專案是 Vertex AI( PaLM 2、Codey、Gemini )的直接替代 REST API,與 OpenAI API 規範相容。
範例:
在聊天機器人 UI 中與 Gemini 聊天 | 在 VSCode 中獲得 Gemini 的幫助 |
---|---|
這個專案的靈感來自 LocalAI 的想法,但重點是讓任何人都更容易使用 Google Cloud Platform Vertex AI PaLM。
安裝了 Google Cloud Run 服務,將 OpenAI API 呼叫轉換為 Vertex AI(PaLM 2、Codey、Gemini)。
支援的 OpenAI API 服務:
開放人工智慧 | 應用程式介面 | 支援 |
---|---|---|
列出型號 | /v1/models | ✅ |
聊天完成 | /v1/chat/completions | ✅ |
竣工(遺留) | /v1/completions | |
嵌入 | /v1/embeddings |
該軟體採用Python開發,基於FastAPI和LangChain。
一切都設計得非常簡單,因此您可以輕鬆地根據您的個人需求調整原始程式碼。
已準備好包含逐步說明的 Jupyter 筆記本Vertex_AI_Chat.ipynb
。它將幫助您將 API 後端和 Chatbot UI 前端部署為 Google Cloud Run 服務。
要求:
您的使用者(用於部署的使用者)必須在專案中擁有適當的權限。為了實現快速、無憂的部署,建議使用「所有者」角色。
此外,預設計算服務帳戶 ( [PROJECT_NR][email protected]
) 必須具有「角色 Vertex AI 使用者」角色 ( roles/aiplatform.user
)。
認證:
gcloud auth login
設定預設項目:
gcloud config set project [PROJECT_ID]
執行以下腳本來建立容器映像,並將該容器部署為 Google Cloud Run 中的公共 API(允許未經驗證的呼叫):
bash deploy.sh
注意:您可以使用環境變數變更產生的假OpenAI API 金鑰和 Google Cloud 區域:
export OPENAI_API_KEY= " sk-XYZ " export GOOGLE_CLOUD_LOCATION= " europe-west1 " bash deploy.sh
該軟體在 GNU/Linux 和 macOS 上使用 Python 3.11 和 3.12.3(3.12.4 目前不工作)進行了測試。如果要在Windows下使用該軟體,必須使用set
而不是export
來設定環境變數。
您還應該使用要使用的 Python 版本來建立虛擬環境,並在繼續之前啟動它。
您還需要 Google Cloud CLI。 Google Cloud CLI 包含gcloud
命令列工具。
啟動Python虛擬環境並安裝需求:
python3 -m venv .venv &&
source .venv/bin/activate &&
pip install -r requirements.txt
認證:
gcloud auth application-default login
設定預設項目:
gcloud auth application-default set-quota-project [PROJECT_ID]
使用預設模型運行:
export DEBUG= " True "
export OPENAI_API_KEY= " sk-XYZ "
uvicorn vertex:app --reload
Windows 範例:
set DEBUG = True
set OPENAI_API_KEY = sk - XYZ
uvicorn vertex:app -- reload
使用 Gemini gemini-pro
模型運行:
export DEBUG= " True "
export OPENAI_API_KEY= " sk-XYZ "
export MODEL_NAME= " gemini-pro "
uvicorn vertex:app --reload
使用程小奔codechat-bison-32k
模型運行:
export DEBUG= " True "
export OPENAI_API_KEY= " sk-XYZ "
export MODEL_NAME= " codechat-bison-32k "
export MAX_OUTPUT_TOKENS= " 16000 "
uvicorn vertex:app --reload
該應用程式現在將在您的本地電腦上運行。您可以透過開啟網頁瀏覽器並導航到以下位址來存取它:
http://localhost:8000/
HTTP請求和回應格式與OpenAI API一致。
例如,要產生聊天完成,您可以將 POST 請求傳送到/v1/chat/completions
端點,並將指令作為請求正文:
curl --location ' http://[ENDPOINT]/v1/chat/completions '
--header ' Content-Type: application/json '
--header ' Authorization: Bearer [API-KEY] '
--data ' {
"model": "gpt-3.5-turbo",
"messages": [
{
"role": "user",
"content": "Say this is a test!"
}
]
} '
回覆:
{
"id" : " cmpl-efccdeb3d2a6cfe144fdde11 " ,
"created" : 1691577522 ,
"object" : " chat.completion " ,
"model" : " gpt-3.5-turbo " ,
"usage" : {
"prompt_tokens" : 0 ,
"completion_tokens" : 0 ,
"total_tokens" : 0
},
"choices" : [
{
"message" : {
"role" : " assistant " ,
"content" : " Sure, this is a test. "
},
"finish_reason" : " stop " ,
"index" : 0
}
]
}
下載 Bruno API 用戶端的匯出: bruno-export.json
軟體的配置可以透過環境變數來完成。
存在以下具有預設值的變數:
多變的 | 預設 | 描述 |
---|---|---|
偵錯 | 錯誤的 | 顯示在開發期間有幫助的偵錯訊息。 |
GOOGLE_CLOUD_LOCATION | 美國中央1 | 用於 API 呼叫的 Google Cloud Platform 區域。 |
GOOGLE_CLOUD_PROJECT_ID | [DEFAULT_AUTH_PROJECT] | 您的項目的識別碼。如果不指定,則使用認證的項目。 |
主持人 | 0.0.0.0 | 將套接字綁定到該主機。 |
最大輸出令牌數 | 第512章 | 令牌限制決定一個提示中輸出的最大文字量。最終用戶可以根據 OpenAI API 規範的要求進行覆寫。 |
型號_名稱 | 聊天野牛 | Vertex AI 中提供的基礎模型之一。 |
OPENAI_API_KEY | sk-[RANDOM_HEX] | 自行產生的假OpenAI API 金鑰,用於針對應用程式進行身份驗證。 |
港口 | 8000 | 將套接字綁定到此連接埠。 |
溫度 | 0.2 | 採樣溫度,控制token選擇的隨機程度。最終用戶可以根據 OpenAI API 規範的要求進行覆寫。 |
TOP_K | 40 | 模型如何選擇輸出的標記,從中選擇下一個標記。 |
TOP_P | 0.8 | 從最可能到最不可能選擇令牌,直到它們的總和。最終用戶可以根據 OpenAI API 規範的要求進行覆寫。 |
如果您的應用程式使用 OpenAI 提供的用戶端程式庫,您只需修改OPENAI_API_BASE
環境變數以符合您的 Google Cloud Run 端點 URL:
export OPENAI_API_BASE= " https://openai-api-vertex-XYZ.a.run.app/v1 "
python your_openai_app.py
部署 Chatbot UI 應用程式時,必須設定以下環境變數:
多變的 | 價值 |
---|---|
OPENAI_API_KEY | 部署期間產生的 API 金鑰 |
OPENAI_API_HOST | Google 雲端運行 URL |
執行以下腳本以從 GitHub 原始碼建立容器映像,並將該容器部署為 Google Cloud Run 中的公共網站(允許未經驗證的呼叫):
export OPENAI_API_KEY= " sk-XYZ "
export OPENAI_API_HOST= " https://openai-api-vertex-XYZ.a.run.app "
bash chatbot-ui.sh
設定以下聊天框設定:
環境 | 價值 |
---|---|
人工智慧提供者 | 開放人工智慧API |
OpenAI API 金鑰 | 部署期間產生的 API 金鑰 |
API主機 | Google 雲端運行 URL |
VSCode-OpenAI 擴充功能是一款功能強大且多功能的工具,旨在將 OpenAI 功能無縫整合到程式碼編輯器中。
要啟動設置,您有兩個選項:
選擇openai.com
並在設定過程中輸入包含/v1
的 Google Cloud Run URL。
部署 Discord Bot 應用程式時,必須設定以下環境變數:
多變的 | 價值 |
---|---|
OPENAI_API_KEY | 部署期間產生的 API 金鑰 |
OPENAI_API_BASE | 帶有/v1 Google Cloud Run URL |
在 Slack 應用程式中部署 ChatGPT 時,必須設定以下環境變數:
多變的 | 價值 |
---|---|
OPENAI_API_KEY | 部署期間產生的 API 金鑰 |
OPENAI_API_BASE | 帶有/v1 Google Cloud Run URL |
部署 ChatGPT Telegram Bot 應用程式時,必須設定以下環境變數:
多變的 | 價值 |
---|---|
OPENAI_API_KEY | 部署期間產生的 API 金鑰 |
OPENAI_API_BASE | 帶有/v1 Google Cloud Run URL |
有一個對這個項目有利的補丁嗎?驚人的!請按照以下步驟接受它。
除非另有說明,此儲存庫中的所有檔案均遵循 Apache 授權版本 2.0。