分享方式:


助理 API (預覽) 訊息參考

注意

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

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

建立訊息

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

建立訊息。

路徑參數

參數 類型​ 必要 描述
thread_id string 必要 要為其建立訊息的對話識別碼。

要求本文

名稱 類型​​ 必要 描述
role string 必要 正在建立訊息的實體角色。 可以是 userassistantuser 表示訊息由實際使用者所傳送,且多數情況下應用來代表使用者產生的訊息。 assistant 表示訊息由助理所產生。 使用此值,將來自助理的訊息插入對話中。
content 字串 必要 訊息的內容。
attachments 陣列 選擇性 附加至訊息的檔案清單,以及應新增檔案的工具。
metadata map 選擇性 可附加至物件的索引鍵/值組 (16 個為一組)。 這有助於以結構化格式儲存物件的其他相關資訊。 索引鍵的長度上限為 64 個字元,而值的長度上限為 512 個字元。

傳回

訊息物件。

建立訊息要求範例

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")
    )

thread_message = client.beta.threads.messages.create(
  "thread_abc123",
  role="user",
  content="How does AI work? Explain it in simple terms.",
)
print(thread_message)

列出訊息

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

傳回給定執行緒的訊息清單。

路徑參數

參數 類型​ 必要 描述
thread_id string 必要 訊息所屬對話的識別碼。

查詢參數

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

thread_messages = client.beta.threads.messages.list("thread_abc123")
print(thread_messages.data)

擷取訊息

GET https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/{thread_id}/messages/{message_id}?api-version=2024-08-01-preview

擷取訊息檔案。

路徑參數

參數 類型​ 必要 描述
thread_id string 必要 訊息所屬對話的識別碼。
message_id 字串 必要 要擷取之訊息的識別碼。

傳回

符合指定識別碼的訊息物件。

擷取訊息要求範例

from openai import AzureOpenAI

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

message = client.beta.threads.messages.retrieve(
  message_id="msg_abc123",
  thread_id="thread_abc123",
)
print(message)

修改訊息

POST https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/{thread_id}/messages/{message_id}?api-version=2024-08-01-preview

修改訊息。

路徑參數

參數 類型​ 必要 描述
thread_id string 必要 訊息所屬對話的識別碼。
message_id 字串 必要 要修改之訊息的識別碼。

要求本文

參數 類型​ 必要 描述
metadata map 選擇性 可附加至物件的索引鍵/值組 (16 個為一組)。 這有助於以結構化格式儲存物件的其他相關資訊。 索引鍵的長度上限為 64 個字元,而值的長度上限為 512 個字元。

傳回

修改過的訊息物件。

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")
    )

message = client.beta.threads.messages.update(
  message_id="msg_abc12",
  thread_id="thread_abc123",
  metadata={
    "modified": "true",
    "user": "abc123",
  },
)
print(message)

刪除訊息

DELETE https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/{thread_id}/messages/{message_id}?api-version=2024-08-01-preview

刪除訊息。

路徑參數

參數 類型​ 必要 描述
thread_id string 必要 訊息所屬對話的識別碼。
message_id 字串 必要 要修改之訊息的識別碼。

傳回

訊息物件的刪除狀態。

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")
    )

deleted_message = client.beta.threads.messages.delete(
  message_id="msg_abc12",
  thread_id="thread_abc123",
)
print(deleted_message)

訊息物件

代表執行緒內的訊息。

名稱 類型​​ 描述
id 字串 識別碼,可在 API 端點中參考。
object 字串 物件類型,一律為 thread.message。
created_at 整數 訊息建立時的 Unix 時間戳記 (以秒為單位)。
thread_id 字串 此訊息所屬的執行緒識別碼。
role 字串 產生訊息的實體。 userassistant 的其中之一。
content 陣列 文字和/或影像陣列中的訊息內容。
assistant_id string 或 null 撰寫此訊息的助理識別碼 (如果適用)。
run_id string 或 null 與此訊息的撰寫相關聯的執行識別碼 (如果適用)。
file_ids 陣列 助理應該使用的檔案識別碼清單。 適用於可存取檔案的工具,例如擷取和 code_interpreter。 最多可以將 10 個檔案附加至訊息。
metadata map 可附加至物件的索引鍵/值組 (16 個為一組)。 這有助於以結構化格式儲存物件的其他相關資訊。 索引鍵的長度上限為 64 個字元,而值的長度上限為 512 個字元。