Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
Important
L’extension Azure OpenAI pour Azure Functions est actuellement en préversion.
La liaison d’entrée de recherche sémantique Azure OpenAI vous permet d’utiliser la recherche sémantique sur vos incorporations.
Pour plus d’informations sur l’installation et la configuration de l’extension Azure OpenAI, consultez Extensions Azure OpenAI pour Azure Functions. Pour en savoir plus sur le classement sémantique dans Recherche IA Azure, veuillez consulter la rubrique Classement par ordre de priorité sémantique dans Recherche Azure AI.
Remarque
Les références et les exemples sont fournis uniquement pour le modèle Node.js v4.
Remarque
Les références et exemples sont fournis uniquement pour le modèle Python v2.
Remarque
Bien que les deux modèles de processus C# soient pris en charge, seuls les exemples de modèles worker isolés sont fournis.
Exemple :
Cet exemple montre comment effectuer une recherche sémantique sur un fichier.
[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" };
}
Cet exemple montre comment effectuer une recherche sémantique sur un fichier.
@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;
}
}
Cet exemple montre comment effectuer une recherche sémantique sur un fichier.
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() }
}
});
Cet exemple montre comment effectuer une recherche sémantique sur un fichier.
Voici le fichier function.json pour inviter un fichier :
{
"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%"
}
]
}
Pour plus d’informations sur les propriétés du fichier function.json, consultez la section Configuration.
using namespace System.Net
param($Request, $TriggerMetadata, $SemanticSearchInput)
Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
StatusCode = [HttpStatusCode]::OK
Body = $SemanticSearchInput.Response
})
Cet exemple montre comment effectuer une recherche sémantique sur un fichier.
@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"
)
Attributs
Appliquez l’attribut SemanticSearchInput pour définir une liaison d’entrée de recherche sémantique, qui prend en charge ces paramètres :
| Paramètre | Descriptif |
|---|---|
| SearchConnectionName | Au lieu de cela, Nom d’un paramètre d’application ou d’une variable d’environnement qui contient la valeur de la chaîne de connexion. Cette propriété prend en charge les expressions de liaison. |
| Collection | Nom de la collection, de la table ou de l’index ou effectuer la recherche. Cette propriété prend en charge les expressions de liaison. |
| Requête | Texte de requête sémantique à utiliser pour la recherche. Cette propriété prend en charge les expressions de liaison. |
| EmbeddingsModel |
Facultatif. ID du modèle à utiliser pour les incorporations. La valeur par défaut est text-embedding-3-small. Cette propriété prend en charge les expressions de liaison. |
| ChatModel |
Facultatif. Obtient ou définit le nom du modèle de langage volumineux à appeler pour les réponses de conversation. La valeur par défaut est gpt-3.5-turbo. Cette propriété prend en charge les expressions de liaison. |
| AIConnectionName | Facultatif. Obtient ou définit le nom de la section de configuration pour les paramètres de connectivité du service IA. Pour Azure OpenAI : s’il est spécifié, recherche les valeurs « Point de terminaison » et « Clé » dans cette section de configuration. S’il n’existe pas ou si la section n’existe pas, revient aux variables d’environnement : AZURE_OPENAI_ENDPOINT et AZURE_OPENAI_KEY. Pour l’authentification d’identité managée affectée par l’utilisateur, cette propriété est requise. Pour le service OpenAI (non-Azure), définissez la variable d’environnement OPENAI_API_KEY. |
| SystemPrompt |
Facultatif. Obtient ou définit l’invite système à utiliser pour inviter le modèle de langage volumineux. L’invite système est ajoutée avec des connaissances extraites à la suite du Query. L’invite combinée est envoyée à l’API OpenAI Chat. Cette propriété prend en charge les expressions de liaison. |
| MaxKnowledgeCount |
Facultatif. Obtient ou définit le nombre d’éléments de connaissances à injecter dans le SystemPrompt. |
| IsReasoningModel |
Facultatif. Obtient ou définit une valeur indiquant si le modèle d’achèvement de conversation est un modèle de raisonnement. Cette option est expérimentale et associée au modèle de raisonnement jusqu’à ce que tous les modèles aient une parité dans les propriétés attendues, avec une valeur par défaut de false. |
Commentaires
L’annotation SemanticSearchInput vous permet de définir une liaison d’entrée de recherche sémantique, qui prend en charge ces paramètres :
| Élément | Descriptif |
|---|---|
| nom | Obtient ou définit le nom de la liaison d’entrée. |
| searchConnectionName | Au lieu de cela, Nom d’un paramètre d’application ou d’une variable d’environnement qui contient la valeur de la chaîne de connexion. Cette propriété prend en charge les expressions de liaison. |
| collection | Nom de la collection, de la table ou de l’index ou effectuer la recherche. Cette propriété prend en charge les expressions de liaison. |
| requête | Texte de requête sémantique à utiliser pour la recherche. Cette propriété prend en charge les expressions de liaison. |
| embeddingsModel |
Facultatif. ID du modèle à utiliser pour les incorporations. La valeur par défaut est text-embedding-3-small. Cette propriété prend en charge les expressions de liaison. |
| chatModel |
Facultatif. Obtient ou définit le nom du modèle de langage volumineux à appeler pour les réponses de conversation. La valeur par défaut est gpt-3.5-turbo. Cette propriété prend en charge les expressions de liaison. |
| aiConnectionName | Facultatif. Obtient ou définit le nom de la section de configuration pour les paramètres de connectivité du service IA. Pour Azure OpenAI : s’il est spécifié, recherche les valeurs « Point de terminaison » et « Clé » dans cette section de configuration. S’il n’existe pas ou si la section n’existe pas, revient aux variables d’environnement : AZURE_OPENAI_ENDPOINT et AZURE_OPENAI_KEY. Pour l’authentification d’identité managée affectée par l’utilisateur, cette propriété est requise. Pour le service OpenAI (non-Azure), définissez la variable d’environnement OPENAI_API_KEY. |
| systemPrompt |
Facultatif. Obtient ou définit l’invite système à utiliser pour inviter le modèle de langage volumineux. L’invite système est ajoutée avec des connaissances extraites à la suite du Query. L’invite combinée est envoyée à l’API OpenAI Chat. Cette propriété prend en charge les expressions de liaison. |
| maxKnowledgeCount |
Facultatif. Obtient ou définit le nombre d’éléments de connaissances à injecter dans le SystemPrompt. |
| isReasoningModel |
Facultatif. Obtient ou définit une valeur indiquant si le modèle d’achèvement de conversation est un modèle de raisonnement. Cette option est expérimentale et associée au modèle de raisonnement jusqu’à ce que tous les modèles aient une parité dans les propriétés attendues, avec une valeur par défaut de false. |
Décorateurs
Pendant la préversion, définissez la liaison d’entrée en tant que liaison generic_input_binding de type semanticSearch, qui prend en charge ces paramètres :
| Paramètre | Descriptif |
|---|---|
| arg_name | Le nom de la variable qui représente le paramètre de liaison. |
| search_connection_name | Au lieu de cela, Nom d’un paramètre d’application ou d’une variable d’environnement qui contient la valeur de la chaîne de connexion. Cette propriété prend en charge les expressions de liaison. |
| collection | Nom de la collection, de la table ou de l’index ou effectuer la recherche. Cette propriété prend en charge les expressions de liaison. |
| requête | Texte de requête sémantique à utiliser pour la recherche. Cette propriété prend en charge les expressions de liaison. |
| embeddings_model |
Facultatif. ID du modèle à utiliser pour les incorporations. La valeur par défaut est text-embedding-3-small. Cette propriété prend en charge les expressions de liaison. |
| chat_model |
Facultatif. Obtient ou définit le nom du modèle de langage volumineux à appeler pour les réponses de conversation. La valeur par défaut est gpt-3.5-turbo. Cette propriété prend en charge les expressions de liaison. |
| ai_connection_name | Facultatif. Obtient ou définit le nom de la section de configuration pour les paramètres de connectivité du service IA. Pour Azure OpenAI : s’il est spécifié, recherche les valeurs « Point de terminaison » et « Clé » dans cette section de configuration. S’il n’existe pas ou si la section n’existe pas, revient aux variables d’environnement : AZURE_OPENAI_ENDPOINT et AZURE_OPENAI_KEY. Pour l’authentification d’identité managée affectée par l’utilisateur, cette propriété est requise. Pour le service OpenAI (non-Azure), définissez la variable d’environnement OPENAI_API_KEY. |
| system_prompt |
Facultatif. Obtient ou définit l’invite système à utiliser pour inviter le modèle de langage volumineux. L’invite système est ajoutée avec des connaissances extraites à la suite du Query. L’invite combinée est envoyée à l’API OpenAI Chat. Cette propriété prend en charge les expressions de liaison. |
| max_knowledge_count |
Facultatif. Obtient ou définit le nombre d’éléments de connaissances à injecter dans le SystemPrompt. |
| is_reasoning _model |
Facultatif. Obtient ou définit une valeur indiquant si le modèle d’achèvement de conversation est un modèle de raisonnement. Cette option est expérimentale et associée au modèle de raisonnement jusqu’à ce que tous les modèles aient une parité dans les propriétés attendues, avec une valeur par défaut de false. |
Paramétrage
La liaison prend en charge ces propriétés de configuration que vous définissez dans le fichier function.json.
| Propriété | Descriptif |
|---|---|
| type | Doit être semanticSearch. |
| direction | Doit être in. |
| nom | Le nom de la liaison d’entrée. |
| searchConnectionName | Obtient ou définit le nom d’un paramètre d’application ou d’une variable d’environnement qui contient une valeur de chaîne de connexion. Cette propriété prend en charge les expressions de liaison. |
| collection | Nom de la collection, de la table ou de l’index ou effectuer la recherche. Cette propriété prend en charge les expressions de liaison. |
| requête | Texte de requête sémantique à utiliser pour la recherche. Cette propriété prend en charge les expressions de liaison. |
| embeddingsModel |
Facultatif. ID du modèle à utiliser pour les incorporations. La valeur par défaut est text-embedding-3-small. Cette propriété prend en charge les expressions de liaison. |
| chatModel |
Facultatif. Obtient ou définit le nom du modèle de langage volumineux à appeler pour les réponses de conversation. La valeur par défaut est gpt-3.5-turbo. Cette propriété prend en charge les expressions de liaison. |
| aiConnectionName | Facultatif. Obtient ou définit le nom de la section de configuration pour les paramètres de connectivité du service IA. Pour Azure OpenAI : s’il est spécifié, recherche les valeurs « Point de terminaison » et « Clé » dans cette section de configuration. S’il n’existe pas ou si la section n’existe pas, revient aux variables d’environnement : AZURE_OPENAI_ENDPOINT et AZURE_OPENAI_KEY. Pour l’authentification d’identité managée affectée par l’utilisateur, cette propriété est requise. Pour le service OpenAI (non-Azure), définissez la variable d’environnement OPENAI_API_KEY. |
| systemPrompt |
Facultatif. Obtient ou définit l’invite système à utiliser pour inviter le modèle de langage volumineux. L’invite système est ajoutée avec des connaissances extraites à la suite du Query. L’invite combinée est envoyée à l’API OpenAI Chat. Cette propriété prend en charge les expressions de liaison. |
| maxKnowledgeCount |
Facultatif. Obtient ou définit le nombre d’éléments de connaissances à injecter dans le SystemPrompt. |
| isReasoningModel |
Facultatif. Obtient ou définit une valeur indiquant si le modèle d’achèvement de conversation est un modèle de raisonnement. Cette option est expérimentale et associée au modèle de raisonnement jusqu’à ce que tous les modèles aient une parité dans les propriétés attendues, avec une valeur par défaut de false. |
Paramétrage
La liaison prend en charge ces propriétés, qui sont définies dans votre code :
| Propriété | Descriptif |
|---|---|
| searchConnectionName | Au lieu de cela, Nom d’un paramètre d’application ou d’une variable d’environnement qui contient la valeur de la chaîne de connexion. Cette propriété prend en charge les expressions de liaison. |
| collection | Nom de la collection, de la table ou de l’index ou effectuer la recherche. Cette propriété prend en charge les expressions de liaison. |
| requête | Texte de requête sémantique à utiliser pour la recherche. Cette propriété prend en charge les expressions de liaison. |
| embeddingsModel |
Facultatif. ID du modèle à utiliser pour les incorporations. La valeur par défaut est text-embedding-3-small. Cette propriété prend en charge les expressions de liaison. |
| chatModel |
Facultatif. Obtient ou définit le nom du modèle de langage volumineux à appeler pour les réponses de conversation. La valeur par défaut est gpt-3.5-turbo. Cette propriété prend en charge les expressions de liaison. |
| aiConnectionName | Facultatif. Obtient ou définit le nom de la section de configuration pour les paramètres de connectivité du service IA. Pour Azure OpenAI : s’il est spécifié, recherche les valeurs « Point de terminaison » et « Clé » dans cette section de configuration. S’il n’existe pas ou si la section n’existe pas, revient aux variables d’environnement : AZURE_OPENAI_ENDPOINT et AZURE_OPENAI_KEY. Pour l’authentification d’identité managée affectée par l’utilisateur, cette propriété est requise. Pour le service OpenAI (non-Azure), définissez la variable d’environnement OPENAI_API_KEY. |
| systemPrompt |
Facultatif. Obtient ou définit l’invite système à utiliser pour inviter le modèle de langage volumineux. L’invite système est ajoutée avec des connaissances extraites à la suite du Query. L’invite combinée est envoyée à l’API OpenAI Chat. Cette propriété prend en charge les expressions de liaison. |
| maxKnowledgeCount |
Facultatif. Obtient ou définit le nombre d’éléments de connaissances à injecter dans le SystemPrompt. |
| isReasoningModel |
Facultatif. Obtient ou définit une valeur indiquant si le modèle d’achèvement de conversation est un modèle de raisonnement. Cette option est expérimentale et associée au modèle de raisonnement jusqu’à ce que tous les modèles aient une parité dans les propriétés attendues, avec une valeur par défaut de false. |
Utilisation
Pour obtenir des exemples complets, consultez la section Exemple.