Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Importante
La extensión de Azure OpenAI para Azure Functions está actualmente en versión preliminar.
El enlace de entrada de búsqueda semántica de Azure OpenAI permite usar la búsqueda semántica en las incrustaciones.
Para obtener información sobre la configuración y los detalles de configuración de la extensión de Azure OpenAI, consulte Extensiones de Azure OpenAI para Azure Functions. Para más información sobre la clasificación semántica en Búsqueda de Azure AI, consulte Clasificación semántica en Búsqueda de Azure AI.
Nota:
Las referencias y ejemplos solo se proporcionan para el modelo de Node.js v4.
Nota:
Las referencias y ejemplos solo se proporcionan para el modelo de Python v2.
Nota:
Aunque se admiten ambos modelos de proceso de C#, solo se proporcionan ejemplos de modelos de trabajo aislados.
Ejemplo
En este ejemplo se muestra cómo realizar una búsqueda semántica en un archivo.
[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" };
}
En este ejemplo se muestra cómo realizar una búsqueda semántica en un archivo.
@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;
}
}
En este ejemplo se muestra cómo realizar una búsqueda semántica en un archivo.
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() }
}
});
En este ejemplo se muestra cómo realizar una búsqueda semántica en un archivo.
Este es el archivo function.json para solicitar un archivo:
{
"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%"
}
]
}
Para obtener más información sobre las propiedades del archivo function.json, consulte la sección de Configuración.
using namespace System.Net
param($Request, $TriggerMetadata, $SemanticSearchInput)
Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
StatusCode = [HttpStatusCode]::OK
Body = $SemanticSearchInput.Response
})
En este ejemplo se muestra cómo realizar una búsqueda semántica en un archivo.
@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"
)
Atributos
Aplique el SemanticSearchInput
atributo para definir un enlace de entrada de búsqueda semántica, que admite estos parámetros:
Parámetro | Descripción |
---|---|
SearchConnectionName | Nombre de una configuración de aplicación o una variable de entorno que contiene el valor de la cadena de conexión. Esta propiedad es compatible con expresiones de enlace. |
Colección | Nombre de la colección o tabla o índice que se va a buscar. Esta propiedad es compatible con expresiones de enlace. |
Consulta | Texto de consulta semántico que se va a usar para la búsqueda. Esta propiedad es compatible con expresiones de enlace. |
EmbeddingsModel |
Opcional. Identificador del modelo que se va a usar para incrustaciones. El valor predeterminado es text-embedding-3-small . Esta propiedad es compatible con expresiones de enlace. |
ChatModel |
Opcional. Obtiene o establece el nombre del modelo de lenguaje grande que se va a invocar para las respuestas de chat. El valor predeterminado es gpt-3.5-turbo . Esta propiedad es compatible con expresiones de enlace. |
AIConnectionName | Opcional. Obtiene o establece el nombre de la sección de configuración para la configuración de conectividad del servicio ai. Para Azure OpenAI: si se especifica, busca los valores "Punto de conexión" y "Clave" en esta sección de configuración. Si no se especifica o la sección no existe, vuelva a las variables de entorno: AZURE_OPENAI_ENDPOINT y AZURE_OPENAI_KEY. Para la autenticación de identidad administrada asignada por el usuario, esta propiedad es necesaria. Para el servicio OpenAI (que no es de Azure), establezca la variable de entorno OPENAI_API_KEY. |
SystemPrompt |
Opcional. Obtiene o establece la solicitud del sistema que se va a usar para solicitar el modelo de lenguaje grande. El símbolo del sistema se anexa con el conocimiento que se captura como resultado de Query . El mensaje combinado se envía a la API de chat de OpenAI. Esta propiedad es compatible con expresiones de enlace. |
MaxKnowledgeCount |
Opcional. Obtiene o establece el número de elementos de conocimiento que se insertarán en .SystemPrompt |
IsReasoningModel |
Opcional. Obtiene o establece un valor que indica si el modelo de finalización de chat es un modelo de razonamiento. Esta opción es experimental y asociada al modelo de razonamiento hasta que todos los modelos tienen paridad en las propiedades esperadas, con un valor predeterminado de false . |
anotaciones
La SemanticSearchInput
anotación permite definir un enlace de entrada de búsqueda semántica, que admite estos parámetros:
Elemento | Descripción |
---|---|
nombre | Obtiene o establece el nombre del enlace de entrada. |
searchConnectionName | Nombre de una configuración de aplicación o una variable de entorno que contiene el valor de la cadena de conexión. Esta propiedad es compatible con expresiones de enlace. |
Colección | Nombre de la colección o tabla o índice que se va a buscar. Esta propiedad es compatible con expresiones de enlace. |
consulta | Texto de consulta semántico que se va a usar para la búsqueda. Esta propiedad es compatible con expresiones de enlace. |
embeddingsModel |
Opcional. Identificador del modelo que se va a usar para incrustaciones. El valor predeterminado es text-embedding-3-small . Esta propiedad es compatible con expresiones de enlace. |
chatModel |
Opcional. Obtiene o establece el nombre del modelo de lenguaje grande que se va a invocar para las respuestas de chat. El valor predeterminado es gpt-3.5-turbo . Esta propiedad es compatible con expresiones de enlace. |
aiConnectionName | Opcional. Obtiene o establece el nombre de la sección de configuración para la configuración de conectividad del servicio ai. Para Azure OpenAI: si se especifica, busca los valores "Punto de conexión" y "Clave" en esta sección de configuración. Si no se especifica o la sección no existe, vuelva a las variables de entorno: AZURE_OPENAI_ENDPOINT y AZURE_OPENAI_KEY. Para la autenticación de identidad administrada asignada por el usuario, esta propiedad es necesaria. Para el servicio OpenAI (que no es de Azure), establezca la variable de entorno OPENAI_API_KEY. |
systemPrompt |
Opcional. Obtiene o establece la solicitud del sistema que se va a usar para solicitar el modelo de lenguaje grande. El símbolo del sistema se anexa con el conocimiento que se captura como resultado de Query . El mensaje combinado se envía a la API de chat de OpenAI. Esta propiedad es compatible con expresiones de enlace. |
maxKnowledgeCount |
Opcional. Obtiene o establece el número de elementos de conocimiento que se insertarán en .SystemPrompt |
isReasoningModel |
Opcional. Obtiene o establece un valor que indica si el modelo de finalización de chat es un modelo de razonamiento. Esta opción es experimental y asociada al modelo de razonamiento hasta que todos los modelos tienen paridad en las propiedades esperadas, con un valor predeterminado de false . |
Elementos Decorator
Durante la versión preliminar, defina el enlace de entrada como un enlace generic_input_binding
de tipo semanticSearch
, que admite estos parámetros:
Parámetro | Descripción |
---|---|
arg_name | Nombre de la variable que representa el parámetro de enlace. |
search_connection_name | Nombre de una configuración de aplicación o una variable de entorno que contiene el valor de la cadena de conexión. Esta propiedad es compatible con expresiones de enlace. |
Colección | Nombre de la colección o tabla o índice que se va a buscar. Esta propiedad es compatible con expresiones de enlace. |
consulta | Texto de consulta semántico que se va a usar para la búsqueda. Esta propiedad es compatible con expresiones de enlace. |
embeddings_model |
Opcional. Identificador del modelo que se va a usar para incrustaciones. El valor predeterminado es text-embedding-3-small . Esta propiedad es compatible con expresiones de enlace. |
chat_model |
Opcional. Obtiene o establece el nombre del modelo de lenguaje grande que se va a invocar para las respuestas de chat. El valor predeterminado es gpt-3.5-turbo . Esta propiedad es compatible con expresiones de enlace. |
ai_connection_name | Opcional. Obtiene o establece el nombre de la sección de configuración para la configuración de conectividad del servicio ai. Para Azure OpenAI: si se especifica, busca los valores "Punto de conexión" y "Clave" en esta sección de configuración. Si no se especifica o la sección no existe, vuelva a las variables de entorno: AZURE_OPENAI_ENDPOINT y AZURE_OPENAI_KEY. Para la autenticación de identidad administrada asignada por el usuario, esta propiedad es necesaria. Para el servicio OpenAI (que no es de Azure), establezca la variable de entorno OPENAI_API_KEY. |
system_prompt |
Opcional. Obtiene o establece la solicitud del sistema que se va a usar para solicitar el modelo de lenguaje grande. El símbolo del sistema se anexa con el conocimiento que se captura como resultado de Query . El mensaje combinado se envía a la API de chat de OpenAI. Esta propiedad es compatible con expresiones de enlace. |
max_knowledge_count |
Opcional. Obtiene o establece el número de elementos de conocimiento que se insertarán en .SystemPrompt |
is_reasoning _model |
Opcional. Obtiene o establece un valor que indica si el modelo de finalización de chat es un modelo de razonamiento. Esta opción es experimental y asociada al modelo de razonamiento hasta que todos los modelos tienen paridad en las propiedades esperadas, con un valor predeterminado de false . |
Configuración
El enlace admite estas propiedades de configuración que se establecen en el archivo function.json.
Propiedad | Descripción |
---|---|
tipo | Debe ser semanticSearch . |
dirección | Debe ser in . |
nombre | Nombre del enlace de entrada. |
searchConnectionName | Obtiene o establece el nombre de una configuración de aplicación o una variable de entorno que contiene un valor de cadena de conexión. Esta propiedad es compatible con expresiones de enlace. |
Colección | Nombre de la colección o tabla o índice que se va a buscar. Esta propiedad es compatible con expresiones de enlace. |
consulta | Texto de consulta semántico que se va a usar para la búsqueda. Esta propiedad es compatible con expresiones de enlace. |
embeddingsModel |
Opcional. Identificador del modelo que se va a usar para incrustaciones. El valor predeterminado es text-embedding-3-small . Esta propiedad es compatible con expresiones de enlace. |
chatModel |
Opcional. Obtiene o establece el nombre del modelo de lenguaje grande que se va a invocar para las respuestas de chat. El valor predeterminado es gpt-3.5-turbo . Esta propiedad es compatible con expresiones de enlace. |
aiConnectionName | Opcional. Obtiene o establece el nombre de la sección de configuración para la configuración de conectividad del servicio ai. Para Azure OpenAI: si se especifica, busca los valores "Punto de conexión" y "Clave" en esta sección de configuración. Si no se especifica o la sección no existe, vuelva a las variables de entorno: AZURE_OPENAI_ENDPOINT y AZURE_OPENAI_KEY. Para la autenticación de identidad administrada asignada por el usuario, esta propiedad es necesaria. Para el servicio OpenAI (que no es de Azure), establezca la variable de entorno OPENAI_API_KEY. |
systemPrompt |
Opcional. Obtiene o establece la solicitud del sistema que se va a usar para solicitar el modelo de lenguaje grande. El símbolo del sistema se anexa con el conocimiento que se captura como resultado de Query . El mensaje combinado se envía a la API de chat de OpenAI. Esta propiedad es compatible con expresiones de enlace. |
maxKnowledgeCount |
Opcional. Obtiene o establece el número de elementos de conocimiento que se insertarán en .SystemPrompt |
isReasoningModel |
Opcional. Obtiene o establece un valor que indica si el modelo de finalización de chat es un modelo de razonamiento. Esta opción es experimental y asociada al modelo de razonamiento hasta que todos los modelos tienen paridad en las propiedades esperadas, con un valor predeterminado de false . |
Configuración
El enlace admite estas propiedades, que se definen en el código:
Propiedad | Descripción |
---|---|
searchConnectionName | Nombre de una configuración de aplicación o una variable de entorno que contiene el valor de la cadena de conexión. Esta propiedad es compatible con expresiones de enlace. |
Colección | Nombre de la colección o tabla o índice que se va a buscar. Esta propiedad es compatible con expresiones de enlace. |
consulta | Texto de consulta semántico que se va a usar para la búsqueda. Esta propiedad es compatible con expresiones de enlace. |
embeddingsModel |
Opcional. Identificador del modelo que se va a usar para incrustaciones. El valor predeterminado es text-embedding-3-small . Esta propiedad es compatible con expresiones de enlace. |
chatModel |
Opcional. Obtiene o establece el nombre del modelo de lenguaje grande que se va a invocar para las respuestas de chat. El valor predeterminado es gpt-3.5-turbo . Esta propiedad es compatible con expresiones de enlace. |
aiConnectionName | Opcional. Obtiene o establece el nombre de la sección de configuración para la configuración de conectividad del servicio ai. Para Azure OpenAI: si se especifica, busca los valores "Punto de conexión" y "Clave" en esta sección de configuración. Si no se especifica o la sección no existe, vuelva a las variables de entorno: AZURE_OPENAI_ENDPOINT y AZURE_OPENAI_KEY. Para la autenticación de identidad administrada asignada por el usuario, esta propiedad es necesaria. Para el servicio OpenAI (que no es de Azure), establezca la variable de entorno OPENAI_API_KEY. |
systemPrompt |
Opcional. Obtiene o establece la solicitud del sistema que se va a usar para solicitar el modelo de lenguaje grande. El símbolo del sistema se anexa con el conocimiento que se captura como resultado de Query . El mensaje combinado se envía a la API de chat de OpenAI. Esta propiedad es compatible con expresiones de enlace. |
maxKnowledgeCount |
Opcional. Obtiene o establece el número de elementos de conocimiento que se insertarán en .SystemPrompt |
isReasoningModel |
Opcional. Obtiene o establece un valor que indica si el modelo de finalización de chat es un modelo de razonamiento. Esta opción es experimental y asociada al modelo de razonamiento hasta que todos los modelos tienen paridad en las propiedades esperadas, con un valor predeterminado de false . |
Uso
Consulte la sección de ejemplos para ver ejemplos completos.