分享方式:


助理 API (預覽) 參考

注意

  • 檔案搜尋可以內嵌每個助理最多 10,000 個檔案 - 比之前多 500 倍。 其速度很快,可透過多對話搜尋支援平行查詢,以及增強重新排名和查詢重寫的功能。
    • 向量存放區是 API 中的新物件。 一旦檔案新增至向量存放區,它就會自動進行剖析、區塊化和內嵌,並準備好提供搜尋。 向量存放區可以跨助理和對話使用,簡化檔案管理和計費。
  • 我們已新增 tool_choice 參數的支援,可用來強制在特定執行中使用特定工具 (例如檔案搜尋、程式碼解譯器或函式)。

本文提供新助理 API (預覽) 的 Python 和 REST 參考文件。 入門指南會提供更深入的逐步指引。

建立助理

POST https://YOUR_RESOURCE_NAME.openai.azure.com/openai/assistants?api-version=2024-05-01-preview

使用模型和指示建立助理。

要求本文

名稱 類型​​ 必要 描述
機型 字串 必要 要使用的模型部署名稱。
NAME string 或 null 選擇性 助理的名稱。 最大長度是 256 個字元。
description string 或 null 選擇性 助理的描述。 長度上限為 512 個字元。
指示 string 或 null 選擇性 助理所使用的系統指示。 長度上限為 256,000 個字元。
tools 陣列 選擇性 預設為 []。 在助理上啟用的工具清單。 每個助理最多可以有 128 個工具。 工具目前可以是 code_interpreter 類型或 functionfunction 描述最多可以有 1,024 個字元。
中繼資料 map 選擇性 可附加至物件的索引鍵/值組 (16 個為一組)。 這有助於以結構化格式儲存物件的其他相關資訊。 索引鍵的長度上限為 64 個字元,而值的長度上限為 512 個字元。
溫度 數字或 null 選擇性 預設值為 1。 決定要使用的取樣溫度,介於 0 到 2 之間。 0.8 之類的較高值會讓輸出更隨機,而 0.2 之類的較低值會使它更集中且具決定性。
top_p 數字或 null 選擇性 預設值為 1。 核取樣是溫度取樣的替代方法,在此方法中,模型會考慮包含 top_p 機率質量的權杖結果。 因此,0.1 表示只考慮組成前 10% 機率質量的權杖。 一般會建議改變這個值或溫度,但不建議同時改變。
response_format 字串或物件 選擇性 指定模型必須輸出的格式。 與 GPT-4 Turbo 和 gpt-3.5-turbo-1106 之後的所有 GPT-3.5 Turbo 模型相容。 將此參數設定為 { "type": "json_object" } 會啟用 JSON 模式,保證模型產生的訊息為有效的 JSON。 重要的是,使用 JSON 模式時,您也必須使用系統或使用者訊息指示模型自行產生 JSON。 若無此指示,模型可能會產生一連串無止境的空白字元,直到產生作業達到權杖限制,因而導致要求長時間執行,且看似「停滯」。 此外,如果您使用 finish_reason="length",表示訊息產生超過 max_tokens 或對話超過最大內容長度,則訊息可能會遭部分截斷。
tool_resources object 選擇性 助理的工具所使用的一組資源。 工具的類型專用的資源。 例如,code_interpreter 工具需要檔案識別碼的清單,而 file_search 工具則需要向量存放區識別碼的清單。

傳回

助理物件。

建立助理要求的範例

from openai import AzureOpenAI
    
client = AzureOpenAI(
    api_key=os.getenv("AZURE_OPENAI_API_KEY"),  
    api_version="2024-08-01-preview",
    azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
    )

assistant = client.beta.assistants.create(
  instructions="You are an AI assistant that can write code to help answer math questions",
  model="<REPLACE WITH MODEL DEPLOYMENT NAME>", # replace with model deployment name. 
  tools=[{"type": "code_interpreter"}]
)

列出助理

GET https://YOUR_RESOURCE_NAME.openai.azure.com/openai/assistants?api-version=2024-05-01-preview

傳回所有助理的清單。

查詢參數

參數 類型​ 必要 描述
limit 整數 選擇性 要傳回的物件數目限制。 限制的範圍可以介於 1 到 100 之間,預設值為 20。
order 字串 (選擇性) 預設值為 desc 依物件的 created_at 時間戳記排序次序。 asc 代表遞增排序,而 desc 代表遞減排序。
after 字串 選擇性 用於分頁的游標。 after 是在清單中定義您的位置的物件識別碼。 例如,如果您提出清單要求並收到 100 個物件 (結尾為 obj_foo),則後續呼叫可以包含 after=obj_foo 來擷取清單的下一頁。
before 字串 選擇性 用於分頁的游標。 before 是在清單中定義您的位置的物件識別碼。 例如,如果您提出清單要求並收到 100 個物件 (結尾為 obj_foo),則後續呼叫可以包含 before=obj_foo 來擷取清單的上一頁。

傳回

助理物件清單

清單助理範例

from openai import AzureOpenAI
    
client = AzureOpenAI(
    api_key=os.getenv("AZURE_OPENAI_API_KEY"),  
    api_version="2024-08-01-preview",
    azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
    )

my_assistants = client.beta.assistants.list(
    order="desc",
    limit="20",
)
print(my_assistants.data)

擷取助理

GET https://YOUR_RESOURCE_NAME.openai.azure.com/openai/assistants/{assistant_id}?api-version=2024-08-01-preview

擷取助理。

路徑參數

參數 類型​ 必要 描述
assistant_id string 必要 要擷取的助理識別碼。

傳回

符合指定識別碼的助理物件。

擷取助理範例

client = AzureOpenAI(
    api_key=os.getenv("AZURE_OPENAI_API_KEY"),  
    api_version="2024-08-01-preview",
    azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
    )

my_assistant = client.beta.assistants.retrieve("asst_abc123")
print(my_assistant)

修改助理

POST https://YOUR_RESOURCE_NAME.openai.azure.com/openai/assistants/{assistant_id}?api-version=2024-08-01-preview

修改助理。

路徑參數

參數 類型​ 必要 描述
assistant_id 字串 必要 檔案所屬助理的識別碼。

要求本文

參數 類型​ 必要 描述
model 選擇性 要使用的模型部署名稱。
name string 或 null 選擇性 助理的名稱。 最大長度是 256 個字元。
description string 或 null 選擇性 助理的描述。 長度上限為 512 個字元。
instructions string 或 null 選擇性 助理所使用的系統指示。 長度上限為 32768 個字元。
tools 陣列 選擇性 預設為 []。 在助理上啟用的工具清單。 每個助理最多可以有 128 個工具。 工具可以是 code_interpreter 類型或函式。 function 描述最多可以有 1,024 個字元。
metadata map 選擇性 可附加至物件的索引鍵/值組 (16 個為一組)。 這有助於以結構化格式儲存物件的其他相關資訊。 索引鍵的長度上限為 64 個字元,而值的長度上限為 512 個字元。
temperature 數字或 null 選擇性 預設值為 1。 決定要使用的取樣溫度,介於 0 到 2 之間。 0.8 之類的較高值會讓輸出更隨機,而 0.2 之類的較低值會使它更集中且具決定性。
top_p 數字或 null 選擇性 預設值為 1。 核取樣是溫度取樣的替代方法,在此方法中,模型會考慮包含 top_p 機率質量的權杖結果。 因此,0.1 表示只考慮組成前 10% 機率質量的權杖。 一般會建議改變這個值或溫度,但不建議同時改變。
response_format 字串或物件 選擇性 指定模型必須輸出的格式。 與 GPT-4 Turbo 和 gpt-3.5-turbo-1106 之後的所有 GPT-3.5 Turbo 模型相容。 將此參數設定為 { "type": "json_object" } 會啟用 JSON 模式,保證模型產生的訊息為有效的 JSON。 重要的是,使用 JSON 模式時,您也必須使用系統或使用者訊息指示模型自行產生 JSON。 若無此指示,模型可能會產生一連串無止境的空白字元,直到產生作業達到權杖限制,因而導致要求長時間執行,且看似「停滯」。 此外,如果您使用 finish_reason="length",表示訊息產生超過 max_tokens 或對話超過最大內容長度,則訊息可能會遭部分截斷。
tool_resources object 選擇性 助理的工具所使用的一組資源。 工具的類型專用的資源。 例如,code_interpreter 工具需要檔案識別碼的清單,而 file_search 工具則需要向量存放區識別碼的清單。

傳回

修改過的助理物件

修改助理範例

client = AzureOpenAI(
    api_key=os.getenv("AZURE_OPENAI_API_KEY"),  
    api_version="2024-08-01-preview",
    azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
    )

my_updated_assistant = client.beta.assistants.update(
  "asst_abc123",
  instructions="You are an HR bot, and you have access to files to answer employee questions about company policies. Always respond with info from either of the files.",
  name="HR Helper",
  tools=[{"type": "code-interpreter"}],
  model="gpt-4", #model = model deployment name
)

print(my_updated_assistant)

刪除助理

DELETE https://YOUR_RESOURCE_NAME.openai.azure.com/openai/assistants/{assistant_id}?api-version=2024-08-01-preview

刪除助理。

路徑參數

參數 類型​ 必要 描述
assistant_id string 必要 檔案所屬助理的識別碼。

傳回

刪除狀態。

刪除助理範例

client = AzureOpenAI(
    api_key=os.getenv("AZURE_OPENAI_API_KEY"),  
    api_version="2024-08-01-preview",
    azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
    )

response = client.beta.assistants.delete("asst_abc123")
print(response)

檔案上傳 API 參考

助理會使用相同的 API 進行檔案上傳,就像微調一樣。 上傳檔案時,您必須為目的參數指定適當的值。

助理物件

欄位 類型 描述
id 字串 識別碼,可在 API 端點中參考。
object 字串 物件類型,一律為助理。
created_at 整數 助理建立時的 Unix 時間戳記 (以秒為單位)。
name string 或 null 助理的名稱。 最大長度是 256 個字元。
description string 或 null 助理的描述。 長度上限為 512 個字元。
model 字串 要使用的模型部署名稱。
instructions string 或 null 助理所使用的系統指示。 長度上限為 32768 個字元。
tools 陣列 在助理上啟用的工具清單。 每個助理最多可以有 128 個工具。 工具可以是 code_interpreter 類型或函式。 function 描述最多可以有 1,024 個字元。
metadata map 可附加至物件的索引鍵/值組 (16 個為一組)。 這有助於以結構化格式儲存物件的其他相關資訊。 索引鍵的長度上限為 64 個字元,而值的長度上限為 512 個字元。
temperature 數字或 null 預設值為 1。 決定要使用的取樣溫度,介於 0 到 2 之間。 0.8 之類的較高值會讓輸出更隨機,而 0.2 之類的較低值會使它更集中且具決定性。
top_p 數字或 null 預設值為 1。 核取樣是溫度取樣的替代方法,在此方法中,模型會考慮包含 top_p 機率質量的權杖結果。 因此,0.1 表示只考慮組成前 10% 機率質量的權杖。 一般會建議改變這個值或溫度,但不建議同時改變。
response_format 字串或物件 指定模型必須輸出的格式。 與 GPT-4 Turbo 和 gpt-3.5-turbo-1106 之後的所有 GPT-3.5 Turbo 模型相容。 將此參數設定為 { "type": "json_object" } 會啟用 JSON 模式,保證模型產生的訊息為有效的 JSON。 重要的是,使用 JSON 模式時,您也必須使用系統或使用者訊息指示模型自行產生 JSON。 若無此指示,模型可能會產生一連串無止境的空白字元,直到產生作業達到權杖限制,因而導致要求長時間執行,且看似「停滯」。 此外,如果您使用 finish_reason="length",表示訊息產生超過 max_tokens 或對話超過最大內容長度,則訊息可能會遭部分截斷。
tool_resources object 助理的工具所使用的一組資源。 工具的類型專用的資源。 例如,code_interpreter 工具需要檔案識別碼的清單,而 file_search 工具則需要向量存放區識別碼的清單。