?詢問 Sage Python 客戶端 v1.2.4
歡迎來到 Ask Sage 概述儲存庫! ?
該存儲庫是一個正在進行的專案嗎?旨在成為範例程式碼 ? 和文件 ? 的集合。關於透過 Ask Sage API 與 Ask Sage 互動。附加內容可能包括實際步驟?在 Ask Sage 平台內,但該儲存庫的大部分內容將專注於利用 API 和建立小型概念驗證專案。
提供的範例將涵蓋與生成人工智慧相關的廣泛主題,並且旨在供具有不同人工智慧和程式設計經驗水平的用戶使用。目前,我們已經提供了此儲存庫中將涵蓋的內容的想法列表,並將隨著更多內容的添加而更新。
注意:只有 Ask Sage API 可供付費訂閱者使用。 ??
這是社群驅動的一項工作,旨在為 Ask Sage 用戶提供額外的資源和範例。
請造訪 AskSage 官方網站。
如果您有興趣為此儲存庫做出貢獻,請參閱貢獻指南以獲取更多資訊。
如果您有任何問題或需要協助,請隨時聯絡此儲存庫的維護人員或直接聯絡 Ask Sage 團隊。
其他資源:
注意:此儲存庫中的內容可能已過時或不正確,因此請參閱官方 AskSage 文件以獲取最新資訊。
AskSage 是一個不可知的生成式人工智慧平台,可以存取各種人工智慧模型和工具。該平台旨在易於使用並整合到現有工作流程中,可進一步客製化以滿足使用者/組織的需求。
Ask Sage 的設計獨特,具有不可知性,可以存取可用於各種任務的各種模型。一些可用的模型包括但不限於:
型號名稱 | 描述 |
---|---|
Azure 開放人工智慧 | 由 OpenAI 開發並託管在 Azure 平台上的尖端語言模型。 |
Azure Gov OpenAI | 由 OpenAI 開發並託管在 Azure Gov 平台上的尖端語言模型。 |
谷歌雙子座專業版 | 由 Google 開發並針對各種自然語言處理任務進行最佳化的語言模型。 |
LLMA3 | Meta 開發的大型語言模型,擅長產生高品質文字。 |
米斯特拉爾 | Mistral 開發的強大語言模型,可以產生創意且連貫的文字。 |
克勞德 3 | Anthropic 開發的語言模型,專注於產生程式碼和程式設計相關文字。 |
連貫 | 由 Cohere Technologies 開發的專門用於產生程式碼的語言模型。 |
OpenAI 耳語 | OpenAI 開發的語言模型,可實現語音轉文字功能。 |
達爾-E v3 | OpenAI開發的專門用於生成圖像的語言模型。 |
以下是截至 2024 年 10 月 22 日 Ask Sage 平台上可用模型的實際清單:
models = [ 'aws-bedrock-titan' , 'llma3' , 'claude2' , 'claude-3-opus' , 'claude-3-sonnet' , 'claude-35-sonnet' , 'cohere' , 'mistral-large' , 'gpt-gov' , 'gpt4-gov' , 'gpt' , 'gpt4' , 'gpt4-32k' , 'gpt35-16k' , 'gpt4-vision' , 'gpt-4o' , 'gpt-4o-mini' , 'dall-e-2' , 'dall-e-3' , 'google-bison' , 'google-gemini-pro' , 'gpt-4o-gov' , 'groq-70b' , 'gpt-o1' , 'gpt-o1-mini' , 'xai-grok' ]
Ask Sage 團隊可以根據使用者的需求添加更多模型。 (可能需要支付額外費用)
注意:上面列出的型號可能會發生變化,並且將來可能會添加更多型號。
與 Ask Sage 互動的主要方式有兩種:
Ask Sage API 提供了一個 RESTful 接口,用於與平台上可用的模型互動。使用者可以向 API 發送請求並接收 JSON 格式的回應。該 API 旨在易於使用並整合到現有工作流程中。
總的來說,當人們開始探索生成式人工智慧的功能以及如何在現實場景中使用它時,該儲存庫將提供設定說明、範例和其他資源。
Ask Sage API 使用 Swagger 進行記錄,它提供了有關可用端點、請求參數、回應格式和驗證方法的詳細資訊。
下表顯示了使用者 API 中的可用端點:
端點 | 描述 |
---|---|
/get-token-with-api-key | 使用 API 金鑰和電子郵件來取得存取權令牌 |
/取得使用者登入名 | 取得您上次登入的資訊(預設限制為 5 次) |
/取得使用者日誌 | 取得最後的提示 |
/新增資料集 | 新增資料集 |
/分配資料集 | 分配資料集 |
/刪除資料集 | 刪除資料集 |
此資訊用於與 Ask Sage API 互動。使用者可以查詢模型、選擇/取得角色、取得資料集、訓練模型等。
下表顯示了伺服器 API 中的可用端點:
端點 | 描述 |
---|---|
/取得模型 | 透過 Ask Sage 服務傳回可用模型的列表 |
/詢問 | 用於根據使用者輸入產生補全的主要端點 |
/query_with_file | 使用檔案端點進行查詢,以根據使用者的輸入產生補全 |
/查詢插件 | 使用插件端點進行查詢,以根據使用者的輸入產生補全 |
/執行插件 | 使用提供的內容執行插件 |
/後續問題 | 用於根據使用者輸入產生後續問題的端點 |
/分詞器 | 用於取得字串值標記的端點 |
/獲取角色 | 取得字串標記的端點 |
/取得資料集 | 傳回可用資料集的列表 |
/取得插件 | 返回可用插件的列表 |
/ 搭火車 | 根據使用者的輸入訓練模型 |
/文件 | 將支援的文件轉換為純文字/文本 |
Python API 用戶端透過以下連結進行記錄和管理:https://pypi.org/project/asksageclient/
函數名稱 | 描述 |
---|---|
get_models | 從 Ask Sage 服務取得可用模型。 |
add_dataset | 新增資料集 |
delete_dataset | 刪除指定資料集 |
assign_dataset | 分配資料集 |
get_user_logs | 檢索使用者的所有日誌 |
get_user_logins | 檢索特定使用者的登入資訊 |
query | 與 Ask Sage API 的 /query 端點互動。 |
query_with_file | 使用檔案執行查詢 |
query_plugin | 使用特定外掛程式執行查詢 |
execute_plugin | 使用提供的內容執行插件 |
follow_up_questions | 與 Ask Sage API 的 /follow-up-questions 端點互動。 |
tokenizer | 與 Ask Sage API 的 /tokenizer 端點互動。 |
get_personas | 從 Ask Sage 服務取得可用的角色。 |
get_datasets | 從 Ask Sage 服務取得可用資料集。 |
get_plugins | 從 Ask Sage 服務取得可用插件。 |
count_monthly_tokens | 從 Ask Sage 服務取得該使用者每月花費的訓練代幣數量。 |
count_monthly_teach_tokens | 計算一個月內使用的教學令牌數量 |
train | 根據提供的內容訓練模型。 |
train_with_file | 根據提供的文件訓練資料集。 |
file | 將檔案上傳到 Ask Sage 服務。 |
在範例部分,我們將提供如何使用這些端點與 Ask Sage API 互動並使用平台上可用的模型來產生文字的範例。
使用者可以從Ask Sage平台取得API金鑰並使用它來產生存取權杖。 API 金鑰是一個唯一標識符,用於對使用者進行身份驗證並授予對 API 端點的存取權限。
導航至選單選項並選擇“帳戶和令牌”選項。
向下捲動到「API 金鑰」部分,然後按一下「產生 API 金鑰」按鈕。
透過選擇「建立新的 API 金鑰」按鈕來建立新的 API 金鑰。為 API 金鑰提供唯一的名稱,然後按一下「提交」按鈕。
API 金鑰將產生並顯示在螢幕上。複製 API 金鑰並將其儲存在安全位置。
使用者可以透過三種方法向 Ask Sage 端點進行身份驗證:
API 金鑰和電子郵件可用於驗證使用者身分並透過 Ask Sage Python 用戶端授予存取權限。 API 金鑰和使用者電子郵件將包含在請求標頭中。
例如,以下程式碼片段示範如何建立 AskSageClient 類別的實例並使用 API 金鑰和電子郵件透過 Ask Sage API 進行驗證:
import json # Import the json module to work with JSON data
import requests # Import the requests library to send HTTP requests
from asksageclient import AskSageClient # Import the AskSageClient class from the asksageclient module
# Function to load credentials from a JSON file
def load_credentials ( filename ):
try :
with open ( filename ) as file :
return json . load ( file )
except FileNotFoundError :
raise FileNotFoundError ( "The credentials file was not found." )
except json . JSONDecodeError :
raise ValueError ( "Failed to decode JSON from the credentials file." )
# Load the credentials
credentials = load_credentials ( '../../credentials.json' )
# Extract the API key, and email from the credentials to be used in the API request
api_key = credentials [ 'credentials' ][ 'api_key' ]
email = credentials [ 'credentials' ][ 'Ask_sage_user_info' ][ 'username' ]
"""
class AskSageClient(
email: email, # The email address of the user
api_key: api_key, # The API key for the Ask Sage API, which can be obtained from the Ask Sage website
user_base_url: str = 'https://api.asksage.ai/user', # The base URL for the user API
server_base_url: str = 'https://api.asksage.ai/server' # The base URL for the server API
)
"""
ask_sage_client = AskSageClient ( email , api_key ) # Create an instance of the AskSageClient class with the email and api_key
完成此設定後,使用者現在可以使用 AskSageClient 物件與 Ask Sage API 進行互動。
使用 API 金鑰和電子郵件地址以及端點「/get-token-with-api-key」產生存取權杖。存取權杖的有效期為 24 小時,可用於驗證對 Ask Sage API 的請求。
這是一種更安全的身份驗證方法,因為存取權杖僅在有限時間內有效,並且必須定期重新產生。
以下是 Python 中的範例程式碼片段,示範如何使用您的電子郵件地址和 API 金鑰來取得存取權杖:
import requests
# Define the endpoint URL
url = "https://api.asksage.ai/user/get-token-with-api-key"
# Define the payload with the user's email and API key
payload = {
"email" : "your_email@your_domain.com" ,
"api_key" : "sdfsdfsfr23456789" # Your API key generated from the Ask Sage platform
}
# Set the headers, if required (e.g., Content-Type)
headers = {
"Content-Type" : "application/json"
}
# Make the POST request
response = requests . post ( url , json = payload , headers = headers )
# Check if the request was successful
if response . status_code == 200 :
# Parse the JSON response
data = response . json ()
# raw response
print ( data )
# Extract the access token only from the response
access_token = data [ 'response' ][ 'access_token' ]
print ( access_token )
產生的存取權杖可用於驗證接下來 24 小時內向 Ask Sage API 發出的請求。以下是如何使用存取權杖對任何 Ask Sage API 端點的請求進行身份驗證的範例:
import requests
# Define the access token obtained from the previous request - Note: You would want to store this securely and not hardcode it in your script/file.
access_token = "fghjkl4567890" # Replace with the actual access token
# Define the endpoint URL
url = "https://api.asksage.ai/user/get-user-logins" # Replace with the actual base URL of the API
# Define the payload with the limit parameter
payload = {
"limit" : 1 # Replace with the desired limit (max is 100)
}
# Set the headers, including the Authorization header with the Bearer token
headers = {
"x-access-tokens" : access_token ,
"Content-Type" : "application/json"
}
# Make the POST request
response = requests . post ( url , json = payload , headers = headers )
# Check if the request was successful
if response . status_code == 200 :
# Parse the JSON response
data = response . json ()
print ( "User Logins:" , data )
else :
print ( f"Failed to get user logins. Status code: { response . status_code } " )
print ( f"Response: { response . text } " )
您可以將靜態 API 金鑰傳遞到需要令牌的位置,而不是每次需要存取 API 時都會產生存取權杖。這不如產生 24 小時存取權杖那麼安全,但對於某些用例而言,這是一個有效的選項。
注意:預期的標頭變數是
x-access-tokens
,值是 API 金鑰。 API 金鑰沒有時間限制,但出於安全原因建議定期重新產生。
import requests
# Define the access token obtained from the previous request - Note: You would want to store this securely and not hardcode it in your script/file.
access_token = api_key #
# Define the endpoint URL
url = "https://api.asksage.ai/user/get-user-logins" # Replace with the actual base URL of the API
# Define the payload with the limit parameter
payload = {
"limit" : 1 # Replace with the desired limit (max is 100)
}
# Set the headers, including the Authorization header with the Bearer token
headers = {
"x-access-tokens" : access_token ,
"Content-Type" : "application/json"
}
# Make the POST request
response = requests . post ( url , json = payload , headers = headers )
# Check if the request was successful
if response . status_code == 200 :
# Parse the JSON response
data = response . json ()
print ( "User Logins:" , data )
else :
print ( f"Failed to get user logins. Status code: { response . status_code } " )
print ( f"Response: { response . text } " )
這些範例將更側重於如何與 Ask Sage API 互動以及期望得到的回應。此外,還將創建一些迷你專案來展示生成式人工智慧的功能以及如何在現實場景中使用它。儘管此儲存庫專注於 Ask Sage API,但這些範例足夠通用,可以應用於提供類似服務但可能具有不同端點或參數的其他平台。
注意:目前的範例更側重於基於文字的模型,但將擴展到 LLM 與圖像、音訊和視訊(多模式模型)等其他資料類型的交互作用。研究這些範例將導致更複雜的項目,並且需要更多的資源和時間來完成。
從requirements.txt
安裝軟體包後,您可能需要重新啟動Jupyter核心才能使用更新的軟體包。這可確保正確載入新安裝的庫。
✅ 完成了 ✅
這並不是一個真正的例子,而是更多關於使用人工智慧的道德影響以及如何減輕任何潛在風險的討論。我們非常強調使用者需要接受關於人工智慧如何運作的良好培訓,但也讓使用者清楚地認識到透過 GenAI 工具產生的內容可能並不總是正確的。
✅ 完成了 ✅
此範例將介紹如何使用 Ask Sage API 端點以及高層回應中的預期內容。以下範例將展示如何在現實場景中使用端點來建立有用的應用程式、工具或服務。
?在建築業? --> 完整版本即將推出!
此範例將介紹如何與 LLM 模型互動以及如何使用提示工程產生高品質文本,用於指導模型產生所需的輸出。即時工程是一項強大且必要的技能,可用於控制語言模型的輸出並產生符合特定標準或要求的文字。
?在建築業?
在大多數情況下,LLM 模型是在大型資料集上進行訓練的,這些資料集包含來自各種來源的各種文本,並且不能保證與使用者的特定需求相關。然而,在 Ask Sage 上,使用者可以建立包含與其領域或用例相關的文字的自訂資料集,並將其與檢索增強生成 (RAG) 等方法一起使用,以提高模型的效能。因此,本範例將介紹如何建立自訂資料集並將其與 LLM 模型一起使用來產生與使用者需求更相關的文字。範例中將提供有關模型如何與資料集一起工作/整合的更詳細資訊。
?在建築業?
當今可用的法學碩士模型數量龐大,隨著生成式人工智慧領域的更多研究的進行,該模型的數量將繼續增長。本範例將介紹如何使用 Ask Sage 不可知 API 方法比較不同的 LLM 模型,並根據文字品質、連貫性、創造力等各種標準評估其效能。使用者可以使用這些資訊來選擇最適合其需求的模型,並就在其專案中使用哪個模型做出明智的決定。
若要前往此部分,請按一下比較 LLM 模型
?在建築業?
這是一個獨特的項目,將來可能會過時,但是,LLM 是基於文本的模型,可以根據用戶提供的輸入生成文本,但是如果我們想生成圖表而無需手動創建它怎麼辦?例如,假設我們想要流程圖、心智圖、甘特圖或任何其他類型的圖表。此範例將介紹我們如何使用基於文字的圖表建立工具 mermaid.js 來根據 LLM 模型產生的文字產生圖表。
要轉到此部分,請點擊“使用法學碩士建立圖表”
?在建築業?
能夠在 Raspberry Pi 或 Jetson Nano 等邊緣裝置上部署 LLM 模型呢?此範例將介紹如何在邊緣裝置上部署 LLM 模型並利用 Ask Sage API 產生文字。
若要前往此部分,請按一下邊緣裝置上的 LLM 部署
?在建築業?
我們如何評估法學碩士模型的表現並監控其隨時間的進展?此範例將介紹如何建立一個儀表板來顯示有關 LLM 模型的關鍵指標和見解。使用者可以使用此儀表板來追蹤模型的效能,並就如何隨著時間的推移改進模型做出明智的決策。
但首先,我們將使用 @arize-ai phoenix 開源工具建立儀表板,顯示有關 LLM 模型的關鍵指標和見解。
?在建築業?
讓我們創建一個聊天機器人網絡,它們可以相互通信並根據彼此的輸出生成文字。此範例將介紹如何使用 LLM 模型建立聊天機器人網路並模擬聊天機器人之間的對話。用戶可以使用該網路產生創意且引人入勝的文本,這些文本可用於各種應用程式、場景和建模用例。
若要前往此部分,請按一下 LLM Chatbot Network
在這裡,我們提供了來自要求特定範例或用例的用戶的附加範例清單。如果您有想要查看的特定範例或用例,請與我們聯繫,我們將盡力建立一個滿足您需求的範例。聯絡我們的最佳方式是加入我們的 Discord 伺服器並在那裡發布您的請求 Discord - Ask Sage :
AskSage API 在某些情況下可能會傳回錯誤,例如發出無效請求或超出速率限制時。使用者應該熟悉 API 傳回的錯誤代碼和訊息,並在程式碼中適當處理它們。
以下是使用 Ask Sage API 時需要牢記的一些最佳做法:
我們將提供額外的 pdf 文檔,其中包含與 GenerativeAI (GenAI) 相關的資源。本文檔將包含文章、書籍、教程、視頻和其他內容的鏈接,這些內容可能對有興趣了解更多關於生成人工智能以及如何有效使用它的用戶有所幫助。
我們的目標是提供全面的資源列表,涵蓋與生成人工智慧相關的廣泛主題,包括自然語言處理、電腦視覺、強化學習等。我們還將提供涵蓋生成人工智慧領域常用的特定模型和工具的資源。
如果您對本文檔中包含的資源有任何建議,請隨時與我們聯繫,我們將盡力將它們新增至清單。
快樂學習! ?
我們將提供使用生成人工智慧或機器學習時需要了解的重要詞彙清單。這些術語將幫助使用者理解人工智慧/機器學習領域使用的術語以及如何將其應用到他們的專案中。
例如,以下是使用生成式人工智慧時需要了解的一些術語:
若要查看完整的定義列表,請按一下要了解的定義
以下是我們希望添加到 Ask Sage API 中的一些功能或增強功能:
每個項目都有一個指向示例的鏈接,該示例將被創建以演示可以在何處使用該功能或增強功能。
Ask Sage API 中發現的任何錯誤或問題應直接向 Ask Sage 團隊報告。如果您在使用 API 時遇到任何問題,請聯絡 Ask Sage 團隊尋求協助。此外,您可以報告此儲存庫中的錯誤或問題,我們將在將它們轉發給 Ask Sage 團隊之前對其進行測試和驗證。
該儲存庫已根據 MIT 許可證獲得許可。有關詳細信息,請參閱許可證文件。