Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Viktigt!
Azure OpenAI-tillägget för Azure Functions är för närvarande i förhandsversion.
Med bindningen för semantisk sökning i Azure OpenAI kan du använda semantisk sökning i dina inbäddningar.
Information om konfiguration och konfigurationsinformation för Azure OpenAI-tillägget finns i Azure OpenAI-tillägg för Azure Functions. Mer information om semantisk rankning i Azure AI Search finns i Semantisk rankning i Azure AI Search.
Anmärkning
Referenser och exempel tillhandahålls endast för modellen Node.js v4.
Anmärkning
Referenser och exempel tillhandahålls endast för Python v2-modellen.
Anmärkning
Båda C#-processmodellerna stöds, men endast exempel på isolerade arbetsmodeller tillhandahålls.
Exempel
Det här exemplet visar hur du utför en semantisk sökning på en fil.
[Function("PromptFile")]
public static IActionResult PromptFile(
[HttpTrigger(AuthorizationLevel.Function, "post")] SemanticSearchRequest unused,
[SemanticSearchInput("AISearchEndpoint", "openai-index", Query = "{prompt}", ChatModel = "%CHAT_MODEL_DEPLOYMENT_NAME%", EmbeddingsModel = "%EMBEDDING_MODEL_DEPLOYMENT_NAME%")] SemanticSearchContext result)
{
return new ContentResult { Content = result.Response, ContentType = "text/plain" };
}
Det här exemplet visar hur du utför en semantisk sökning på en fil.
@FunctionName("PromptFile")
public HttpResponseMessage promptFile(
@HttpTrigger(
name = "req",
methods = {HttpMethod.POST},
authLevel = AuthorizationLevel.ANONYMOUS)
HttpRequestMessage<SemanticSearchRequest> request,
@SemanticSearch(name = "search", searchConnectionName = "AISearchEndpoint", collection = "openai-index", query = "{prompt}", chatModel = "%CHAT_MODEL_DEPLOYMENT_NAME%", embeddingsModel = "%EMBEDDING_MODEL_DEPLOYMENT_NAME%", isReasoningModel = false ) String semanticSearchContext,
final ExecutionContext context) {
String response = new JSONObject(semanticSearchContext).getString("Response");
return request.createResponseBuilder(HttpStatus.OK)
.header("Content-Type", "application/json")
.body(response)
.build();
}
public class SemanticSearchRequest {
public String prompt;
public String getPrompt() {
return prompt;
}
public void setPrompt(String prompt) {
this.prompt = prompt;
}
}
Det här exemplet visar hur du utför en semantisk sökning på en fil.
const semanticSearchInput = input.generic({
type: "semanticSearch",
connectionName: "AISearchEndpoint",
collection: "openai-index",
query: "{prompt}",
chatModel: "%CHAT_MODEL_DEPLOYMENT_NAME%",
embeddingsModel: "%EMBEDDING_MODEL_DEPLOYMENT_NAME%"
});
app.http('PromptFile', {
methods: ['POST'],
authLevel: 'function',
extraInputs: [semanticSearchInput],
handler: async (_request, context) => {
var responseBody = context.extraInputs.get(semanticSearchInput)
return { status: 200, body: responseBody.Response.trim() }
}
});
const semanticSearchInput = input.generic({
type: "semanticSearch",
connectionName: "AISearchEndpoint",
collection: "openai-index",
query: "{prompt}",
chatModel: "%CHAT_MODEL_DEPLOYMENT_NAME%",
embeddingsModel: "%EMBEDDING_MODEL_DEPLOYMENT_NAME%"
});
app.http('PromptFile', {
methods: ['POST'],
authLevel: 'function',
extraInputs: [semanticSearchInput],
handler: async (_request, context) => {
var responseBody: any = context.extraInputs.get(semanticSearchInput)
return { status: 200, body: responseBody.Response.trim() }
}
});
Det här exemplet visar hur du utför en semantisk sökning på en fil.
Här är function.json-filen för att fråga en fil:
{
"bindings": [
{
"authLevel": "function",
"type": "httpTrigger",
"direction": "in",
"name": "Request",
"methods": [
"post"
]
},
{
"type": "http",
"direction": "out",
"name": "Response"
},
{
"name": "SemanticSearchInput",
"type": "semanticSearch",
"direction": "in",
"searchConnectionName": "AISearchEndpoint",
"collection": "openai-index",
"query": "{prompt}",
"chatModel": "%CHAT_MODEL_DEPLOYMENT_NAME%",
"embeddingsModel": "%EMBEDDING_MODEL_DEPLOYMENT_NAME%"
}
]
}
Mer information om function.json filegenskaper finns i avsnittet Konfiguration .
using namespace System.Net
param($Request, $TriggerMetadata, $SemanticSearchInput)
Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
StatusCode = [HttpStatusCode]::OK
Body = $SemanticSearchInput.Response
})
Det här exemplet visar hur du utför en semantisk sökning på en fil.
@app.function_name("PromptFile")
@app.route(methods=["POST"])
@app.semantic_search_input(
arg_name="result",
search_connection_name="AISearchEndpoint",
collection="openai-index",
query="{prompt}",
embeddings_model="%EMBEDDING_MODEL_DEPLOYMENT_NAME%",
chat_model="%CHAT_MODEL_DEPLOYMENT_NAME%",
)
def prompt_file(req: func.HttpRequest, result: str) -> func.HttpResponse:
result_json = json.loads(result)
response_json = {
"content": result_json.get("Response"),
"content_type": "text/plain",
}
return func.HttpResponse(
json.dumps(response_json), status_code=200, mimetype="application/json"
)
Egenskaper
SemanticSearchInput Använd attributet för att definiera en semantisk sökindatabindning som stöder följande parametrar:
| Parameter | Beskrivning |
|---|---|
| SearchConnectionName | Namnet på en appinställning eller miljövariabel som innehåller värdet anslutningssträng. Den här egenskapen stöder bindningsuttryck. |
| Samling | Namnet på samlingen eller tabellen eller indexet som ska sökas. Den här egenskapen stöder bindningsuttryck. |
| Fråga | Den semantiska frågetext som ska användas för sökning. Den här egenskapen stöder bindningsuttryck. |
| EmbeddingsModel |
Valfritt. ID:t för modellen som ska användas för inbäddningar. Standardvärdet är text-embedding-3-small. Den här egenskapen stöder bindningsuttryck. |
| ChatModel |
Valfritt. Hämtar eller anger namnet på den stora språkmodellen som ska anropas för chattsvar. Standardvärdet är gpt-3.5-turbo. Den här egenskapen stöder bindningsuttryck. |
| AIConnectionName | Valfritt. Hämtar eller anger namnet på konfigurationsavsnittet för anslutningsinställningar för AI-tjänsten. För Azure OpenAI: Om det anges söker du efter värdena "Slutpunkt" och "Nyckel" i det här konfigurationsavsnittet. Om det inte anges eller om avsnittet inte finns återgår du till miljövariabler: AZURE_OPENAI_ENDPOINT och AZURE_OPENAI_KEY. För användartilldelad hanterad identitetsautentisering krävs den här egenskapen. För OpenAI-tjänsten (icke-Azure) anger du miljövariabeln OPENAI_API_KEY. |
| SystemPrompt |
Valfritt. Hämtar eller ställer in systemprompten som ska användas för att fråga den stora språkmodellen. Systemprompten läggs till med kunskap som hämtas som ett resultat av Query. Den kombinerade prompten skickas till OpenAI Chat-API:et. Den här egenskapen stöder bindningsuttryck. |
| MaxKnowledgeCount |
Valfritt. Hämtar eller anger antalet kunskapsobjekt som ska matas SystemPromptin i . |
| IsReasoningModel |
Valfritt. Hämtar eller anger ett värde som anger om chattens slutförandemodell är en resonemangsmodell. Det här alternativet är experimentellt och associerat med resonemangsmodellen tills alla modeller har paritet i de förväntade egenskaperna, med standardvärdet false. |
Anteckningar
Med anteckningen SemanticSearchInput kan du definiera en semantisk sökindatabindning som stöder följande parametrar:
| Komponent | Beskrivning |
|---|---|
| Namn | Hämtar eller anger namnet på indatabindningen. |
| searchConnectionName | Namnet på en appinställning eller miljövariabel som innehåller värdet anslutningssträng. Den här egenskapen stöder bindningsuttryck. |
| samling | Namnet på samlingen eller tabellen eller indexet som ska sökas. Den här egenskapen stöder bindningsuttryck. |
| fråga | Den semantiska frågetext som ska användas för sökning. Den här egenskapen stöder bindningsuttryck. |
| embeddingsModel |
Valfritt. ID:t för modellen som ska användas för inbäddningar. Standardvärdet är text-embedding-3-small. Den här egenskapen stöder bindningsuttryck. |
| chatModel |
Valfritt. Hämtar eller anger namnet på den stora språkmodellen som ska anropas för chattsvar. Standardvärdet är gpt-3.5-turbo. Den här egenskapen stöder bindningsuttryck. |
| aiConnectionName | Valfritt. Hämtar eller anger namnet på konfigurationsavsnittet för anslutningsinställningar för AI-tjänsten. För Azure OpenAI: Om det anges söker du efter värdena "Slutpunkt" och "Nyckel" i det här konfigurationsavsnittet. Om det inte anges eller om avsnittet inte finns återgår du till miljövariabler: AZURE_OPENAI_ENDPOINT och AZURE_OPENAI_KEY. För användartilldelad hanterad identitetsautentisering krävs den här egenskapen. För OpenAI-tjänsten (icke-Azure) anger du miljövariabeln OPENAI_API_KEY. |
| systemPrompt |
Valfritt. Hämtar eller ställer in systemprompten som ska användas för att fråga den stora språkmodellen. Systemprompten läggs till med kunskap som hämtas som ett resultat av Query. Den kombinerade prompten skickas till OpenAI Chat-API:et. Den här egenskapen stöder bindningsuttryck. |
| maxKnowledgeCount |
Valfritt. Hämtar eller anger antalet kunskapsobjekt som ska matas SystemPromptin i . |
| isReasoningModel |
Valfritt. Hämtar eller anger ett värde som anger om chattens slutförandemodell är en resonemangsmodell. Det här alternativet är experimentellt och associerat med resonemangsmodellen tills alla modeller har paritet i de förväntade egenskaperna, med standardvärdet false. |
Dekoratörer
Under förhandsversionen definierar du indatabindningen som en generic_input_binding bindning av typen semanticSearch, som stöder följande parametrar:
| Parameter | Beskrivning |
|---|---|
| arg_name | Namnet på variabeln som representerar bindningsparametern. |
| search_connection_name | Namnet på en appinställning eller miljövariabel som innehåller värdet anslutningssträng. Den här egenskapen stöder bindningsuttryck. |
| samling | Namnet på samlingen eller tabellen eller indexet som ska sökas. Den här egenskapen stöder bindningsuttryck. |
| fråga | Den semantiska frågetext som ska användas för sökning. Den här egenskapen stöder bindningsuttryck. |
| embeddings_model |
Valfritt. ID:t för modellen som ska användas för inbäddningar. Standardvärdet är text-embedding-3-small. Den här egenskapen stöder bindningsuttryck. |
| chat_model |
Valfritt. Hämtar eller anger namnet på den stora språkmodellen som ska anropas för chattsvar. Standardvärdet är gpt-3.5-turbo. Den här egenskapen stöder bindningsuttryck. |
| ai_connection_name | Valfritt. Hämtar eller anger namnet på konfigurationsavsnittet för anslutningsinställningar för AI-tjänsten. För Azure OpenAI: Om det anges söker du efter värdena "Slutpunkt" och "Nyckel" i det här konfigurationsavsnittet. Om det inte anges eller om avsnittet inte finns återgår du till miljövariabler: AZURE_OPENAI_ENDPOINT och AZURE_OPENAI_KEY. För användartilldelad hanterad identitetsautentisering krävs den här egenskapen. För OpenAI-tjänsten (icke-Azure) anger du miljövariabeln OPENAI_API_KEY. |
| system_prompt |
Valfritt. Hämtar eller ställer in systemprompten som ska användas för att fråga den stora språkmodellen. Systemprompten läggs till med kunskap som hämtas som ett resultat av Query. Den kombinerade prompten skickas till OpenAI Chat-API:et. Den här egenskapen stöder bindningsuttryck. |
| max_knowledge_count |
Valfritt. Hämtar eller anger antalet kunskapsobjekt som ska matas SystemPromptin i . |
| is_reasoning _model |
Valfritt. Hämtar eller anger ett värde som anger om chattens slutförandemodell är en resonemangsmodell. Det här alternativet är experimentellt och associerat med resonemangsmodellen tills alla modeller har paritet i de förväntade egenskaperna, med standardvärdet false. |
Konfiguration
Bindningen stöder de konfigurationsegenskaper som du anger i filen function.json.
| Fastighet | Beskrivning |
|---|---|
| typ | Måste vara semanticSearch. |
| riktning | Måste vara in. |
| Namn | Namnet på indatabindningen. |
| searchConnectionName | Hämtar eller anger namnet på en appinställning eller miljövariabel som innehåller ett anslutningssträngsvärde. Den här egenskapen stöder bindningsuttryck. |
| samling | Namnet på samlingen eller tabellen eller indexet som ska sökas. Den här egenskapen stöder bindningsuttryck. |
| fråga | Den semantiska frågetext som ska användas för sökning. Den här egenskapen stöder bindningsuttryck. |
| embeddingsModel |
Valfritt. ID:t för modellen som ska användas för inbäddningar. Standardvärdet är text-embedding-3-small. Den här egenskapen stöder bindningsuttryck. |
| chatModel |
Valfritt. Hämtar eller anger namnet på den stora språkmodellen som ska anropas för chattsvar. Standardvärdet är gpt-3.5-turbo. Den här egenskapen stöder bindningsuttryck. |
| aiConnectionName | Valfritt. Hämtar eller anger namnet på konfigurationsavsnittet för anslutningsinställningar för AI-tjänsten. För Azure OpenAI: Om det anges söker du efter värdena "Slutpunkt" och "Nyckel" i det här konfigurationsavsnittet. Om det inte anges eller om avsnittet inte finns återgår du till miljövariabler: AZURE_OPENAI_ENDPOINT och AZURE_OPENAI_KEY. För användartilldelad hanterad identitetsautentisering krävs den här egenskapen. För OpenAI-tjänsten (icke-Azure) anger du miljövariabeln OPENAI_API_KEY. |
| systemPrompt |
Valfritt. Hämtar eller ställer in systemprompten som ska användas för att fråga den stora språkmodellen. Systemprompten läggs till med kunskap som hämtas som ett resultat av Query. Den kombinerade prompten skickas till OpenAI Chat-API:et. Den här egenskapen stöder bindningsuttryck. |
| maxKnowledgeCount |
Valfritt. Hämtar eller anger antalet kunskapsobjekt som ska matas SystemPromptin i . |
| isReasoningModel |
Valfritt. Hämtar eller anger ett värde som anger om chattens slutförandemodell är en resonemangsmodell. Det här alternativet är experimentellt och associerat med resonemangsmodellen tills alla modeller har paritet i de förväntade egenskaperna, med standardvärdet false. |
Konfiguration
Bindningen stöder dessa egenskaper, som definieras i koden:
| Fastighet | Beskrivning |
|---|---|
| searchConnectionName | Namnet på en appinställning eller miljövariabel som innehåller värdet anslutningssträng. Den här egenskapen stöder bindningsuttryck. |
| samling | Namnet på samlingen eller tabellen eller indexet som ska sökas. Den här egenskapen stöder bindningsuttryck. |
| fråga | Den semantiska frågetext som ska användas för sökning. Den här egenskapen stöder bindningsuttryck. |
| embeddingsModel |
Valfritt. ID:t för modellen som ska användas för inbäddningar. Standardvärdet är text-embedding-3-small. Den här egenskapen stöder bindningsuttryck. |
| chatModel |
Valfritt. Hämtar eller anger namnet på den stora språkmodellen som ska anropas för chattsvar. Standardvärdet är gpt-3.5-turbo. Den här egenskapen stöder bindningsuttryck. |
| aiConnectionName | Valfritt. Hämtar eller anger namnet på konfigurationsavsnittet för anslutningsinställningar för AI-tjänsten. För Azure OpenAI: Om det anges söker du efter värdena "Slutpunkt" och "Nyckel" i det här konfigurationsavsnittet. Om det inte anges eller om avsnittet inte finns återgår du till miljövariabler: AZURE_OPENAI_ENDPOINT och AZURE_OPENAI_KEY. För användartilldelad hanterad identitetsautentisering krävs den här egenskapen. För OpenAI-tjänsten (icke-Azure) anger du miljövariabeln OPENAI_API_KEY. |
| systemPrompt |
Valfritt. Hämtar eller ställer in systemprompten som ska användas för att fråga den stora språkmodellen. Systemprompten läggs till med kunskap som hämtas som ett resultat av Query. Den kombinerade prompten skickas till OpenAI Chat-API:et. Den här egenskapen stöder bindningsuttryck. |
| maxKnowledgeCount |
Valfritt. Hämtar eller anger antalet kunskapsobjekt som ska matas SystemPromptin i . |
| isReasoningModel |
Valfritt. Hämtar eller anger ett värde som anger om chattens slutförandemodell är en resonemangsmodell. Det här alternativet är experimentellt och associerat med resonemangsmodellen tills alla modeller har paritet i de förväntade egenskaperna, med standardvärdet false. |
Användning
Se avsnittet Exempel för fullständiga exempel.