Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Fontos
Az Azure Functions Azure OpenAI bővítménye jelenleg előzetes verzióban érhető el.
Az Azure OpenAI-asszisztens bemeneti kötése lehetővé teszi, hogy kéréseket küldjön az asszisztens csevegőrobotoknak.
Az Azure OpenAI-bővítmény beállítási és konfigurációs részleteiről további információt az Azure Functions Azure OpenAI-bővítményeivel kapcsolatban talál. További információ az Azure OpenAI-asszisztensekről: Azure OpenAI Assistants API.
Feljegyzés
A referenciák és példák csak a Node.js v4-modellhez vannak megadva.
Feljegyzés
A hivatkozások és példák csak a Python v2-modellhez vannak megadva.
Feljegyzés
Bár mindkét C#-folyamatmodell támogatott, csak izolált feldolgozómodell-példák állnak rendelkezésre.
Példa
Ez a példa a létrehozási folyamatot mutatja be, ahol a felhasználót küldő HTTP POST függvény kéri a csevegőrobotot. A rendszer a HTTP-válaszban adja vissza a kérdésre adott választ.
/// <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.");
}
Ez a példa a létrehozási folyamatot mutatja be, ahol a felhasználót küldő HTTP POST függvény kéri a csevegőrobotot. A rendszer a HTTP-válaszban adja vissza a kérdésre adott választ.
/*
* 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();
}
Ez a példa a létrehozási folyamatot mutatja be, ahol a felhasználót küldő HTTP POST függvény kéri a csevegőrobotot. A rendszer a HTTP-válaszban adja vissza a kérdésre adott választ.
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'
}
};
}
})
Ez a példa a létrehozási folyamatot mutatja be, ahol a felhasználót küldő HTTP POST függvény kéri a csevegőrobotot. A rendszer a HTTP-válaszban adja vissza a kérdésre adott választ.
A következő function.json fájl a felhasználói lekérdezés utáni lekérdezéshez:
{
"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"
}
]
}
A function.json fájltulajdonságokról a Konfiguráció szakaszban talál további információt.
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"
}
})
Ez a példa a létrehozási folyamatot mutatja be, ahol a felhasználót küldő HTTP POST függvény kéri a csevegőrobotot. A rendszer a HTTP-válaszban adja vissza a kérdésre adott választ.
@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"
)
Attribútumok
Alkalmazza az PostUserQuery attribútumot egy bemeneti kötés utáni segéd definiálására, amely támogatja az alábbi paramétereket:
| Paraméter | Leírás |
|---|---|
| Azonosító | A frissíteni kívánt asszisztens azonosítója. |
| UserMessage | Lekéri vagy beállítja a csevegővégzítési modell felhasználói üzenetét sztringként kódolva. |
| AIConnectionName | Választható. Lekéri vagy beállítja az AI szolgáltatás csatlakozási beállításaihoz tartozó konfigurációs szakasz nevét. Azure OpenAI esetén: Ha meg van adva, ebben a konfigurációs szakaszban keresse meg a "Végpont" és a "Kulcs" értéket. Ha nincs megadva, vagy a szakasz nem létezik, visszavált a környezeti változókra: AZURE_OPENAI_ENDPOINT és AZURE_OPENAI_KEY. A felhasználó által hozzárendelt felügyelt identitás hitelesítéséhez ez a tulajdonság szükséges. OpenAI szolgáltatás (nem Azure) esetén állítsa be a OPENAI_API_KEY környezeti változót. |
| ChatModel |
Választható. Lekéri vagy beállítja a modell azonosítóját sztringként, alapértelmezett értékként gpt-3.5-turbo. |
| Hőmérséklet |
Választható. Lekéri vagy beállítja a használandó mintavételi hőmérsékletet sztringként az és 0a között2. A magasabb értékek (0.8) véletlenszerűbbé teszik a kimenetet, míg az alacsonyabb értékek(0.2) a kimenetet koncentráltabbá és determinisztikusabbá teszik. Használhatja vagy TemperatureTopP, de mindkettőt nem. |
| TopP |
Választható. Sztringként lekéri vagy beállítja a hőmérséklettel történő mintavételezés alternatívát, az úgynevezett nukleusz-mintavételezést. Ebben a mintavételezési módszerben a modell a valószínűségi tömeggel rendelkező top_p tokenek eredményeit veszi figyelembe. Ez azt 0.1 jelenti, hogy csak az első 10% valószínűségi tömeget tartalmazó jogkivonatokat veszi figyelembe. Használhatja vagy TemperatureTopP, de mindkettőt nem. |
| MaxTokens |
Választható. Lekéri vagy beállítja a befejezéskor létrehozandó jogkivonatok maximális számát egy alapértelmezett 100sztringként. A parancssor jogkivonatszáma plusz max_tokens nem haladhatja meg a modell környezethosszát. A legtöbb modell környezethossza 2048 token (kivéve a legújabb modelleket, amelyek támogatják a 4096-ot). |
| IsReasoningModel |
Választható. Lekéri vagy beállít egy értéket, amely jelzi, hogy a csevegés befejezési modellje érvelési modell-e. Ez a beállítás kísérleti jellegű, és mindaddig az érvelési modellhez van társítva, amíg az összes modell paritásos nem lesz a várt tulajdonságokban, és az alapértelmezett érték a false. |
Jegyzetek
A PostUserQuery széljegyzet lehetővé teszi a bemeneti kötés utáni segéd definiálását, amely az alábbi paramétereket támogatja:
| Elem | Leírás |
|---|---|
| név | A kimeneti kötés neve. |
| azonosító | A frissíteni kívánt asszisztens azonosítója. |
| userMessage | Lekéri vagy beállítja a csevegővégzítési modell felhasználói üzenetét sztringként kódolva. |
| aiConnectionName | Választható. Lekéri vagy beállítja az AI szolgáltatás csatlakozási beállításaihoz tartozó konfigurációs szakasz nevét. Azure OpenAI esetén: Ha meg van adva, ebben a konfigurációs szakaszban keresse meg a "Végpont" és a "Kulcs" értéket. Ha nincs megadva, vagy a szakasz nem létezik, visszavált a környezeti változókra: AZURE_OPENAI_ENDPOINT és AZURE_OPENAI_KEY. A felhasználó által hozzárendelt felügyelt identitás hitelesítéséhez ez a tulajdonság szükséges. OpenAI szolgáltatás (nem Azure) esetén állítsa be a OPENAI_API_KEY környezeti változót. |
| chatModel | Lekéri vagy beállítja a modell azonosítóját sztringként, alapértelmezett értékként gpt-3.5-turbo. |
| hőmérséklet |
Választható. Lekéri vagy beállítja a használandó mintavételi hőmérsékletet sztringként az és 0a között2. A magasabb értékek (0.8) véletlenszerűbbé teszik a kimenetet, míg az alacsonyabb értékek(0.2) a kimenetet koncentráltabbá és determinisztikusabbá teszik. Használhatja vagy TemperatureTopP, de mindkettőt nem. |
| topP |
Választható. Sztringként lekéri vagy beállítja a hőmérséklettel történő mintavételezés alternatívát, az úgynevezett nukleusz-mintavételezést. Ebben a mintavételezési módszerben a modell a valószínűségi tömeggel rendelkező top_p tokenek eredményeit veszi figyelembe. Ez azt 0.1 jelenti, hogy csak az első 10% valószínűségi tömeget tartalmazó jogkivonatokat veszi figyelembe. Használhatja vagy TemperatureTopP, de mindkettőt nem. |
| maxTokens |
Választható. Lekéri vagy beállítja a befejezéskor létrehozandó jogkivonatok maximális számát egy alapértelmezett 100sztringként. A parancssor jogkivonatszáma plusz max_tokens nem haladhatja meg a modell környezethosszát. A legtöbb modell környezethossza 2048 token (kivéve a legújabb modelleket, amelyek támogatják a 4096-ot). |
| isReasoningModel |
Választható. Lekéri vagy beállít egy értéket, amely jelzi, hogy a csevegés befejezési modellje érvelési modell-e. Ez a beállítás kísérleti jellegű, és mindaddig az érvelési modellhez van társítva, amíg az összes modell paritásos nem lesz a várt tulajdonságokban, és az alapértelmezett érték a false. |
Dekorátorok
Az előzetes verzióban adja meg a kimeneti kötést típuskötésként generic_output_bindingpostUserQuery, amely támogatja az alábbi paramétereket:
| Paraméter | Leírás |
|---|---|
| arg_name | A kötési paramétert képviselő változó neve. |
| azonosító | A frissíteni kívánt asszisztens azonosítója. |
| user_message | Lekéri vagy beállítja a csevegővégzítési modell felhasználói üzenetét sztringként kódolva. |
| ai_connection_name | Választható. Lekéri vagy beállítja az AI szolgáltatás csatlakozási beállításaihoz tartozó konfigurációs szakasz nevét. Azure OpenAI esetén: Ha meg van adva, ebben a konfigurációs szakaszban keresse meg a "Végpont" és a "Kulcs" értéket. Ha nincs megadva, vagy a szakasz nem létezik, visszavált a környezeti változókra: AZURE_OPENAI_ENDPOINT és AZURE_OPENAI_KEY. A felhasználó által hozzárendelt felügyelt identitás hitelesítéséhez ez a tulajdonság szükséges. OpenAI szolgáltatás (nem Azure) esetén állítsa be a OPENAI_API_KEY környezeti változót. |
| chat_model | Lekéri vagy beállítja a modell azonosítóját sztringként, alapértelmezett értékként gpt-3.5-turbo. |
| hőmérséklet |
Választható. Lekéri vagy beállítja a használandó mintavételi hőmérsékletet sztringként az és 0a között2. A magasabb értékek (0.8) véletlenszerűbbé teszik a kimenetet, míg az alacsonyabb értékek(0.2) a kimenetet koncentráltabbá és determinisztikusabbá teszik. Használhatja vagy TemperatureTopP, de mindkettőt nem. |
| top_p |
Választható. Sztringként lekéri vagy beállítja a hőmérséklettel történő mintavételezés alternatívát, az úgynevezett nukleusz-mintavételezést. Ebben a mintavételezési módszerben a modell a valószínűségi tömeggel rendelkező top_p tokenek eredményeit veszi figyelembe. Ez azt 0.1 jelenti, hogy csak az első 10% valószínűségi tömeget tartalmazó jogkivonatokat veszi figyelembe. Használhatja vagy TemperatureTopP, de mindkettőt nem. |
| max_tokens |
Választható. Lekéri vagy beállítja a befejezéskor létrehozandó jogkivonatok maximális számát egy alapértelmezett 100sztringként. A parancssor jogkivonatszáma plusz max_tokens nem haladhatja meg a modell környezethosszát. A legtöbb modell környezethossza 2048 token (kivéve a legújabb modelleket, amelyek támogatják a 4096-ot). |
| is_reasoning _model |
Választható. Lekéri vagy beállít egy értéket, amely jelzi, hogy a csevegés befejezési modellje érvelési modell-e. Ez a beállítás kísérleti jellegű, és mindaddig az érvelési modellhez van társítva, amíg az összes modell paritásos nem lesz a várt tulajdonságokban, és az alapértelmezett érték a false. |
Konfiguráció
A kötés támogatja a function.json fájlban beállított konfigurációs tulajdonságokat.
| Tulajdonság | Leírás |
|---|---|
| típus | Kell lennie PostUserQuery. |
| irány | Kell lennie out. |
| név | A kimeneti kötés neve. |
| azonosító | A frissíteni kívánt asszisztens azonosítója. |
| userMessage | Lekéri vagy beállítja a csevegővégzítési modell felhasználói üzenetét sztringként kódolva. |
| aiConnectionName | Választható. Lekéri vagy beállítja az AI szolgáltatás csatlakozási beállításaihoz tartozó konfigurációs szakasz nevét. Azure OpenAI esetén: Ha meg van adva, ebben a konfigurációs szakaszban keresse meg a "Végpont" és a "Kulcs" értéket. Ha nincs megadva, vagy a szakasz nem létezik, visszavált a környezeti változókra: AZURE_OPENAI_ENDPOINT és AZURE_OPENAI_KEY. A felhasználó által hozzárendelt felügyelt identitás hitelesítéséhez ez a tulajdonság szükséges. OpenAI szolgáltatás (nem Azure) esetén állítsa be a OPENAI_API_KEY környezeti változót. |
| chatModel | Lekéri vagy beállítja a modell azonosítóját sztringként, alapértelmezett értékként gpt-3.5-turbo. |
| hőmérséklet |
Választható. Lekéri vagy beállítja a használandó mintavételi hőmérsékletet sztringként az és 0a között2. A magasabb értékek (0.8) véletlenszerűbbé teszik a kimenetet, míg az alacsonyabb értékek(0.2) a kimenetet koncentráltabbá és determinisztikusabbá teszik. Használhatja vagy TemperatureTopP, de mindkettőt nem. |
| topP |
Választható. Sztringként lekéri vagy beállítja a hőmérséklettel történő mintavételezés alternatívát, az úgynevezett nukleusz-mintavételezést. Ebben a mintavételezési módszerben a modell a valószínűségi tömeggel rendelkező top_p tokenek eredményeit veszi figyelembe. Ez azt 0.1 jelenti, hogy csak az első 10% valószínűségi tömeget tartalmazó jogkivonatokat veszi figyelembe. Használhatja vagy TemperatureTopP, de mindkettőt nem. |
| maxTokens |
Választható. Lekéri vagy beállítja a befejezéskor létrehozandó jogkivonatok maximális számát egy alapértelmezett 100sztringként. A parancssor jogkivonatszáma plusz max_tokens nem haladhatja meg a modell környezethosszát. A legtöbb modell környezethossza 2048 token (kivéve a legújabb modelleket, amelyek támogatják a 4096-ot). |
| isReasoningModel |
Választható. Lekéri vagy beállít egy értéket, amely jelzi, hogy a csevegés befejezési modellje érvelési modell-e. Ez a beállítás kísérleti jellegű, és mindaddig az érvelési modellhez van társítva, amíg az összes modell paritásos nem lesz a várt tulajdonságokban, és az alapértelmezett érték a false. |
Konfiguráció
A kötés támogatja ezeket a tulajdonságokat, amelyek a kódban vannak definiálva:
| Tulajdonság | Leírás |
|---|---|
| azonosító | A frissíteni kívánt asszisztens azonosítója. |
| userMessage | Lekéri vagy beállítja a csevegővégzítési modell felhasználói üzenetét sztringként kódolva. |
| aiConnectionName | Választható. Lekéri vagy beállítja az AI szolgáltatás csatlakozási beállításaihoz tartozó konfigurációs szakasz nevét. Azure OpenAI esetén: Ha meg van adva, ebben a konfigurációs szakaszban keresse meg a "Végpont" és a "Kulcs" értéket. Ha nincs megadva, vagy a szakasz nem létezik, visszavált a környezeti változókra: AZURE_OPENAI_ENDPOINT és AZURE_OPENAI_KEY. A felhasználó által hozzárendelt felügyelt identitás hitelesítéséhez ez a tulajdonság szükséges. OpenAI szolgáltatás (nem Azure) esetén állítsa be a OPENAI_API_KEY környezeti változót. |
| chatModel | Lekéri vagy beállítja a modell azonosítóját sztringként, alapértelmezett értékként gpt-3.5-turbo. |
| hőmérséklet |
Választható. Lekéri vagy beállítja a használandó mintavételi hőmérsékletet sztringként az és 0a között2. A magasabb értékek (0.8) véletlenszerűbbé teszik a kimenetet, míg az alacsonyabb értékek(0.2) a kimenetet koncentráltabbá és determinisztikusabbá teszik. Használhatja vagy TemperatureTopP, de mindkettőt nem. |
| topP |
Választható. Sztringként lekéri vagy beállítja a hőmérséklettel történő mintavételezés alternatívát, az úgynevezett nukleusz-mintavételezést. Ebben a mintavételezési módszerben a modell a valószínűségi tömeggel rendelkező top_p tokenek eredményeit veszi figyelembe. Ez azt 0.1 jelenti, hogy csak az első 10% valószínűségi tömeget tartalmazó jogkivonatokat veszi figyelembe. Használhatja vagy TemperatureTopP, de mindkettőt nem. |
| maxTokens |
Választható. Lekéri vagy beállítja a befejezéskor létrehozandó jogkivonatok maximális számát egy alapértelmezett 100sztringként. A parancssor jogkivonatszáma plusz max_tokens nem haladhatja meg a modell környezethosszát. A legtöbb modell környezethossza 2048 token (kivéve a legújabb modelleket, amelyek támogatják a 4096-ot). |
| isReasoningModel |
Választható. Lekéri vagy beállít egy értéket, amely jelzi, hogy a csevegés befejezési modellje érvelési modell-e. Ez a beállítás kísérleti jellegű, és mindaddig az érvelési modellhez van társítva, amíg az összes modell paritásos nem lesz a várt tulajdonságokban, és az alapértelmezett érték a false. |
Használat
A teljes példákért tekintse meg a Példa szakaszt .