Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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.
Opmerking
Verwijzingen en voorbeelden worden alleen verstrekt voor het Node.js v4-model.
Opmerking
Verwijzingen en voorbeelden worden alleen verstrekt voor het Python v2-model.
Opmerking
Hoewel beide C#-procesmodellen worden ondersteund, worden alleen geïsoleerde werkrolmodelvoorbeelden gegeven.
Voorbeeld
In dit voorbeeld ziet u hoe u een semantische zoekopdracht uitvoert op een bestand.
[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" };
}
In dit voorbeeld ziet u hoe u een semantische zoekopdracht uitvoert op een bestand.
@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;
}
}
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",
"searchConnectionName": "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
})
In dit voorbeeld ziet u hoe u een semantische zoekopdracht uitvoert op een bestand.
@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"
)
Kenmerken
Pas het SemanticSearchInput
kenmerk toe om een semantische zoekinvoerbinding te definiëren, die ondersteuning biedt voor deze parameters:
Kenmerk | Beschrijving |
---|---|
SearchConnectionName | 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. |
Vraag | De semantische querytekst die moet worden gebruikt voor zoeken. Deze eigenschap ondersteunt bindingexpressies. |
EmbeddingsModel |
Optioneel. De id van het model dat moet worden gebruikt voor insluitingen. De standaardwaarde is text-embedding-3-small . Deze eigenschap ondersteunt bindingexpressies. |
ChatModel |
Optioneel. 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. |
AIConnectionName | Optioneel. Hiermee haalt u de naam van de configuratiesectie op voor connectiviteitsinstellingen voor AI-services. Voor Azure OpenAI: Als dit is opgegeven, zoekt u in deze configuratiesectie naar de waarden 'Eindpunt' en 'Sleutel'. Als deze niet is opgegeven of de sectie niet bestaat, valt u terug op omgevingsvariabelen: AZURE_OPENAI_ENDPOINT en AZURE_OPENAI_KEY. Voor door de gebruiker toegewezen beheerde identiteitverificatie is deze eigenschap vereist. Stel voor openAI-service (niet-Azure) de omgevingsvariabele OPENAI_API_KEY in. |
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. |
IsReasoningModel |
Optioneel. Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of het voltooiingsmodel van de chat een redeneringsmodel is. Deze optie is experimenteel en gekoppeld aan het redeneringsmodel totdat alle modellen pariteit hebben in de verwachte eigenschappen, met een standaardwaarde van false . |
Aantekeningen
SemanticSearchInput
Met de aantekening kunt u een semantische zoekinvoerbinding definiëren, die deze parameters ondersteunt:
Onderdeel | Beschrijving |
---|---|
naam | Hiermee haalt u de naam van de invoerbinding op of stelt u deze in. |
searchConnectionName | 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. |
vraag | De semantische querytekst die moet worden gebruikt voor zoeken. Deze eigenschap ondersteunt bindingexpressies. |
embeddingsModel |
Optioneel. De id van het model dat moet worden gebruikt voor insluitingen. De standaardwaarde is text-embedding-3-small . Deze eigenschap ondersteunt bindingexpressies. |
chatModel |
Optioneel. 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. |
aiConnectionName | Optioneel. Hiermee haalt u de naam van de configuratiesectie op voor connectiviteitsinstellingen voor AI-services. Voor Azure OpenAI: Als dit is opgegeven, zoekt u in deze configuratiesectie naar de waarden 'Eindpunt' en 'Sleutel'. Als deze niet is opgegeven of de sectie niet bestaat, valt u terug op omgevingsvariabelen: AZURE_OPENAI_ENDPOINT en AZURE_OPENAI_KEY. Voor door de gebruiker toegewezen beheerde identiteitverificatie is deze eigenschap vereist. Stel voor openAI-service (niet-Azure) de omgevingsvariabele OPENAI_API_KEY in. |
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. |
isReasoningModel |
Optioneel. Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of het voltooiingsmodel van de chat een redeneringsmodel is. Deze optie is experimenteel en gekoppeld aan het redeneringsmodel totdat alle modellen pariteit hebben in de verwachte eigenschappen, met een standaardwaarde van false . |
Decorateurs
Definieer tijdens de preview de invoerbinding als een generic_input_binding
binding van het type semanticSearch
, die ondersteuning biedt voor deze parameters:
Kenmerk | Beschrijving |
---|---|
arg_name | De naam van de variabele die de bindingsparameter vertegenwoordigt. |
search_connection_name | 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. |
vraag | De semantische querytekst die moet worden gebruikt voor zoeken. Deze eigenschap ondersteunt bindingexpressies. |
embeddings_model |
Optioneel. De id van het model dat moet worden gebruikt voor insluitingen. De standaardwaarde is text-embedding-3-small . Deze eigenschap ondersteunt bindingexpressies. |
chat_model |
Optioneel. 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. |
ai_connection_name | Optioneel. Hiermee haalt u de naam van de configuratiesectie op voor connectiviteitsinstellingen voor AI-services. Voor Azure OpenAI: Als dit is opgegeven, zoekt u in deze configuratiesectie naar de waarden 'Eindpunt' en 'Sleutel'. Als deze niet is opgegeven of de sectie niet bestaat, valt u terug op omgevingsvariabelen: AZURE_OPENAI_ENDPOINT en AZURE_OPENAI_KEY. Voor door de gebruiker toegewezen beheerde identiteitverificatie is deze eigenschap vereist. Stel voor openAI-service (niet-Azure) de omgevingsvariabele OPENAI_API_KEY in. |
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. |
is_reasoning _model |
Optioneel. Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of het voltooiingsmodel van de chat een redeneringsmodel is. Deze optie is experimenteel en gekoppeld aan het redeneringsmodel totdat alle modellen pariteit hebben in de verwachte eigenschappen, met een standaardwaarde van false . |
Configuratie
De binding ondersteunt deze configuratie-eigenschappen die u in het function.json-bestand hebt ingesteld.
Vastgoed | Beschrijving |
---|---|
soort | Moet semanticSearch zijn. |
richting | Moet in zijn. |
naam | De naam van de invoerbinding. |
searchConnectionName | Hiermee haalt u de naam op van een app-instelling of omgevingsvariabele die een verbindingsreekswaarde bevat. Deze eigenschap ondersteunt bindingexpressies. |
verzameling | De naam van de verzameling of tabel of index die u wilt zoeken. Deze eigenschap ondersteunt bindingexpressies. |
vraag | De semantische querytekst die moet worden gebruikt voor zoeken. Deze eigenschap ondersteunt bindingexpressies. |
embeddingsModel |
Optioneel. De id van het model dat moet worden gebruikt voor insluitingen. De standaardwaarde is text-embedding-3-small . Deze eigenschap ondersteunt bindingexpressies. |
chatModel |
Optioneel. 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. |
aiConnectionName | Optioneel. Hiermee haalt u de naam van de configuratiesectie op voor connectiviteitsinstellingen voor AI-services. Voor Azure OpenAI: Als dit is opgegeven, zoekt u in deze configuratiesectie naar de waarden 'Eindpunt' en 'Sleutel'. Als deze niet is opgegeven of de sectie niet bestaat, valt u terug op omgevingsvariabelen: AZURE_OPENAI_ENDPOINT en AZURE_OPENAI_KEY. Voor door de gebruiker toegewezen beheerde identiteitverificatie is deze eigenschap vereist. Stel voor openAI-service (niet-Azure) de omgevingsvariabele OPENAI_API_KEY in. |
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. |
isReasoningModel |
Optioneel. Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of het voltooiingsmodel van de chat een redeneringsmodel is. Deze optie is experimenteel en gekoppeld aan het redeneringsmodel totdat alle modellen pariteit hebben in de verwachte eigenschappen, met een standaardwaarde van false . |
Configuratie
De binding ondersteunt deze eigenschappen, die zijn gedefinieerd in uw code:
Vastgoed | Beschrijving |
---|---|
searchConnectionName | 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. |
vraag | De semantische querytekst die moet worden gebruikt voor zoeken. Deze eigenschap ondersteunt bindingexpressies. |
embeddingsModel |
Optioneel. De id van het model dat moet worden gebruikt voor insluitingen. De standaardwaarde is text-embedding-3-small . Deze eigenschap ondersteunt bindingexpressies. |
chatModel |
Optioneel. 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. |
aiConnectionName | Optioneel. Hiermee haalt u de naam van de configuratiesectie op voor connectiviteitsinstellingen voor AI-services. Voor Azure OpenAI: Als dit is opgegeven, zoekt u in deze configuratiesectie naar de waarden 'Eindpunt' en 'Sleutel'. Als deze niet is opgegeven of de sectie niet bestaat, valt u terug op omgevingsvariabelen: AZURE_OPENAI_ENDPOINT en AZURE_OPENAI_KEY. Voor door de gebruiker toegewezen beheerde identiteitverificatie is deze eigenschap vereist. Stel voor openAI-service (niet-Azure) de omgevingsvariabele OPENAI_API_KEY in. |
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. |
isReasoningModel |
Optioneel. Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of het voltooiingsmodel van de chat een redeneringsmodel is. Deze optie is experimenteel en gekoppeld aan het redeneringsmodel totdat alle modellen pariteit hebben in de verwachte eigenschappen, met een standaardwaarde van false . |
Gebruik
Zie de sectie Voorbeeld voor volledige voorbeelden.