Panggilan fungsi Asisten Azure OpenAI
Assistants API mendukung panggilan fungsi, yang memungkinkan Anda menjelaskan struktur fungsi ke Asisten lalu mengembalikan fungsi yang perlu dipanggil bersama dengan argumennya.
Catatan
- Pencarian file dapat menyerap hingga 10.000 file per asisten - 500 kali lebih banyak dari sebelumnya. Ini cepat, mendukung kueri paralel melalui pencarian multi-utas, dan fitur reranking dan penulisan ulang kueri yang ditingkatkan.
- Penyimpanan vektor adalah objek baru di API. Setelah file ditambahkan ke penyimpanan vektor, file secara otomatis diurai, dipotong, dan disematkan, dibuat siap untuk dicari. Penyimpanan vektor dapat digunakan di seluruh asisten dan utas, menyederhanakan manajemen dan penagihan file.
- Kami telah menambahkan dukungan untuk
tool_choice
parameter yang dapat digunakan untuk memaksa penggunaan alat tertentu (seperti pencarian file, penerjemah kode, atau fungsi) dalam eksekusi tertentu.
Dukungan panggilan fungsi
Model yang didukung
Halaman model berisi informasi terbaru tentang wilayah/model di mana Asisten didukung.
Untuk menggunakan semua fitur panggilan fungsi termasuk fungsi paralel, Anda perlu menggunakan model yang dirilis setelah 6 November 2023.
Versi API
2024-02-15-preview
2024-05-01-preview
Contoh definisi fungsi
Catatan
- Kami telah menambahkan dukungan untuk
tool_choice
parameter yang dapat digunakan untuk memaksa penggunaan alat tertentu (sepertifile_search
,code_interpreter
, atau )function
dalam eksekusi tertentu. - Berjalan kedaluwarsa sepuluh menit setelah pembuatan. Pastikan untuk mengirimkan output alat Anda sebelum kedaluwarsa ini.
- Anda juga dapat melakukan panggilan fungsi dengan aplikasi Azure Logic
from openai import AzureOpenAI
client = AzureOpenAI(
api_key=os.getenv("AZURE_OPENAI_API_KEY"),
api_version="2024-02-15-preview",
azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
)
assistant = client.beta.assistants.create(
instructions="You are a weather bot. Use the provided functions to answer questions.",
model="gpt-4-1106-preview", #Replace with model deployment name
tools=[{
"type": "function",
"function": {
"name": "getCurrentWeather",
"description": "Get the weather in location",
"parameters": {
"type": "object",
"properties": {
"location": {"type": "string", "description": "The city and state e.g. San Francisco, CA"},
"unit": {"type": "string", "enum": ["c", "f"]}
},
"required": ["location"]
}
}
}, {
"type": "function",
"function": {
"name": "getNickname",
"description": "Get the nickname of a city",
"parameters": {
"type": "object",
"properties": {
"location": {"type": "string", "description": "The city and state e.g. San Francisco, CA"},
},
"required": ["location"]
}
}
}]
)
Membaca fungsi
Saat Anda memulai Jalankan dengan Pesan pengguna yang memicu fungsi, Jalankan akan memasukkan status tertunda. Setelah diproses, eksekusi akan memasuki status requires_action yang dapat Anda verifikasi dengan mengambil Jalankan.
{
"id": "run_abc123",
"object": "thread.run",
"assistant_id": "asst_abc123",
"thread_id": "thread_abc123",
"status": "requires_action",
"required_action": {
"type": "submit_tool_outputs",
"submit_tool_outputs": {
"tool_calls": [
{
"id": "call_abc123",
"type": "function",
"function": {
"name": "getCurrentWeather",
"arguments": "{\"location\":\"San Francisco\"}"
}
},
{
"id": "call_abc456",
"type": "function",
"function": {
"name": "getNickname",
"arguments": "{\"location\":\"Los Angeles\"}"
}
}
]
}
},
...
Mengirimkan output fungsi
Anda kemudian dapat menyelesaikan Jalankan dengan mengirimkan output alat dari fungsi yang Anda panggil. Teruskan yang dirujuk tool_call_id
dalam objek di required_action
atas untuk mencocokkan output dengan setiap panggilan fungsi.
from openai import AzureOpenAI
client = AzureOpenAI(
api_key=os.getenv("AZURE_OPENAI_API_KEY"),
api_version="2024-02-15-preview",
azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
)
run = client.beta.threads.runs.submit_tool_outputs(
thread_id=thread.id,
run_id=run.id,
tool_outputs=[
{
"tool_call_id": call_ids[0],
"output": "22C",
},
{
"tool_call_id": call_ids[1],
"output": "LA",
},
]
)
Setelah Anda mengirimkan output alat, Jalankan akan memasuki status queued
sebelum melanjutkan eksekusi.
Lihat juga
- Referensi API Asisten
- Pelajari selengkapnya tentang cara menggunakan Asisten dengan panduan Cara kami tentang Asisten.
- Sampel API Asisten Azure OpenAI
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk