Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Ö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.
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 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.");
}
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.
/*
* 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();
}
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 { 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'
}
};
}
})
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}",
"chatModel": "%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.
@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"
)
Ö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. |
| UserMessage | Sohbet tamamlama modeli için kullanıcı iletisini alır veya ayarlar, dize olarak kodlanır. |
| AIConnectionName | İsteğe bağlı. Yapay zeka hizmeti bağlantı ayarları için yapılandırma bölümünün adını alır veya ayarlar. Azure OpenAI için: Belirtilirse, bu yapılandırma bölümünde "Uç Nokta" ve "Anahtar" değerlerini arar. Belirtilmezse veya bölüm yoksa ortam değişkenlerine geri döner: AZURE_OPENAI_ENDPOINT ve AZURE_OPENAI_KEY. Kullanıcı tarafından atanan yönetilen kimlik kimlik doğrulaması için bu özellik gereklidir. OpenAI hizmeti (Azure olmayan) için OPENAI_API_KEY ortam değişkenini ayarlayın. |
| ChatModel |
İsteğe bağlı. Varsayılan değeri gpt-3.5-turboolan bir dize olarak kullanılacak modelin kimliğini alır veya ayarlar. |
| Sıcaklık |
İsteğe bağlı. ve 0arasında 2 bir dize olarak kullanılacak örnekleme sıcaklığını alır veya ayarlar. Daha yüksek değerler (0.8) çıkışı daha rastgele hale getirirken (0.2) gibi düşük değerler çıkışı daha odaklanmış ve belirlenimci hale getirir. ya da TemperatureTopPkullanmanız gerekir, ancak ikisini birden kullanmamalısınız. |
| TopP |
İsteğe bağlı. Sıcaklıkla örneklemeye alternatif olarak çekirdek örnekleme adı verilen bir dize alır veya ayarlar. Bu örnekleme yönteminde model, olasılık kütleli belirteçlerin sonuçlarını dikkate alır top_p . Yani 0.1 yalnızca ilk 10% olasılık kütlesinden oluşan belirteçler dikkate alınır. ya da TemperatureTopPkullanmanız gerekir, ancak ikisini birden kullanmamalısınız. |
| MaxTokens |
İsteğe bağlı. Tamamlanmada oluşturulacak en fazla belirteç sayısını varsayılan 100değeri olan bir dize olarak alır veya ayarlar. İsteminizin ve artı max_tokens değerin belirteç sayısı modelin bağlam uzunluğunu aşamaz. Çoğu modelin bağlam uzunluğu 2.048 belirteçtir (4096'yı destekleyen en yeni modeller hariç). |
| IsReasoningModel |
İsteğe bağlı. Sohbet tamamlama modelinin bir akıl yürütme modeli olup olmadığını belirten bir değer alır veya ayarlar. Bu seçenek deneyseldir ve tüm modeller varsayılan değeri olan beklenen özelliklerde eşliğe sahip olana kadar mantık modeliyle ilişkilendirilir false. |
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. |
| userMessage | Sohbet tamamlama modeli için kullanıcı iletisini alır veya ayarlar, dize olarak kodlanır. |
| aiConnectionName | İsteğe bağlı. Yapay zeka hizmeti bağlantı ayarları için yapılandırma bölümünün adını alır veya ayarlar. Azure OpenAI için: Belirtilirse, bu yapılandırma bölümünde "Uç Nokta" ve "Anahtar" değerlerini arar. Belirtilmezse veya bölüm yoksa ortam değişkenlerine geri döner: AZURE_OPENAI_ENDPOINT ve AZURE_OPENAI_KEY. Kullanıcı tarafından atanan yönetilen kimlik kimlik doğrulaması için bu özellik gereklidir. OpenAI hizmeti (Azure olmayan) için OPENAI_API_KEY ortam değişkenini ayarlayın. |
| chatModel | Varsayılan değeri gpt-3.5-turboolan bir dize olarak kullanılacak modelin kimliğini alır veya ayarlar. |
| sıcaklık |
İsteğe bağlı. ve 0arasında 2 bir dize olarak kullanılacak örnekleme sıcaklığını alır veya ayarlar. Daha yüksek değerler (0.8) çıkışı daha rastgele hale getirirken (0.2) gibi düşük değerler çıkışı daha odaklanmış ve belirlenimci hale getirir. ya da TemperatureTopPkullanmanız gerekir, ancak ikisini birden kullanmamalısınız. |
| topP |
İsteğe bağlı. Sıcaklıkla örneklemeye alternatif olarak çekirdek örnekleme adı verilen bir dize alır veya ayarlar. Bu örnekleme yönteminde model, olasılık kütleli belirteçlerin sonuçlarını dikkate alır top_p . Yani 0.1 yalnızca ilk 10% olasılık kütlesinden oluşan belirteçler dikkate alınır. ya da TemperatureTopPkullanmanız gerekir, ancak ikisini birden kullanmamalısınız. |
| maxTokens |
İsteğe bağlı. Tamamlanmada oluşturulacak en fazla belirteç sayısını varsayılan 100değeri olan bir dize olarak alır veya ayarlar. İsteminizin ve artı max_tokens değerin belirteç sayısı modelin bağlam uzunluğunu aşamaz. Çoğu modelin bağlam uzunluğu 2.048 belirteçtir (4096'yı destekleyen en yeni modeller hariç). |
| isReasoningModel |
İsteğe bağlı. Sohbet tamamlama modelinin bir akıl yürütme modeli olup olmadığını belirten bir değer alır veya ayarlar. Bu seçenek deneyseldir ve tüm modeller varsayılan değeri olan beklenen özelliklerde eşliğe sahip olana kadar mantık modeliyle ilişkilendirilir false. |
Dekoratörler
Önizleme sırasında çıkış bağlamasını, şu parametreleri destekleyen türünde generic_output_bindingbir postUserQuery 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. |
| user_message | Sohbet tamamlama modeli için kullanıcı iletisini alır veya ayarlar, dize olarak kodlanır. |
| ai_connection_name | İsteğe bağlı. Yapay zeka hizmeti bağlantı ayarları için yapılandırma bölümünün adını alır veya ayarlar. Azure OpenAI için: Belirtilirse, bu yapılandırma bölümünde "Uç Nokta" ve "Anahtar" değerlerini arar. Belirtilmezse veya bölüm yoksa ortam değişkenlerine geri döner: AZURE_OPENAI_ENDPOINT ve AZURE_OPENAI_KEY. Kullanıcı tarafından atanan yönetilen kimlik kimlik doğrulaması için bu özellik gereklidir. OpenAI hizmeti (Azure olmayan) için OPENAI_API_KEY ortam değişkenini ayarlayın. |
| chat_model | Varsayılan değeri gpt-3.5-turboolan bir dize olarak kullanılacak modelin kimliğini alır veya ayarlar. |
| sıcaklık |
İsteğe bağlı. ve 0arasında 2 bir dize olarak kullanılacak örnekleme sıcaklığını alır veya ayarlar. Daha yüksek değerler (0.8) çıkışı daha rastgele hale getirirken (0.2) gibi düşük değerler çıkışı daha odaklanmış ve belirlenimci hale getirir. ya da TemperatureTopPkullanmanız gerekir, ancak ikisini birden kullanmamalısınız. |
| top_p |
İsteğe bağlı. Sıcaklıkla örneklemeye alternatif olarak çekirdek örnekleme adı verilen bir dize alır veya ayarlar. Bu örnekleme yönteminde model, olasılık kütleli belirteçlerin sonuçlarını dikkate alır top_p . Yani 0.1 yalnızca ilk 10% olasılık kütlesinden oluşan belirteçler dikkate alınır. ya da TemperatureTopPkullanmanız gerekir, ancak ikisini birden kullanmamalısınız. |
| max_tokens |
İsteğe bağlı. Tamamlanmada oluşturulacak en fazla belirteç sayısını varsayılan 100değeri olan bir dize olarak alır veya ayarlar. İsteminizin ve artı max_tokens değerin belirteç sayısı modelin bağlam uzunluğunu aşamaz. Çoğu modelin bağlam uzunluğu 2.048 belirteçtir (4096'yı destekleyen en yeni modeller hariç). |
| is_reasoning _model |
İsteğe bağlı. Sohbet tamamlama modelinin bir akıl yürütme modeli olup olmadığını belirten bir değer alır veya ayarlar. Bu seçenek deneyseldir ve tüm modeller varsayılan değeri olan beklenen özelliklerde eşliğe sahip olana kadar mantık modeliyle ilişkilendirilir false. |
Yapılandırma
Bağlama, function.json dosyasında ayarladığınız bu yapılandırma özelliklerini destekler.
| Özellik | Açıklama |
|---|---|
| türü | olmalıdır PostUserQuery. |
| yön | olmalıdır out. |
| ad | Çıkış bağlamasının adı. |
| ID | Güncelleştirilecek yardımcının kimliği. |
| userMessage | Sohbet tamamlama modeli için kullanıcı iletisini alır veya ayarlar, dize olarak kodlanır. |
| aiConnectionName | İsteğe bağlı. Yapay zeka hizmeti bağlantı ayarları için yapılandırma bölümünün adını alır veya ayarlar. Azure OpenAI için: Belirtilirse, bu yapılandırma bölümünde "Uç Nokta" ve "Anahtar" değerlerini arar. Belirtilmezse veya bölüm yoksa ortam değişkenlerine geri döner: AZURE_OPENAI_ENDPOINT ve AZURE_OPENAI_KEY. Kullanıcı tarafından atanan yönetilen kimlik kimlik doğrulaması için bu özellik gereklidir. OpenAI hizmeti (Azure olmayan) için OPENAI_API_KEY ortam değişkenini ayarlayın. |
| chatModel | Varsayılan değeri gpt-3.5-turboolan bir dize olarak kullanılacak modelin kimliğini alır veya ayarlar. |
| sıcaklık |
İsteğe bağlı. ve 0arasında 2 bir dize olarak kullanılacak örnekleme sıcaklığını alır veya ayarlar. Daha yüksek değerler (0.8) çıkışı daha rastgele hale getirirken (0.2) gibi düşük değerler çıkışı daha odaklanmış ve belirlenimci hale getirir. ya da TemperatureTopPkullanmanız gerekir, ancak ikisini birden kullanmamalısınız. |
| topP |
İsteğe bağlı. Sıcaklıkla örneklemeye alternatif olarak çekirdek örnekleme adı verilen bir dize alır veya ayarlar. Bu örnekleme yönteminde model, olasılık kütleli belirteçlerin sonuçlarını dikkate alır top_p . Yani 0.1 yalnızca ilk 10% olasılık kütlesinden oluşan belirteçler dikkate alınır. ya da TemperatureTopPkullanmanız gerekir, ancak ikisini birden kullanmamalısınız. |
| maxTokens |
İsteğe bağlı. Tamamlanmada oluşturulacak en fazla belirteç sayısını varsayılan 100değeri olan bir dize olarak alır veya ayarlar. İsteminizin ve artı max_tokens değerin belirteç sayısı modelin bağlam uzunluğunu aşamaz. Çoğu modelin bağlam uzunluğu 2.048 belirteçtir (4096'yı destekleyen en yeni modeller hariç). |
| isReasoningModel |
İsteğe bağlı. Sohbet tamamlama modelinin bir akıl yürütme modeli olup olmadığını belirten bir değer alır veya ayarlar. Bu seçenek deneyseldir ve tüm modeller varsayılan değeri olan beklenen özelliklerde eşliğe sahip olana kadar mantık modeliyle ilişkilendirilir false. |
Yapılandırma
Bağlama, kodunuzda tanımlanan şu özellikleri destekler:
| Özellik | Açıklama |
|---|---|
| ID | Güncelleştirilecek yardımcının kimliği. |
| userMessage | Sohbet tamamlama modeli için kullanıcı iletisini alır veya ayarlar, dize olarak kodlanır. |
| aiConnectionName | İsteğe bağlı. Yapay zeka hizmeti bağlantı ayarları için yapılandırma bölümünün adını alır veya ayarlar. Azure OpenAI için: Belirtilirse, bu yapılandırma bölümünde "Uç Nokta" ve "Anahtar" değerlerini arar. Belirtilmezse veya bölüm yoksa ortam değişkenlerine geri döner: AZURE_OPENAI_ENDPOINT ve AZURE_OPENAI_KEY. Kullanıcı tarafından atanan yönetilen kimlik kimlik doğrulaması için bu özellik gereklidir. OpenAI hizmeti (Azure olmayan) için OPENAI_API_KEY ortam değişkenini ayarlayın. |
| chatModel | Varsayılan değeri gpt-3.5-turboolan bir dize olarak kullanılacak modelin kimliğini alır veya ayarlar. |
| sıcaklık |
İsteğe bağlı. ve 0arasında 2 bir dize olarak kullanılacak örnekleme sıcaklığını alır veya ayarlar. Daha yüksek değerler (0.8) çıkışı daha rastgele hale getirirken (0.2) gibi düşük değerler çıkışı daha odaklanmış ve belirlenimci hale getirir. ya da TemperatureTopPkullanmanız gerekir, ancak ikisini birden kullanmamalısınız. |
| topP |
İsteğe bağlı. Sıcaklıkla örneklemeye alternatif olarak çekirdek örnekleme adı verilen bir dize alır veya ayarlar. Bu örnekleme yönteminde model, olasılık kütleli belirteçlerin sonuçlarını dikkate alır top_p . Yani 0.1 yalnızca ilk 10% olasılık kütlesinden oluşan belirteçler dikkate alınır. ya da TemperatureTopPkullanmanız gerekir, ancak ikisini birden kullanmamalısınız. |
| maxTokens |
İsteğe bağlı. Tamamlanmada oluşturulacak en fazla belirteç sayısını varsayılan 100değeri olan bir dize olarak alır veya ayarlar. İsteminizin ve artı max_tokens değerin belirteç sayısı modelin bağlam uzunluğunu aşamaz. Çoğu modelin bağlam uzunluğu 2.048 belirteçtir (4096'yı destekleyen en yeni modeller hariç). |
| isReasoningModel |
İsteğe bağlı. Sohbet tamamlama modelinin bir akıl yürütme modeli olup olmadığını belirten bir değer alır veya ayarlar. Bu seçenek deneyseldir ve tüm modeller varsayılan değeri olan beklenen özelliklerde eşliğe sahip olana kadar mantık modeliyle ilişkilendirilir false. |
Kullanım
Tam örnekler için Örnek bölümüne bakın.