Vinculação de entrada da Pesquisa Semântica do Azure OpenAI para o Azure Functions
Importante
A extensão do Azure OpenAI para o Azure Functions está atualmente em visualização.
A associação de entrada de pesquisa semântica do Azure OpenAI permite que você use a pesquisa semântica em suas incorporações.
Para obter informações sobre detalhes de instalação e configuração da extensão do Azure OpenAI, consulte Extensões do Azure OpenAI para Azure Functions. Para saber mais sobre a classificação semântica na Pesquisa de IA do Azure, consulte Classificação semântica na Pesquisa de IA do Azure.
Nota
Referências e exemplos são fornecidos apenas para o modelo Node.js v4.
Nota
Referências e exemplos são fornecidos apenas para o modelo Python v2.
Nota
Embora ambos os modelos de processo C# sejam suportados, apenas exemplos de modelos de trabalho isolados são fornecidos.
Exemplo
Este exemplo mostra como executar uma pesquisa semântica em um arquivo.
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; }
}
Este exemplo mostra como executar uma pesquisa semântica em um arquivo.
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");
Os exemplos ainda não estão disponíveis.
Este exemplo mostra como executar uma pesquisa semântica em um arquivo.
type: 'embeddings',
maxChunkLength: 512,
model: '%EMBEDDING_MODEL_DEPLOYMENT_NAME%'
})
app.http('getEmbeddingsFilePath', {
methods: ['POST'],
route: 'embeddings-from-file',
authLevel: 'function',
extraInputs: [embeddingsFilePathInput],
handler: async (request, context) => {
let requestBody: EmbeddingsFilePath = await request.json();
let response: any = context.extraInputs.get(embeddingsFilePathInput);
context.log(
`Received ${response.count} embedding(s) for input file ${requestBody.FilePath}.`
);
// TODO: Store the embeddings into a database or other storage.
Este exemplo mostra como executar uma pesquisa semântica em um arquivo.
Aqui está o arquivo function.json para solicitar um arquivo:
{
"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%"
}
]
}
Para obter mais informações sobre function.json propriedades do arquivo, consulte a seção Configuração .
using namespace System.Net
param($Request, $TriggerMetadata, $SemanticSearchInput)
Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
StatusCode = [HttpStatusCode]::OK
Body = $SemanticSearchInput.Response
})
Os exemplos ainda não estão disponíveis.
Atributos
Aplique o SemanticSearchInput
atributo para definir uma associação de entrada de pesquisa semântica, que suporta estes parâmetros:
Parâmetro | Description |
---|---|
Nome da conexão | O nome de uma configuração de aplicativo ou variável de ambiente que contém o valor da cadeia de conexão. Esta propriedade suporta expressões de ligação. |
Coleção | O nome da coleção, tabela ou índice a pesquisar. Esta propriedade suporta expressões de ligação. |
Consulta | O texto da consulta semântica a ser usado para pesquisar. Esta propriedade suporta expressões de ligação. |
IncorporaçõesModelo | A ID do modelo a ser usado para incorporações. O valor predefinido é text-embedding-3-small . Esta propriedade suporta expressões de ligação. |
Modelo de Bate-papo | Obtém ou define o nome do Modelo de Linguagem Grande a ser invocado para respostas de bate-papo. O valor predefinido é gpt-3.5-turbo . Esta propriedade suporta expressões de ligação. |
Prompt do sistema | Opcional. Obtém ou define o prompt do sistema a ser usado para solicitar o modelo de linguagem grande. O prompt do sistema é anexado com conhecimento que é obtido como resultado do Query . O prompt combinado é enviado para a API de bate-papo do OpenAI. Esta propriedade suporta expressões de ligação. |
MaxKnowledgeCount | Opcional. Obtém ou define o número de itens de conhecimento a serem injetados no SystemPrompt . |
Anotações
A SemanticSearchInput
anotação permite definir uma ligação de entrada de pesquisa semântica, que suporta estes parâmetros:
Elemento | Description |
---|---|
Designação | Obtém ou define o nome da ligação de entrada. |
nome_da_conexão | O nome de uma configuração de aplicativo ou variável de ambiente que contém o valor da cadeia de conexão. Esta propriedade suporta expressões de ligação. |
Coleção | O nome da coleção, tabela ou índice a pesquisar. Esta propriedade suporta expressões de ligação. |
query | O texto da consulta semântica a ser usado para pesquisar. Esta propriedade suporta expressões de ligação. |
incorporaçõesModelo | A ID do modelo a ser usado para incorporações. O valor predefinido é text-embedding-3-small . Esta propriedade suporta expressões de ligação. |
chatModelo | Obtém ou define o nome do Modelo de Linguagem Grande a ser invocado para respostas de bate-papo. O valor predefinido é gpt-3.5-turbo . Esta propriedade suporta expressões de ligação. |
sistemaPrompt | Opcional. Obtém ou define o prompt do sistema a ser usado para solicitar o modelo de linguagem grande. O prompt do sistema é anexado com conhecimento que é obtido como resultado do Query . O prompt combinado é enviado para a API de bate-papo do OpenAI. Esta propriedade suporta expressões de ligação. |
maxKnowledgeCount | Opcional. Obtém ou define o número de itens de conhecimento a serem injetados no SystemPrompt . |
Decoradores
Durante a visualização, defina a ligação de entrada como uma generic_input_binding
associação do tipo semanticSearch
, que suporta estes parâmetros:
Parâmetro | Description |
---|---|
arg_name | O nome da variável que representa o parâmetro de ligação. |
connection_name | O nome de uma configuração de aplicativo ou variável de ambiente que contém o valor da cadeia de conexão. Esta propriedade suporta expressões de ligação. |
Coleção | O nome da coleção, tabela ou índice a pesquisar. Esta propriedade suporta expressões de ligação. |
query | O texto da consulta semântica a ser usado para pesquisar. Esta propriedade suporta expressões de ligação. |
embeddings_model | A ID do modelo a ser usado para incorporações. O valor predefinido é text-embedding-3-small . Esta propriedade suporta expressões de ligação. |
chat_model | Obtém ou define o nome do Modelo de Linguagem Grande a ser invocado para respostas de bate-papo. O valor predefinido é gpt-3.5-turbo . Esta propriedade suporta expressões de ligação. |
system_prompt | Opcional. Obtém ou define o prompt do sistema a ser usado para solicitar o modelo de linguagem grande. O prompt do sistema é anexado com conhecimento que é obtido como resultado do Query . O prompt combinado é enviado para a API de bate-papo do OpenAI. Esta propriedade suporta expressões de ligação. |
max_knowledge_count | Opcional. Obtém ou define o número de itens de conhecimento a serem injetados no SystemPrompt . |
Configuração
A associação suporta essas propriedades de configuração definidas no arquivo function.json.
Property | Descrição |
---|---|
type | Deve ser semanticSearch . |
direção | Deve ser in . |
Designação | O nome da ligação de entrada. |
nome_da_conexão | Obtém ou define o nome de uma configuração de aplicativo ou variável de ambiente que contém um valor de cadeia de conexão. Esta propriedade suporta expressões de ligação. |
Coleção | O nome da coleção, tabela ou índice a pesquisar. Esta propriedade suporta expressões de ligação. |
query | O texto da consulta semântica a ser usado para pesquisar. Esta propriedade suporta expressões de ligação. |
incorporaçõesModelo | A ID do modelo a ser usado para incorporações. O valor predefinido é text-embedding-3-small . Esta propriedade suporta expressões de ligação. |
chatModelo | Obtém ou define o nome do Modelo de Linguagem Grande a ser invocado para respostas de bate-papo. O valor predefinido é gpt-3.5-turbo . Esta propriedade suporta expressões de ligação. |
sistemaPrompt | Opcional. Obtém ou define o prompt do sistema a ser usado para solicitar o modelo de linguagem grande. O prompt do sistema é anexado com conhecimento que é obtido como resultado do Query . O prompt combinado é enviado para a API de bate-papo do OpenAI. Esta propriedade suporta expressões de ligação. |
maxKnowledgeCount | Opcional. Obtém ou define o número de itens de conhecimento a serem injetados no SystemPrompt . |
Configuração
A associação suporta estas propriedades, que são definidas no seu código:
Property | Description |
---|---|
nome_da_conexão | O nome de uma configuração de aplicativo ou variável de ambiente que contém o valor da cadeia de conexão. Esta propriedade suporta expressões de ligação. |
Coleção | O nome da coleção, tabela ou índice a pesquisar. Esta propriedade suporta expressões de ligação. |
query | O texto da consulta semântica a ser usado para pesquisar. Esta propriedade suporta expressões de ligação. |
incorporaçõesModelo | A ID do modelo a ser usado para incorporações. O valor predefinido é text-embedding-3-small . Esta propriedade suporta expressões de ligação. |
chatModelo | Obtém ou define o nome do Modelo de Linguagem Grande a ser invocado para respostas de bate-papo. O valor predefinido é gpt-3.5-turbo . Esta propriedade suporta expressões de ligação. |
sistemaPrompt | Opcional. Obtém ou define o prompt do sistema a ser usado para solicitar o modelo de linguagem grande. O prompt do sistema é anexado com conhecimento que é obtido como resultado do Query . O prompt combinado é enviado para a API de bate-papo do OpenAI. Esta propriedade suporta expressões de ligação. |
maxKnowledgeCount | Opcional. Obtém ou define o número de itens de conhecimento a serem injetados no SystemPrompt . |
Utilização
Consulte a seção Exemplo para obter exemplos completos.