Azure OpenAI Semantic Search Input Binding voor Azure Functions
Belangrijk
De Azure OpenAI-extensie voor Azure Functions is momenteel in preview.
Met de semantische zoekinvoerbinding van Azure OpenAI kunt u semantische zoekopdrachten gebruiken voor uw insluitingen.
Zie Azure OpenAI-extensies voor Azure Functions voor informatie over de installatie en configuratie van de Azure OpenAI-extensie. Zie Semantische rangschikking in Azure AI Search voor meer informatie over semantische rangschikking in Azure AI Search.
Notitie
Verwijzingen en voorbeelden worden alleen verstrekt voor het Node.js v4-model.
Notitie
Verwijzingen en voorbeelden worden alleen verstrekt voor het Python v2-model.
Notitie
Hoewel beide C#-procesmodellen worden ondersteund, worden alleen geïsoleerde werkrolmodelvoorbeelden gegeven.
Opmerking
In dit voorbeeld ziet u hoe u een semantische zoekopdracht uitvoert op een bestand.
public class EmbeddingsStoreOutputResponse
{
[EmbeddingsStoreOutput("{url}", InputType.Url, "AISearchEndpoint", "openai-index", Model = "%EMBEDDING_MODEL_DEPLOYMENT_NAME%")]
public required SearchableDocument SearchableDocument { get; init; }
public IActionResult? HttpResponse { get; set; }
}
In dit voorbeeld ziet u hoe u een semantische zoekopdracht uitvoert op een bestand.
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");
In dit voorbeeld ziet u hoe u een semantische zoekopdracht uitvoert op een bestand.
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() }
}
});
In dit voorbeeld ziet u hoe u een semantische zoekopdracht uitvoert op een bestand.
Dit is het function.json-bestand om een bestand te vragen:
{
"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%"
}
]
}
Zie de sectie Configuratie voor meer informatie over function.json bestandseigenschappen.
using namespace System.Net
param($Request, $TriggerMetadata, $SemanticSearchInput)
Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
StatusCode = [HttpStatusCode]::OK
Body = $SemanticSearchInput.Response
})
Voorbeelden zijn nog niet beschikbaar.
Kenmerken
Pas het SemanticSearchInput
kenmerk toe om een semantische zoekinvoerbinding te definiëren, die ondersteuning biedt voor deze parameters:
Parameter | Omschrijving |
---|---|
ConnectionName | De naam van een app-instelling of omgevingsvariabele die de verbindingsreeks waarde bevat. Deze eigenschap ondersteunt bindingexpressies. |
Verzameling | De naam van de verzameling of tabel of index die u wilt zoeken. Deze eigenschap ondersteunt bindingexpressies. |
Query | De semantische querytekst die moet worden gebruikt voor zoeken. Deze eigenschap ondersteunt bindingexpressies. |
EmbeddingsModel | De id van het model dat moet worden gebruikt voor insluitingen. De standaardwaarde is text-embedding-3-small . Deze eigenschap ondersteunt bindingexpressies. |
ChatModel | Hiermee wordt de naam van het grote taalmodel opgehaald of ingesteld om aan te roepen voor chatantwoorden. De standaardwaarde is gpt-3.5-turbo . Deze eigenschap ondersteunt bindingexpressies. |
SystemPrompt | Optioneel. Hiermee wordt de systeemprompt opgevraagd of ingesteld voor het vragen om het grote taalmodel. De systeemprompt wordt toegevoegd met kennis die wordt opgehaald als gevolg van de Query . De gecombineerde prompt wordt verzonden naar de OpenAI Chat-API. Deze eigenschap ondersteunt bindingexpressies. |
MaxKnowledgeCount | Optioneel. Hiermee haalt of stelt u het aantal kennisitems in dat SystemPrompt moet worden ingevoerd. |
Aantekeningen
SemanticSearchInput
Met de aantekening kunt u een semantische zoekinvoerbinding definiëren, die deze parameters ondersteunt:
Element | Description |
---|---|
name | Hiermee haalt u de naam van de invoerbinding op of stelt u deze in. |
connectionName | De naam van een app-instelling of omgevingsvariabele die de verbindingsreeks waarde bevat. Deze eigenschap ondersteunt bindingexpressies. |
collectie | De naam van de verzameling of tabel of index die u wilt zoeken. Deze eigenschap ondersteunt bindingexpressies. |
query | De semantische querytekst die moet worden gebruikt voor zoeken. Deze eigenschap ondersteunt bindingexpressies. |
embeddingsModel | De id van het model dat moet worden gebruikt voor insluitingen. De standaardwaarde is text-embedding-3-small . Deze eigenschap ondersteunt bindingexpressies. |
chatModel | Hiermee wordt de naam van het grote taalmodel opgehaald of ingesteld om aan te roepen voor chatantwoorden. De standaardwaarde is gpt-3.5-turbo . Deze eigenschap ondersteunt bindingexpressies. |
systemPrompt | Optioneel. Hiermee wordt de systeemprompt opgevraagd of ingesteld voor het vragen om het grote taalmodel. De systeemprompt wordt toegevoegd met kennis die wordt opgehaald als gevolg van de Query . De gecombineerde prompt wordt verzonden naar de OpenAI Chat-API. Deze eigenschap ondersteunt bindingexpressies. |
maxKnowledgeCount | Optioneel. Hiermee haalt of stelt u het aantal kennisitems in dat SystemPrompt moet worden ingevoerd. |
Decorators
Definieer tijdens de preview de invoerbinding als een generic_input_binding
binding van het type semanticSearch
, die ondersteuning biedt voor deze parameters:
Parameter | Description |
---|---|
arg_name | De naam van de variabele die de bindingsparameter vertegenwoordigt. |
connection_name | De naam van een app-instelling of omgevingsvariabele die de verbindingsreeks waarde bevat. Deze eigenschap ondersteunt bindingexpressies. |
collectie | De naam van de verzameling of tabel of index die u wilt zoeken. Deze eigenschap ondersteunt bindingexpressies. |
query | De semantische querytekst die moet worden gebruikt voor zoeken. Deze eigenschap ondersteunt bindingexpressies. |
embeddings_model | De id van het model dat moet worden gebruikt voor insluitingen. De standaardwaarde is text-embedding-3-small . Deze eigenschap ondersteunt bindingexpressies. |
chat_model | Hiermee wordt de naam van het grote taalmodel opgehaald of ingesteld om aan te roepen voor chatantwoorden. De standaardwaarde is gpt-3.5-turbo . Deze eigenschap ondersteunt bindingexpressies. |
system_prompt | Optioneel. Hiermee wordt de systeemprompt opgevraagd of ingesteld voor het vragen om het grote taalmodel. De systeemprompt wordt toegevoegd met kennis die wordt opgehaald als gevolg van de Query . De gecombineerde prompt wordt verzonden naar de OpenAI Chat-API. Deze eigenschap ondersteunt bindingexpressies. |
max_knowledge_count | Optioneel. Hiermee haalt of stelt u het aantal kennisitems in dat SystemPrompt moet worden ingevoerd. |
Configuratie
De binding ondersteunt deze configuratie-eigenschappen die u in het function.json-bestand hebt ingesteld.
Eigenschappen | Beschrijving |
---|---|
type | Moet semanticSearch zijn. |
direction | Moet in zijn. |
name | De naam van de invoerbinding. |
connectionName | Hiermee haalt u de naam op van een app-instelling of omgevingsvariabele die een verbindingsreeks waarde bevat. Deze eigenschap ondersteunt bindingexpressies. |
collectie | De naam van de verzameling of tabel of index die u wilt zoeken. Deze eigenschap ondersteunt bindingexpressies. |
query | De semantische querytekst die moet worden gebruikt voor zoeken. Deze eigenschap ondersteunt bindingexpressies. |
embeddingsModel | De id van het model dat moet worden gebruikt voor insluitingen. De standaardwaarde is text-embedding-3-small . Deze eigenschap ondersteunt bindingexpressies. |
chatModel | Hiermee wordt de naam van het grote taalmodel opgehaald of ingesteld om aan te roepen voor chatantwoorden. De standaardwaarde is gpt-3.5-turbo . Deze eigenschap ondersteunt bindingexpressies. |
systemPrompt | Optioneel. Hiermee wordt de systeemprompt opgevraagd of ingesteld voor het vragen om het grote taalmodel. De systeemprompt wordt toegevoegd met kennis die wordt opgehaald als gevolg van de Query . De gecombineerde prompt wordt verzonden naar de OpenAI Chat-API. Deze eigenschap ondersteunt bindingexpressies. |
maxKnowledgeCount | Optioneel. Hiermee haalt of stelt u het aantal kennisitems in dat SystemPrompt moet worden ingevoerd. |
Configuratie
De binding ondersteunt deze eigenschappen, die zijn gedefinieerd in uw code:
Eigenschappen | Beschrijving |
---|---|
connectionName | De naam van een app-instelling of omgevingsvariabele die de verbindingsreeks waarde bevat. Deze eigenschap ondersteunt bindingexpressies. |
collectie | De naam van de verzameling of tabel of index die u wilt zoeken. Deze eigenschap ondersteunt bindingexpressies. |
query | De semantische querytekst die moet worden gebruikt voor zoeken. Deze eigenschap ondersteunt bindingexpressies. |
embeddingsModel | De id van het model dat moet worden gebruikt voor insluitingen. De standaardwaarde is text-embedding-3-small . Deze eigenschap ondersteunt bindingexpressies. |
chatModel | Hiermee wordt de naam van het grote taalmodel opgehaald of ingesteld om aan te roepen voor chatantwoorden. De standaardwaarde is gpt-3.5-turbo . Deze eigenschap ondersteunt bindingexpressies. |
systemPrompt | Optioneel. Hiermee wordt de systeemprompt opgevraagd of ingesteld voor het vragen om het grote taalmodel. De systeemprompt wordt toegevoegd met kennis die wordt opgehaald als gevolg van de Query . De gecombineerde prompt wordt verzonden naar de OpenAI Chat-API. Deze eigenschap ondersteunt bindingexpressies. |
maxKnowledgeCount | Optioneel. Hiermee haalt of stelt u het aantal kennisitems in dat SystemPrompt moet worden ingevoerd. |
Gebruik
Zie de sectie Voorbeeld voor volledige voorbeelden.