Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Penting
Ekstensi Azure OpenAI untuk Azure Functions saat ini dalam pratinjau.
Pengikatan input pasca asisten Azure OpenAI memungkinkan Anda mengirim perintah ke bot obrolan asisten.
Untuk informasi tentang penyiapan dan detail konfigurasi ekstensi Azure OpenAI, lihat Ekstensi Azure OpenAI untuk Azure Functions. Untuk mempelajari selengkapnya tentang asisten Azure OpenAI, lihat Azure OpenAI Assistants API.
Catatan
Referensi dan contoh hanya disediakan untuk model Node.js v4.
Catatan
Referensi dan contoh hanya disediakan untuk model Python v2.
Catatan
Meskipun kedua model proses C# didukung, hanya contoh model pekerja terisolasi yang disediakan.
Contoh
Contoh ini menunjukkan proses pembuatan, di mana fungsi HTTP POST yang mengirim permintaan pengguna ke bot obrolan asisten. Respons terhadap perintah dikembalikan dalam respons HTTP.
/// <summary>
/// HTTP POST function that sends user prompts to the assistant chat bot.
/// </summary>
[Function(nameof(PostUserQuery))]
public static IActionResult PostUserQuery(
[HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "assistants/{assistantId}")] HttpRequestData req,
string assistantId,
[AssistantPostInput("{assistantId}", "{Query.message}", ChatModel = "%CHAT_MODEL_DEPLOYMENT_NAME%", ChatStorageConnectionSetting = DefaultChatStorageConnectionSetting, CollectionName = DefaultCollectionName)] AssistantState state)
{
return new OkObjectResult(state.RecentMessages.Any() ? state.RecentMessages[state.RecentMessages.Count - 1].Content : "No response returned.");
}
Contoh ini menunjukkan proses pembuatan, di mana fungsi HTTP POST yang mengirim permintaan pengguna ke bot obrolan asisten. Respons terhadap perintah dikembalikan dalam respons HTTP.
/*
* HTTP POST function that sends user prompts to the assistant chat bot.
*/
@FunctionName("PostUserResponse")
public HttpResponseMessage postUserResponse(
@HttpTrigger(
name = "req",
methods = {HttpMethod.POST},
authLevel = AuthorizationLevel.ANONYMOUS,
route = "assistants/{assistantId}")
HttpRequestMessage<Optional<String>> request,
@BindingName("assistantId") String assistantId,
@AssistantPost(name="newMessages", id = "{assistantId}", chatModel = "%CHAT_MODEL_DEPLOYMENT_NAME%", userMessage = "{Query.message}", chatStorageConnectionSetting = DEFAULT_CHATSTORAGE, collectionName = DEFAULT_COLLECTION) AssistantState state,
final ExecutionContext context) {
List<AssistantMessage> recentMessages = state.getRecentMessages();
String response = recentMessages.isEmpty() ? "No response returned." : recentMessages.get(recentMessages.size() - 1).getContent();
return request.createResponseBuilder(HttpStatus.OK)
.header("Content-Type", "application/json")
.body(response)
.build();
}
Contoh ini menunjukkan proses pembuatan, di mana fungsi HTTP POST yang mengirim permintaan pengguna ke bot obrolan asisten. Respons terhadap perintah dikembalikan dalam respons HTTP.
const { app, input, output } = require("@azure/functions");
const assistantPostInput = input.generic({
type: 'assistantPost',
id: '{assistantId}',
chatModel: '%CHAT_MODEL_DEPLOYMENT_NAME%',
userMessage: '{Query.message}',
chatStorageConnectionSetting: CHAT_STORAGE_CONNECTION_SETTING,
collectionName: COLLECTION_NAME
})
app.http('PostUserResponse', {
methods: ['POST'],
route: 'assistants/{assistantId}',
authLevel: 'anonymous',
extraInputs: [assistantPostInput],
handler: async (_, context) => {
const chatState = context.extraInputs.get(assistantPostInput)
const content = chatState.recentMessages[0].content
return {
status: 200,
body: content,
headers: {
'Content-Type': 'text/plain'
}
};
}
})
import { HttpRequest, InvocationContext, app, input, output } from "@azure/functions"
const assistantPostInput = input.generic({
type: 'assistantPost',
id: '{assistantId}',
chatModel: '%CHAT_MODEL_DEPLOYMENT_NAME%',
userMessage: '{Query.message}',
chatStorageConnectionSetting: CHAT_STORAGE_CONNECTION_SETTING,
collectionName: COLLECTION_NAME
})
app.http('PostUserResponse', {
methods: ['POST'],
route: 'assistants/{assistantId}',
authLevel: 'anonymous',
extraInputs: [assistantPostInput],
handler: async (_, context) => {
const chatState: any = context.extraInputs.get(assistantPostInput)
const content = chatState.recentMessages[0].content
return {
status: 200,
body: content,
headers: {
'Content-Type': 'text/plain'
}
};
}
})
Contoh ini menunjukkan proses pembuatan, di mana fungsi HTTP POST yang mengirim permintaan pengguna ke bot obrolan asisten. Respons terhadap perintah dikembalikan dalam respons HTTP.
Berikut adalah file function.json untuk kueri pengguna posting:
{
"bindings": [
{
"authLevel": "function",
"type": "httpTrigger",
"direction": "in",
"name": "Request",
"route": "assistants/{assistantId}",
"methods": [
"post"
]
},
{
"type": "http",
"direction": "out",
"name": "Response"
},
{
"name": "State",
"type": "assistantPost",
"direction": "in",
"dataType": "string",
"id": "{assistantId}",
"userMessage": "{Query.message}",
"chatModel": "%CHAT_MODEL_DEPLOYMENT_NAME%",
"chatStorageConnectionSetting": "AzureWebJobsStorage",
"collectionName": "ChatState"
}
]
}
Untuk informasi selengkapnya tentang properti file function.json , lihat bagian Konfigurasi .
using namespace System.Net
param($Request, $TriggerMetadata, $State)
$recent_message_content = "No recent messages!"
if ($State.recentMessages.Count -gt 0) {
$recent_message_content = $State.recentMessages[0].content
}
Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
StatusCode = [HttpStatusCode]::OK
Body = $recent_message_content
Headers = @{
"Content-Type" = "text/plain"
}
})
Contoh ini menunjukkan proses pembuatan, di mana fungsi HTTP POST yang mengirim permintaan pengguna ke bot obrolan asisten. Respons terhadap perintah dikembalikan dalam respons HTTP.
@apis.function_name("PostUserQuery")
@apis.route(route="assistants/{assistantId}", methods=["POST"])
@apis.assistant_post_input(
arg_name="state",
id="{assistantId}",
user_message="{Query.message}",
chat_model="%CHAT_MODEL_DEPLOYMENT_NAME%",
chat_storage_connection_setting=DEFAULT_CHAT_STORAGE_SETTING,
collection_name=DEFAULT_CHAT_COLLECTION_NAME,
)
def post_user_response(req: func.HttpRequest, state: str) -> func.HttpResponse:
# Parse the JSON string into a dictionary
data = json.loads(state)
# Extract the content of the recentMessage
recent_message_content = data["recentMessages"][0]["content"]
return func.HttpResponse(
recent_message_content, status_code=200, mimetype="text/plain"
)
Atribut
PostUserQuery Terapkan atribut untuk menentukan pengikatan input pasca asisten, yang mendukung parameter ini:
| Pengaturan | Deskripsi |
|---|---|
| Id | ID asisten yang akan diperbarui. |
| UserMessage | Mendapatkan atau mengatur pesan pengguna untuk model penyelesaian obrolan, dikodekan sebagai string. |
| AIConnectionName | Opsional. Mendapatkan atau mengatur nama bagian konfigurasi untuk pengaturan konektivitas layanan AI. Untuk Azure OpenAI: Jika ditentukan, cari nilai "Titik Akhir" dan "Kunci" di bagian konfigurasi ini. Jika tidak ditentukan atau bagian tidak ada, kembali ke variabel lingkungan: AZURE_OPENAI_ENDPOINT dan AZURE_OPENAI_KEY. Untuk autentikasi identitas terkelola yang ditetapkan pengguna, properti ini diperlukan. Untuk layanan OpenAI (non-Azure), atur variabel lingkungan OPENAI_API_KEY. |
| ChatModel |
Opsional. Mendapatkan atau mengatur ID model yang akan digunakan sebagai string, dengan nilai gpt-3.5-turbodefault . |
| Suhu |
Opsional. Mendapatkan atau mengatur suhu pengambilan sampel yang akan digunakan, sebagai string antara 0 dan 2. Nilai yang lebih tinggi (0.8) membuat output lebih acak, sementara nilai yang lebih rendah seperti (0.2) membuat output lebih fokus dan deterministik. Anda harus menggunakan atau TemperatureTopP, tetapi tidak keduanya. |
| TopP |
Opsional. Mendapatkan atau mengatur alternatif untuk pengambilan sampel dengan suhu, yang disebut pengambilan sampel nukleus, sebagai string. Dalam metode pengambilan sampel ini, model mempertimbangkan hasil token dengan top_p massa probabilitas. Jadi 0.1 berarti hanya token yang terdiri dari 10 besar% massa probabilitas yang dipertimbangkan. Anda harus menggunakan atau TemperatureTopP, tetapi tidak keduanya. |
| MaxTokens |
Opsional. Mendapatkan atau mengatur jumlah maksimum token yang akan dihasilkan dalam penyelesaian, sebagai string dengan default 100. Jumlah token prompt Anda ditambah max_tokens tidak dapat melebihi panjang konteks model. Sebagian besar model memiliki panjang konteks 2.048 token (kecuali untuk model terbaru, yang mendukung 4096). |
| IsReasoningModel |
Opsional. Mendapatkan atau menetapkan nilai yang menunjukkan apakah model penyelesaian obrolan adalah model penalaran. Opsi ini bersifat eksperimental dan terkait dengan model penalaran sampai semua model memiliki paritas di properti yang diharapkan, dengan nilai falsedefault . |
Anotasi
Anotasi PostUserQuery memungkinkan Anda menentukan pengikatan input posting asisten, yang mendukung parameter ini:
| Elemen | Deskripsi |
|---|---|
| nama | Nama pengikatan output. |
| Id | ID asisten yang akan diperbarui. |
| userMessage | Mendapatkan atau mengatur pesan pengguna untuk model penyelesaian obrolan, dikodekan sebagai string. |
| aiConnectionName | Opsional. Mendapatkan atau mengatur nama bagian konfigurasi untuk pengaturan konektivitas layanan AI. Untuk Azure OpenAI: Jika ditentukan, cari nilai "Titik Akhir" dan "Kunci" di bagian konfigurasi ini. Jika tidak ditentukan atau bagian tidak ada, kembali ke variabel lingkungan: AZURE_OPENAI_ENDPOINT dan AZURE_OPENAI_KEY. Untuk autentikasi identitas terkelola yang ditetapkan pengguna, properti ini diperlukan. Untuk layanan OpenAI (non-Azure), atur variabel lingkungan OPENAI_API_KEY. |
| chatModel | Mendapatkan atau mengatur ID model yang akan digunakan sebagai string, dengan nilai gpt-3.5-turbodefault . |
| suhu |
Opsional. Mendapatkan atau mengatur suhu pengambilan sampel yang akan digunakan, sebagai string antara 0 dan 2. Nilai yang lebih tinggi (0.8) membuat output lebih acak, sementara nilai yang lebih rendah seperti (0.2) membuat output lebih fokus dan deterministik. Anda harus menggunakan atau TemperatureTopP, tetapi tidak keduanya. |
| topP |
Opsional. Mendapatkan atau mengatur alternatif untuk pengambilan sampel dengan suhu, yang disebut pengambilan sampel nukleus, sebagai string. Dalam metode pengambilan sampel ini, model mempertimbangkan hasil token dengan top_p massa probabilitas. Jadi 0.1 berarti hanya token yang terdiri dari 10 besar% massa probabilitas yang dipertimbangkan. Anda harus menggunakan atau TemperatureTopP, tetapi tidak keduanya. |
| maxTokens |
Opsional. Mendapatkan atau mengatur jumlah maksimum token yang akan dihasilkan dalam penyelesaian, sebagai string dengan default 100. Jumlah token prompt Anda ditambah max_tokens tidak dapat melebihi panjang konteks model. Sebagian besar model memiliki panjang konteks 2.048 token (kecuali untuk model terbaru, yang mendukung 4096). |
| isReasoningModel |
Opsional. Mendapatkan atau menetapkan nilai yang menunjukkan apakah model penyelesaian obrolan adalah model penalaran. Opsi ini bersifat eksperimental dan terkait dengan model penalaran sampai semua model memiliki paritas di properti yang diharapkan, dengan nilai falsedefault . |
Dekorator
Selama pratinjau, tentukan pengikatan output sebagai generic_output_binding pengikatan jenis postUserQuery, yang mendukung parameter ini:
| Pengaturan | Deskripsi |
|---|---|
| arg_name | Nama variabel yang mewakili parameter pengikatan. |
| Id | ID asisten yang akan diperbarui. |
| user_message | Mendapatkan atau mengatur pesan pengguna untuk model penyelesaian obrolan, dikodekan sebagai string. |
| ai_connection_name | Opsional. Mendapatkan atau mengatur nama bagian konfigurasi untuk pengaturan konektivitas layanan AI. Untuk Azure OpenAI: Jika ditentukan, cari nilai "Titik Akhir" dan "Kunci" di bagian konfigurasi ini. Jika tidak ditentukan atau bagian tidak ada, kembali ke variabel lingkungan: AZURE_OPENAI_ENDPOINT dan AZURE_OPENAI_KEY. Untuk autentikasi identitas terkelola yang ditetapkan pengguna, properti ini diperlukan. Untuk layanan OpenAI (non-Azure), atur variabel lingkungan OPENAI_API_KEY. |
| chat_model | Mendapatkan atau mengatur ID model yang akan digunakan sebagai string, dengan nilai gpt-3.5-turbodefault . |
| suhu |
Opsional. Mendapatkan atau mengatur suhu pengambilan sampel yang akan digunakan, sebagai string antara 0 dan 2. Nilai yang lebih tinggi (0.8) membuat output lebih acak, sementara nilai yang lebih rendah seperti (0.2) membuat output lebih fokus dan deterministik. Anda harus menggunakan atau TemperatureTopP, tetapi tidak keduanya. |
| top_p |
Opsional. Mendapatkan atau mengatur alternatif untuk pengambilan sampel dengan suhu, yang disebut pengambilan sampel nukleus, sebagai string. Dalam metode pengambilan sampel ini, model mempertimbangkan hasil token dengan top_p massa probabilitas. Jadi 0.1 berarti hanya token yang terdiri dari 10 besar% massa probabilitas yang dipertimbangkan. Anda harus menggunakan atau TemperatureTopP, tetapi tidak keduanya. |
| max_tokens |
Opsional. Mendapatkan atau mengatur jumlah maksimum token yang akan dihasilkan dalam penyelesaian, sebagai string dengan default 100. Jumlah token prompt Anda ditambah max_tokens tidak dapat melebihi panjang konteks model. Sebagian besar model memiliki panjang konteks 2.048 token (kecuali untuk model terbaru, yang mendukung 4096). |
| is_reasoning _model |
Opsional. Mendapatkan atau menetapkan nilai yang menunjukkan apakah model penyelesaian obrolan adalah model penalaran. Opsi ini bersifat eksperimental dan terkait dengan model penalaran sampai semua model memiliki paritas di properti yang diharapkan, dengan nilai falsedefault . |
Konfigurasi
Pengikatan mendukung properti konfigurasi ini yang Anda tetapkan dalam file function.json.
| Properti | Deskripsi |
|---|---|
| jenis | Harus berupa PostUserQuery . |
| arah | Harus berupa out . |
| nama | Nama pengikatan output. |
| Id | ID asisten yang akan diperbarui. |
| userMessage | Mendapatkan atau mengatur pesan pengguna untuk model penyelesaian obrolan, dikodekan sebagai string. |
| aiConnectionName | Opsional. Mendapatkan atau mengatur nama bagian konfigurasi untuk pengaturan konektivitas layanan AI. Untuk Azure OpenAI: Jika ditentukan, cari nilai "Titik Akhir" dan "Kunci" di bagian konfigurasi ini. Jika tidak ditentukan atau bagian tidak ada, kembali ke variabel lingkungan: AZURE_OPENAI_ENDPOINT dan AZURE_OPENAI_KEY. Untuk autentikasi identitas terkelola yang ditetapkan pengguna, properti ini diperlukan. Untuk layanan OpenAI (non-Azure), atur variabel lingkungan OPENAI_API_KEY. |
| chatModel | Mendapatkan atau mengatur ID model yang akan digunakan sebagai string, dengan nilai gpt-3.5-turbodefault . |
| suhu |
Opsional. Mendapatkan atau mengatur suhu pengambilan sampel yang akan digunakan, sebagai string antara 0 dan 2. Nilai yang lebih tinggi (0.8) membuat output lebih acak, sementara nilai yang lebih rendah seperti (0.2) membuat output lebih fokus dan deterministik. Anda harus menggunakan atau TemperatureTopP, tetapi tidak keduanya. |
| topP |
Opsional. Mendapatkan atau mengatur alternatif untuk pengambilan sampel dengan suhu, yang disebut pengambilan sampel nukleus, sebagai string. Dalam metode pengambilan sampel ini, model mempertimbangkan hasil token dengan top_p massa probabilitas. Jadi 0.1 berarti hanya token yang terdiri dari 10 besar% massa probabilitas yang dipertimbangkan. Anda harus menggunakan atau TemperatureTopP, tetapi tidak keduanya. |
| maxTokens |
Opsional. Mendapatkan atau mengatur jumlah maksimum token yang akan dihasilkan dalam penyelesaian, sebagai string dengan default 100. Jumlah token prompt Anda ditambah max_tokens tidak dapat melebihi panjang konteks model. Sebagian besar model memiliki panjang konteks 2.048 token (kecuali untuk model terbaru, yang mendukung 4096). |
| isReasoningModel |
Opsional. Mendapatkan atau menetapkan nilai yang menunjukkan apakah model penyelesaian obrolan adalah model penalaran. Opsi ini bersifat eksperimental dan terkait dengan model penalaran sampai semua model memiliki paritas di properti yang diharapkan, dengan nilai falsedefault . |
Konfigurasi
Pengikatan mendukung properti ini, yang ditentukan dalam kode Anda:
| Properti | Deskripsi |
|---|---|
| Id | ID asisten yang akan diperbarui. |
| userMessage | Mendapatkan atau mengatur pesan pengguna untuk model penyelesaian obrolan, dikodekan sebagai string. |
| aiConnectionName | Opsional. Mendapatkan atau mengatur nama bagian konfigurasi untuk pengaturan konektivitas layanan AI. Untuk Azure OpenAI: Jika ditentukan, cari nilai "Titik Akhir" dan "Kunci" di bagian konfigurasi ini. Jika tidak ditentukan atau bagian tidak ada, kembali ke variabel lingkungan: AZURE_OPENAI_ENDPOINT dan AZURE_OPENAI_KEY. Untuk autentikasi identitas terkelola yang ditetapkan pengguna, properti ini diperlukan. Untuk layanan OpenAI (non-Azure), atur variabel lingkungan OPENAI_API_KEY. |
| chatModel | Mendapatkan atau mengatur ID model yang akan digunakan sebagai string, dengan nilai gpt-3.5-turbodefault . |
| suhu |
Opsional. Mendapatkan atau mengatur suhu pengambilan sampel yang akan digunakan, sebagai string antara 0 dan 2. Nilai yang lebih tinggi (0.8) membuat output lebih acak, sementara nilai yang lebih rendah seperti (0.2) membuat output lebih fokus dan deterministik. Anda harus menggunakan atau TemperatureTopP, tetapi tidak keduanya. |
| topP |
Opsional. Mendapatkan atau mengatur alternatif untuk pengambilan sampel dengan suhu, yang disebut pengambilan sampel nukleus, sebagai string. Dalam metode pengambilan sampel ini, model mempertimbangkan hasil token dengan top_p massa probabilitas. Jadi 0.1 berarti hanya token yang terdiri dari 10 besar% massa probabilitas yang dipertimbangkan. Anda harus menggunakan atau TemperatureTopP, tetapi tidak keduanya. |
| maxTokens |
Opsional. Mendapatkan atau mengatur jumlah maksimum token yang akan dihasilkan dalam penyelesaian, sebagai string dengan default 100. Jumlah token prompt Anda ditambah max_tokens tidak dapat melebihi panjang konteks model. Sebagian besar model memiliki panjang konteks 2.048 token (kecuali untuk model terbaru, yang mendukung 4096). |
| isReasoningModel |
Opsional. Mendapatkan atau menetapkan nilai yang menunjukkan apakah model penyelesaian obrolan adalah model penalaran. Opsi ini bersifat eksperimental dan terkait dengan model penalaran sampai semua model memiliki paritas di properti yang diharapkan, dengan nilai falsedefault . |
Penggunaan
Lihat Bagian contoh untuk contoh lengkapnya.