Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ważne
Rozszerzenie Azure OpenAI dla usługi Azure Functions jest obecnie dostępne w wersji zapoznawczej.
Asystent usługi Azure OpenAI po powiązaniu danych wejściowych umożliwia wysyłanie monitów do asystentów czatbotów.
Aby uzyskać informacje na temat konfigurowania i konfigurowania rozszerzenia Azure OpenAI, zobacz Azure OpenAI extensions for Azure Functions (Rozszerzenia azure OpenAI dla usługi Azure Functions). Aby dowiedzieć się więcej na temat asystentów usługi Azure OpenAI, zobacz Interfejs API asystentów usługi Azure OpenAI.
Uwaga
Odwołania i przykłady są udostępniane tylko dla modelu Node.js w wersji 4.
Uwaga
Odwołania i przykłady są udostępniane tylko dla modelu języka Python w wersji 2.
Uwaga
Chociaż oba modele procesów języka C# są obsługiwane, udostępniane są tylko izolowane przykłady modeli procesów roboczych.
Przykład
W tym przykładzie pokazano proces tworzenia, w którym funkcja HTTP POST, która wysyła użytkownikowi monity do asystenta czatbota. Odpowiedź na monit jest zwracana w odpowiedzi 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.");
}
W tym przykładzie pokazano proces tworzenia, w którym funkcja HTTP POST, która wysyła użytkownikowi monity do asystenta czatbota. Odpowiedź na monit jest zwracana w odpowiedzi 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();
}
W tym przykładzie pokazano proces tworzenia, w którym funkcja HTTP POST, która wysyła użytkownikowi monity do asystenta czatbota. Odpowiedź na monit jest zwracana w odpowiedzi 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'
}
};
}
})
W tym przykładzie pokazano proces tworzenia, w którym funkcja HTTP POST, która wysyła użytkownikowi monity do asystenta czatbota. Odpowiedź na monit jest zwracana w odpowiedzi HTTP.
Oto plik function.json do publikowania zapytania użytkownika:
{
"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"
}
]
}
Aby uzyskać więcej informacji na temat function.json właściwości pliku, zobacz sekcję Konfiguracja.
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"
}
})
W tym przykładzie pokazano proces tworzenia, w którym funkcja HTTP POST, która wysyła użytkownikowi monity do asystenta czatbota. Odpowiedź na monit jest zwracana w odpowiedzi 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"
)
Atrybuty
Zastosuj atrybut, aby zdefiniować asystenta po powiązaniu PostUserQuery wejściowym, który obsługuje następujące parametry:
| Parametr | Opis |
|---|---|
| Id | Identyfikator asystenta do zaktualizowania. |
| UserMessage | Pobiera lub ustawia komunikat użytkownika dla modelu uzupełniania czatu zakodowany jako ciąg. |
| AIConnectionName | Opcjonalnie. Pobiera lub ustawia nazwę sekcji konfiguracji dla ustawień łączności usługi sztucznej inteligencji. W przypadku usługi Azure OpenAI: w przypadku określenia wyszukaj wartości "Endpoint" i "Key" w tej sekcji konfiguracji. Jeśli nie zostanie określona lub sekcja nie istnieje, wróć do zmiennych środowiskowych: AZURE_OPENAI_ENDPOINT i AZURE_OPENAI_KEY. W przypadku uwierzytelniania tożsamości zarządzanej przypisanej przez użytkownika ta właściwość jest wymagana. W przypadku usługi OpenAI (spoza platformy Azure) ustaw zmienną środowiskową OPENAI_API_KEY. |
| ChatModel |
Opcjonalnie. Pobiera lub ustawia identyfikator modelu do użycia jako ciąg z wartością gpt-3.5-turbodomyślną . |
| Temperatura |
Opcjonalnie. Pobiera lub ustawia temperaturę próbkowania do użycia jako ciąg między 0 i 2. Wyższe wartości (0.8) sprawiają, że dane wyjściowe będą bardziej losowe, a niższe wartości, takie jak (0.2), sprawiają, że dane wyjściowe są bardziej skoncentrowane i deterministyczne. Należy użyć metody Temperature lub TopP, ale nie obu tych elementów. |
| TopP |
Opcjonalnie. Pobiera lub ustawia alternatywę dla próbkowania z temperaturą, nazywaną próbkowaniem jądra, jako ciągiem. W tej metodzie próbkowania model uwzględnia wyniki tokenów z masą top_p prawdopodobieństwa. Oznacza to 0.1 , że uwzględniane są tylko tokeny składające się z 10% masy prawdopodobieństwa. Należy użyć metody Temperature lub TopP, ale nie obu tych elementów. |
| MaxTokens |
Opcjonalnie. Pobiera lub ustawia maksymalną liczbę tokenów do wygenerowania w uzupełnianiu jako ciąg z wartością domyślną 100. Liczba tokenów zapytania plus max_tokens nie może przekraczać długości kontekstu modelu. Większość modeli ma długość kontekstu 2048 tokenów (z wyjątkiem najnowszych modeli, które obsługują 4096). |
| IsReasoningModel |
Opcjonalnie. Pobiera lub ustawia wartość wskazującą, czy model uzupełniania czatu jest modelem rozumowania. Ta opcja jest eksperymentalna i skojarzona z modelem rozumowania, dopóki wszystkie modele nie mają parzystości w oczekiwanych właściwościach z wartością falsedomyślną . |
Adnotacje
Adnotacja PostUserQuery umożliwia zdefiniowanie asystenta po powiązaniu wejściowym, które obsługuje następujące parametry:
| Składnik | Opis |
|---|---|
| nazwa | Nazwa powiązania wyjściowego. |
| id | Identyfikator asystenta do zaktualizowania. |
| userMessage | Pobiera lub ustawia komunikat użytkownika dla modelu uzupełniania czatu zakodowany jako ciąg. |
| aiConnectionName | Opcjonalnie. Pobiera lub ustawia nazwę sekcji konfiguracji dla ustawień łączności usługi sztucznej inteligencji. W przypadku usługi Azure OpenAI: w przypadku określenia wyszukaj wartości "Endpoint" i "Key" w tej sekcji konfiguracji. Jeśli nie zostanie określona lub sekcja nie istnieje, wróć do zmiennych środowiskowych: AZURE_OPENAI_ENDPOINT i AZURE_OPENAI_KEY. W przypadku uwierzytelniania tożsamości zarządzanej przypisanej przez użytkownika ta właściwość jest wymagana. W przypadku usługi OpenAI (spoza platformy Azure) ustaw zmienną środowiskową OPENAI_API_KEY. |
| chatModel | Pobiera lub ustawia identyfikator modelu do użycia jako ciąg z wartością gpt-3.5-turbodomyślną . |
| temperatura |
Opcjonalnie. Pobiera lub ustawia temperaturę próbkowania do użycia jako ciąg między 0 i 2. Wyższe wartości (0.8) sprawiają, że dane wyjściowe będą bardziej losowe, a niższe wartości, takie jak (0.2), sprawiają, że dane wyjściowe są bardziej skoncentrowane i deterministyczne. Należy użyć metody Temperature lub TopP, ale nie obu tych elementów. |
| topP |
Opcjonalnie. Pobiera lub ustawia alternatywę dla próbkowania z temperaturą, nazywaną próbkowaniem jądra, jako ciągiem. W tej metodzie próbkowania model uwzględnia wyniki tokenów z masą top_p prawdopodobieństwa. Oznacza to 0.1 , że uwzględniane są tylko tokeny składające się z 10% masy prawdopodobieństwa. Należy użyć metody Temperature lub TopP, ale nie obu tych elementów. |
| maxTokens |
Opcjonalnie. Pobiera lub ustawia maksymalną liczbę tokenów do wygenerowania w uzupełnianiu jako ciąg z wartością domyślną 100. Liczba tokenów zapytania plus max_tokens nie może przekraczać długości kontekstu modelu. Większość modeli ma długość kontekstu 2048 tokenów (z wyjątkiem najnowszych modeli, które obsługują 4096). |
| isReasoningModel |
Opcjonalnie. Pobiera lub ustawia wartość wskazującą, czy model uzupełniania czatu jest modelem rozumowania. Ta opcja jest eksperymentalna i skojarzona z modelem rozumowania, dopóki wszystkie modele nie mają parzystości w oczekiwanych właściwościach z wartością falsedomyślną . |
Dekoratory
W wersji zapoznawczej zdefiniuj powiązanie wyjściowe jako generic_output_binding powiązanie typu postUserQuery, które obsługuje następujące parametry:
| Parametr | Opis |
|---|---|
| arg_name | Nazwa zmiennej reprezentującej parametr powiązania. |
| id | Identyfikator asystenta do zaktualizowania. |
| user_message | Pobiera lub ustawia komunikat użytkownika dla modelu uzupełniania czatu zakodowany jako ciąg. |
| ai_connection_name | Opcjonalnie. Pobiera lub ustawia nazwę sekcji konfiguracji dla ustawień łączności usługi sztucznej inteligencji. W przypadku usługi Azure OpenAI: w przypadku określenia wyszukaj wartości "Endpoint" i "Key" w tej sekcji konfiguracji. Jeśli nie zostanie określona lub sekcja nie istnieje, wróć do zmiennych środowiskowych: AZURE_OPENAI_ENDPOINT i AZURE_OPENAI_KEY. W przypadku uwierzytelniania tożsamości zarządzanej przypisanej przez użytkownika ta właściwość jest wymagana. W przypadku usługi OpenAI (spoza platformy Azure) ustaw zmienną środowiskową OPENAI_API_KEY. |
| chat_model | Pobiera lub ustawia identyfikator modelu do użycia jako ciąg z wartością gpt-3.5-turbodomyślną . |
| temperatura |
Opcjonalnie. Pobiera lub ustawia temperaturę próbkowania do użycia jako ciąg między 0 i 2. Wyższe wartości (0.8) sprawiają, że dane wyjściowe będą bardziej losowe, a niższe wartości, takie jak (0.2), sprawiają, że dane wyjściowe są bardziej skoncentrowane i deterministyczne. Należy użyć metody Temperature lub TopP, ale nie obu tych elementów. |
| top_p |
Opcjonalnie. Pobiera lub ustawia alternatywę dla próbkowania z temperaturą, nazywaną próbkowaniem jądra, jako ciągiem. W tej metodzie próbkowania model uwzględnia wyniki tokenów z masą top_p prawdopodobieństwa. Oznacza to 0.1 , że uwzględniane są tylko tokeny składające się z 10% masy prawdopodobieństwa. Należy użyć metody Temperature lub TopP, ale nie obu tych elementów. |
| max_tokens |
Opcjonalnie. Pobiera lub ustawia maksymalną liczbę tokenów do wygenerowania w uzupełnianiu jako ciąg z wartością domyślną 100. Liczba tokenów zapytania plus max_tokens nie może przekraczać długości kontekstu modelu. Większość modeli ma długość kontekstu 2048 tokenów (z wyjątkiem najnowszych modeli, które obsługują 4096). |
| is_reasoning _model |
Opcjonalnie. Pobiera lub ustawia wartość wskazującą, czy model uzupełniania czatu jest modelem rozumowania. Ta opcja jest eksperymentalna i skojarzona z modelem rozumowania, dopóki wszystkie modele nie mają parzystości w oczekiwanych właściwościach z wartością falsedomyślną . |
Konfigurowanie
Powiązanie obsługuje te właściwości konfiguracji ustawione w pliku function.json.
| Właściwości | Opis |
|---|---|
| typ | Musi mieć wartość PostUserQuery. |
| kierunek | Musi mieć wartość out. |
| nazwa | Nazwa powiązania wyjściowego. |
| id | Identyfikator asystenta do zaktualizowania. |
| userMessage | Pobiera lub ustawia komunikat użytkownika dla modelu uzupełniania czatu zakodowany jako ciąg. |
| aiConnectionName | Opcjonalnie. Pobiera lub ustawia nazwę sekcji konfiguracji dla ustawień łączności usługi sztucznej inteligencji. W przypadku usługi Azure OpenAI: w przypadku określenia wyszukaj wartości "Endpoint" i "Key" w tej sekcji konfiguracji. Jeśli nie zostanie określona lub sekcja nie istnieje, wróć do zmiennych środowiskowych: AZURE_OPENAI_ENDPOINT i AZURE_OPENAI_KEY. W przypadku uwierzytelniania tożsamości zarządzanej przypisanej przez użytkownika ta właściwość jest wymagana. W przypadku usługi OpenAI (spoza platformy Azure) ustaw zmienną środowiskową OPENAI_API_KEY. |
| chatModel | Pobiera lub ustawia identyfikator modelu do użycia jako ciąg z wartością gpt-3.5-turbodomyślną . |
| temperatura |
Opcjonalnie. Pobiera lub ustawia temperaturę próbkowania do użycia jako ciąg między 0 i 2. Wyższe wartości (0.8) sprawiają, że dane wyjściowe będą bardziej losowe, a niższe wartości, takie jak (0.2), sprawiają, że dane wyjściowe są bardziej skoncentrowane i deterministyczne. Należy użyć metody Temperature lub TopP, ale nie obu tych elementów. |
| topP |
Opcjonalnie. Pobiera lub ustawia alternatywę dla próbkowania z temperaturą, nazywaną próbkowaniem jądra, jako ciągiem. W tej metodzie próbkowania model uwzględnia wyniki tokenów z masą top_p prawdopodobieństwa. Oznacza to 0.1 , że uwzględniane są tylko tokeny składające się z 10% masy prawdopodobieństwa. Należy użyć metody Temperature lub TopP, ale nie obu tych elementów. |
| maxTokens |
Opcjonalnie. Pobiera lub ustawia maksymalną liczbę tokenów do wygenerowania w uzupełnianiu jako ciąg z wartością domyślną 100. Liczba tokenów zapytania plus max_tokens nie może przekraczać długości kontekstu modelu. Większość modeli ma długość kontekstu 2048 tokenów (z wyjątkiem najnowszych modeli, które obsługują 4096). |
| isReasoningModel |
Opcjonalnie. Pobiera lub ustawia wartość wskazującą, czy model uzupełniania czatu jest modelem rozumowania. Ta opcja jest eksperymentalna i skojarzona z modelem rozumowania, dopóki wszystkie modele nie mają parzystości w oczekiwanych właściwościach z wartością falsedomyślną . |
Konfigurowanie
Powiązanie obsługuje te właściwości zdefiniowane w kodzie:
| Właściwości | Opis |
|---|---|
| id | Identyfikator asystenta do zaktualizowania. |
| userMessage | Pobiera lub ustawia komunikat użytkownika dla modelu uzupełniania czatu zakodowany jako ciąg. |
| aiConnectionName | Opcjonalnie. Pobiera lub ustawia nazwę sekcji konfiguracji dla ustawień łączności usługi sztucznej inteligencji. W przypadku usługi Azure OpenAI: w przypadku określenia wyszukaj wartości "Endpoint" i "Key" w tej sekcji konfiguracji. Jeśli nie zostanie określona lub sekcja nie istnieje, wróć do zmiennych środowiskowych: AZURE_OPENAI_ENDPOINT i AZURE_OPENAI_KEY. W przypadku uwierzytelniania tożsamości zarządzanej przypisanej przez użytkownika ta właściwość jest wymagana. W przypadku usługi OpenAI (spoza platformy Azure) ustaw zmienną środowiskową OPENAI_API_KEY. |
| chatModel | Pobiera lub ustawia identyfikator modelu do użycia jako ciąg z wartością gpt-3.5-turbodomyślną . |
| temperatura |
Opcjonalnie. Pobiera lub ustawia temperaturę próbkowania do użycia jako ciąg między 0 i 2. Wyższe wartości (0.8) sprawiają, że dane wyjściowe będą bardziej losowe, a niższe wartości, takie jak (0.2), sprawiają, że dane wyjściowe są bardziej skoncentrowane i deterministyczne. Należy użyć metody Temperature lub TopP, ale nie obu tych elementów. |
| topP |
Opcjonalnie. Pobiera lub ustawia alternatywę dla próbkowania z temperaturą, nazywaną próbkowaniem jądra, jako ciągiem. W tej metodzie próbkowania model uwzględnia wyniki tokenów z masą top_p prawdopodobieństwa. Oznacza to 0.1 , że uwzględniane są tylko tokeny składające się z 10% masy prawdopodobieństwa. Należy użyć metody Temperature lub TopP, ale nie obu tych elementów. |
| maxTokens |
Opcjonalnie. Pobiera lub ustawia maksymalną liczbę tokenów do wygenerowania w uzupełnianiu jako ciąg z wartością domyślną 100. Liczba tokenów zapytania plus max_tokens nie może przekraczać długości kontekstu modelu. Większość modeli ma długość kontekstu 2048 tokenów (z wyjątkiem najnowszych modeli, które obsługują 4096). |
| isReasoningModel |
Opcjonalnie. Pobiera lub ustawia wartość wskazującą, czy model uzupełniania czatu jest modelem rozumowania. Ta opcja jest eksperymentalna i skojarzona z modelem rozumowania, dopóki wszystkie modele nie mają parzystości w oczekiwanych właściwościach z wartością falsedomyślną . |
Użycie
Zobacz sekcję Przykład, aby zapoznać się z kompletnymi przykładami.