Azure OpenAI Semantic Search-indatabindning för Azure Functions
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.
Kommentar
Referenser och exempel tillhandahålls endast för modellen Node.js v4.
Kommentar
Referenser och exempel tillhandahålls endast för Python v2-modellen.
Kommentar
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.
HttpResponse = new OkObjectResult(new { status = HttpStatusCode.OK }),
SearchableDocument = new SearchableDocument(filename)
};
}
public class EmbeddingsStoreOutputResponse
{
[EmbeddingsStoreOutput("{url}", InputType.Url, "AISearchEndpoint", "openai-index", Model = "%EMBEDDING_MODEL_DEPLOYMENT_NAME%")]
Det här exemplet visar hur du utför en semantisk sökning på en fil.
return searchableDocument;
}
}
@FunctionName("PromptFile")
public HttpResponseMessage promptFile(
@HttpTrigger(
name = "req",
methods = {HttpMethod.POST},
authLevel = AuthorizationLevel.ANONYMOUS)
HttpRequestMessage<SemanticSearchRequest> request,
@SemanticSearch(name = "search", connectionName = "AISearchEndpoint", collection = "openai-index", query = "{prompt}", chatModel = "%CHAT_MODEL_DEPLOYMENT_NAME%", embeddingsModel = "%EMBEDDING_MODEL_DEPLOYMENT_NAME%" ) String semanticSearchContext,
final ExecutionContext context) {
String response = new JSONObject(semanticSearchContext).getString("Response");
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",
"connectionName": "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
})
Exempel är ännu inte tillgängliga.
Attribut
SemanticSearchInput
Använd attributet för att definiera en semantisk sökindatabindning som stöder följande parametrar:
Parameter | beskrivning |
---|---|
ConnectionName | 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 | 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 | 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. |
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 SystemPrompt in i . |
Kommentarer
Med anteckningen SemanticSearchInput
kan du definiera en semantisk sökindatabindning som stöder följande parametrar:
Element | Description |
---|---|
Namn | Hämtar eller anger namnet på indatabindningen. |
connectionName | 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 | 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 | 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. |
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 SystemPrompt in i . |
Dekoratörer
Under förhandsversionen definierar du indatabindningen som en generic_input_binding
bindning av typen semanticSearch
, som stöder följande parametrar:
Parameter | Description |
---|---|
arg_name | Namnet på variabeln som representerar bindningsparametern. |
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 | 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 | 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. |
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 SystemPrompt in i . |
Konfiguration
Bindningen stöder de konfigurationsegenskaper som du anger i filen function.json.
Property | Beskrivning |
---|---|
typ | Måste vara semanticSearch . |
riktning | Måste vara in . |
Namn | Namnet på indatabindningen. |
connectionName | Hämtar eller anger namnet på en appinställning eller miljövariabel som innehåller ett anslutningssträng vä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 | 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 | 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. |
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 SystemPrompt in i . |
Konfiguration
Bindningen stöder dessa egenskaper, som definieras i koden:
Property | beskrivning |
---|---|
connectionName | 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 | 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 | 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. |
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 SystemPrompt in i . |
Förbrukning
Se avsnittet Exempel för fullständiga exempel.