Azure İşlevleri için giriş bağlaması sonrasında Azure OpenAI yardımcısı
Önemli
Azure İşlevleri için Azure OpenAI uzantısı şu anda önizleme aşamasındadır.
Giriş bağlama sonrası Azure OpenAI yardımcısı, yardımcı sohbet botlarına istemler göndermenizi sağlar.
Azure OpenAI uzantısının kurulum ve yapılandırma ayrıntıları hakkında bilgi için bkz. Azure İşlevleri için Azure OpenAI uzantıları. Azure OpenAI yardımcıları hakkında daha fazla bilgi edinmek için bkz. [Azure OpenAI Yardımcıları API'si](.. /ai-services/openai/
Not
Başvurular ve örnekler yalnızca Node.js v4 modeli için sağlanır.
Not
Başvurular ve örnekler yalnızca Python v2 modeli için sağlanır.
Not
Her iki C# işlem modeli de destekleniyor olsa da yalnızca yalıtılmış çalışan modeli örnekleri sağlanır.
Örnek
Bu örnekte, kullanıcı istemlerini yardımcı sohbet bota gönderen HTTP POST işlevinin oluşturulduğu oluşturma işlemi gösterilmektedir. İstem yanıtı HTTP yanıtında döndürülür.
/// <summary>
/// HTTP POST function that sends user prompts to the assistant chat bot.
/// </summary>
[Function(nameof(PostUserQuery))]
public static async Task<IActionResult> PostUserQuery(
[HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "assistants/{assistantId}")] HttpRequestData req,
string assistantId,
[AssistantPostInput("{assistantId}", "{Query.message}", Model = "%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.");
}
/// <summary>
/// HTTP GET function that queries the conversation history of the assistant chat bot.
/// </summary>
[Function(nameof(GetChatState))]
public static async Task<IActionResult> GetChatState(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "assistants/{assistantId}")] HttpRequestData req,
string assistantId,
[AssistantQueryInput("{assistantId}", TimestampUtc = "{Query.timestampUTC}", ChatStorageConnectionSetting = DefaultChatStorageConnectionSetting, CollectionName = DefaultCollectionName)] AssistantState state)
{
Bu örnekte, kullanıcı istemlerini yardımcı sohbet bota gönderen HTTP POST işlevinin oluşturulduğu oluşturma işlemi gösterilmektedir. İstem yanıtı HTTP yanıtında döndürülür.
public HttpResponseMessage getChatState(
@HttpTrigger(
name = "req",
methods = {HttpMethod.GET},
authLevel = AuthorizationLevel.ANONYMOUS,
route = "assistants/{assistantId}")
HttpRequestMessage<Optional<String>> request,
@BindingName("assistantId") String assistantId,
@AssistantQuery(name = "AssistantState", id = "{assistantId}", timestampUtc = "{Query.timestampUTC}", chatStorageConnectionSetting = DEFAULT_CHATSTORAGE, collectionName = DEFAULT_COLLECTION) AssistantState state,
final ExecutionContext context) {
return request.createResponseBuilder(HttpStatus.OK)
.header("Content-Type", "application/json")
.body(state)
.build();
}
/*
* HTTP POST function that sends user prompts to the assistant chat bot.
*/
@FunctionName("PostUserResponse")
public HttpResponseMessage postUserResponse(
Bu örnekte, kullanıcı istemlerini yardımcı sohbet bota gönderen HTTP POST işlevinin oluşturulduğu oluşturma işlemi gösterilmektedir. İstem yanıtı HTTP yanıtında döndürülür.
const CHAT_STORAGE_CONNECTION_SETTING = "AzureWebJobsStorage";
const COLLECTION_NAME = "ChatState";
const assistantPostInput = input.generic({
type: 'assistantPost',
id: '{assistantId}',
model: '%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'
}
};
}
})
const CHAT_STORAGE_CONNECTION_SETTING = "AzureWebJobsStorage";
const COLLECTION_NAME = "ChatState";
const assistantPostInput = input.generic({
type: 'assistantPost',
id: '{assistantId}',
model: '%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'
}
};
}
})
Bu örnekte, kullanıcı istemlerini yardımcı sohbet bota gönderen HTTP POST işlevinin oluşturulduğu oluşturma işlemi gösterilmektedir. İstem yanıtı HTTP yanıtında döndürülür.
Kullanıcı sonrası sorgusu için function.json dosyası aşağıdadır:
{
"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}",
"model": "%CHAT_MODEL_DEPLOYMENT_NAME%",
"chatStorageConnectionSetting": "AzureWebJobsStorage",
"collectionName": "ChatState"
}
]
}
function.json dosya özellikleri hakkında daha fazla bilgi için Yapılandırma bölümüne bakın.
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"
}
})
Bu örnekte, kullanıcı istemlerini yardımcı sohbet bota gönderen HTTP POST işlevinin oluşturulduğu oluşturma işlemi gösterilmektedir. İstem yanıtı HTTP yanıtında döndürülür.
response_json = {"assistantId": assistantId}
return func.HttpResponse(json.dumps(response_json), status_code=202, mimetype="application/json")
@apis.function_name("PostUserQuery")
@apis.route(route="assistants/{assistantId}", methods=["POST"])
@apis.assistant_post_input(arg_name="state", id="{assistantId}", user_message="{Query.message}", 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)
Özellikler
PostUserQuery
Şu parametreleri destekleyen bir yardımcı giriş bağlaması tanımlamak için özniteliğini uygulayın:
Parametre | Açıklama |
---|---|
Kimlik | Güncelleştirilecek yardımcının kimliği. |
Model | Kullanılacak OpenAI sohbet modelinin adı. Azure OpenAI için bu değer model dağıtımının adıdır. |
Ek Açıklamalar
Ek PostUserQuery
açıklama, giriş bağlaması sonrasında şu parametreleri destekleyen bir yardımcı tanımlamanızı sağlar:
Öğe | Açıklama |
---|---|
ad | Çıkış bağlamasının adı. |
id | Güncelleştirilecek yardımcının kimliği. |
model | Kullanılacak OpenAI sohbet modelinin adı. Azure OpenAI için bu değer model dağıtımının adıdır. |
Dekoratörler
Önizleme sırasında çıkış bağlamasını, şu parametreleri destekleyen türünde postUserQuery
bir generic_output_binding
bağlama olarak tanımlayın:
Parametre | Açıklama |
---|---|
arg_name | Bağlama parametresini temsil eden değişkenin adı. |
id | Güncelleştirilecek yardımcının kimliği. |
model | Kullanılacak OpenAI sohbet modelinin adı. Azure OpenAI için bu değer model dağıtımının adıdır. |
Yapılandırma
Bağlama, function.json dosyasında ayarladığınız bu yapılandırma özelliklerini destekler.
Özellik | Açıklama |
---|---|
type | olmalıdır PostUserQuery . |
direction | olmalıdır out . |
ad | Çıkış bağlamasının adı. |
id | Güncelleştirilecek yardımcının kimliği. |
model | Kullanılacak OpenAI sohbet modelinin adı. Azure OpenAI için bu değer model dağıtımının adıdır. |
Yapılandırma
Bağlama, kodunuzda tanımlanan şu özellikleri destekler:
Özellik | Açıklama |
---|---|
id | Güncelleştirilecek yardımcının kimliği. |
model | Kullanılacak OpenAI sohbet modelinin adı. Azure OpenAI için bu değer model dağıtımının adıdır. |
Kullanım
Tam örnekler için Örnek bölümüne bakın.