Associazione di input di ricerca semantica OpenAI di Azure per Funzioni di Azure
Importante
L'estensione Azure OpenAI per Funzioni di Azure è attualmente in anteprima.
L'associazione di input di ricerca semantica Azure OpenAI consente di usare la ricerca semantica negli incorporamenti.
Per informazioni sull'installazione e la configurazione dell'estensione Azure OpenAI, vedere Estensioni Azure OpenAI per Funzioni di Azure. Per altre informazioni sulla classificazione semantica in Ricerca di intelligenza artificiale di Azure, vedere Classificazione semantica in Ricerca di intelligenza artificiale di Azure.
Nota
I riferimenti e gli esempi vengono forniti solo per il modello Node.js v4.
Nota
I riferimenti e gli esempi vengono forniti solo per il modello Python v2.
Nota
Anche se sono supportati entrambi i modelli di processo C#, vengono forniti solo esempi di modelli di lavoro isolati.
Esempio
In questo esempio viene illustrato come eseguire una ricerca semantica in un file.
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 questo esempio viene illustrato come eseguire una ricerca semantica in un file.
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 questo esempio viene illustrato come eseguire una ricerca semantica in un file.
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 questo esempio viene illustrato come eseguire una ricerca semantica in un file.
Ecco il file function.json per richiedere un file:
{
"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%"
}
]
}
Per altre informazioni sulle proprietà dei file function.json, vedere la sezione configurazione.
using namespace System.Net
param($Request, $TriggerMetadata, $SemanticSearchInput)
Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
StatusCode = [HttpStatusCode]::OK
Body = $SemanticSearchInput.Response
})
Gli esempi non sono ancora disponibili.
Attributi
Applicare l'attributo SemanticSearchInput
per definire un'associazione di input di ricerca semantica, che supporta questi parametri:
Parametro | Descrizione |
---|---|
ConnectionName | Nome di un'impostazione dell'app o di una variabile di ambiente che contiene il valore della stringa di connessione. Questa proprietà supporta le espressioni di associazione. |
Raccolta | Nome della raccolta, della tabella o dell'indice da cercare. Questa proprietà supporta le espressioni di associazione. |
Query | Testo della query semantica da usare per la ricerca. Questa proprietà supporta le espressioni di associazione. |
EmbeddingsModel | ID del modello da usare per gli incorporamenti. Il valore predefinito è text-embedding-3-small . Questa proprietà supporta le espressioni di associazione. |
ChatModel | Ottiene o imposta il nome del modello linguistico di grandi dimensioni da richiamare per le risposte di chat. Il valore predefinito è gpt-3.5-turbo . Questa proprietà supporta le espressioni di associazione. |
SystemPrompt | Facoltativo. Ottiene o imposta il prompt di sistema da utilizzare per richiedere il modello linguistico di grandi dimensioni. Il prompt di sistema viene aggiunto con le informazioni recuperate in seguito a Query . Il prompt combinato viene inviato all'API Chat OpenAI. Questa proprietà supporta le espressioni di associazione. |
MaxKnowledgeCount | Facoltativo. Ottiene o imposta il numero delle voci della knowledge base da inserire in SystemPrompt . |
Annotazioni
L'annotazione SemanticSearchInput
consente di definire un'associazione di input di ricerca semantica, che supporta questi parametri:
Elemento | Descrizione |
---|---|
name | Ottiene o imposta il nome del binding di input. |
connectionName | Nome di un'impostazione dell'app o di una variabile di ambiente che contiene il valore della stringa di connessione. Questa proprietà supporta le espressioni di associazione. |
collection | Nome della raccolta, della tabella o dell'indice da cercare. Questa proprietà supporta le espressioni di associazione. |
query | Testo della query semantica da usare per la ricerca. Questa proprietà supporta le espressioni di associazione. |
embeddingsModel | ID del modello da usare per gli incorporamenti. Il valore predefinito è text-embedding-3-small . Questa proprietà supporta le espressioni di associazione. |
chatModel | Ottiene o imposta il nome del modello linguistico di grandi dimensioni da richiamare per le risposte di chat. Il valore predefinito è gpt-3.5-turbo . Questa proprietà supporta le espressioni di associazione. |
systemPrompt | Facoltativo. Ottiene o imposta il prompt di sistema da utilizzare per richiedere il modello linguistico di grandi dimensioni. Il prompt di sistema viene aggiunto con le informazioni recuperate in seguito a Query . Il prompt combinato viene inviato all'API Chat OpenAI. Questa proprietà supporta le espressioni di associazione. |
maxKnowledgeCount | Facoltativo. Ottiene o imposta il numero delle voci della knowledge base da inserire in SystemPrompt . |
Elementi Decorator
Durante l'anteprima, definire l'associazione di input come associazione generic_input_binding
di tipo semanticSearch
, che supporta questi parametri:
Parametro | Descrizione |
---|---|
arg_name | Nome della variabile che rappresenta il parametro di associazione. |
connection_name | Nome di un'impostazione dell'app o di una variabile di ambiente che contiene il valore della stringa di connessione. Questa proprietà supporta le espressioni di associazione. |
collection | Nome della raccolta, della tabella o dell'indice da cercare. Questa proprietà supporta le espressioni di associazione. |
query | Testo della query semantica da usare per la ricerca. Questa proprietà supporta le espressioni di associazione. |
embeddings_model | ID del modello da usare per gli incorporamenti. Il valore predefinito è text-embedding-3-small . Questa proprietà supporta le espressioni di associazione. |
chat_model | Ottiene o imposta il nome del modello linguistico di grandi dimensioni da richiamare per le risposte di chat. Il valore predefinito è gpt-3.5-turbo . Questa proprietà supporta le espressioni di associazione. |
system_prompt | Facoltativo. Ottiene o imposta il prompt di sistema da utilizzare per richiedere il modello linguistico di grandi dimensioni. Il prompt di sistema viene aggiunto con le informazioni recuperate in seguito a Query . Il prompt combinato viene inviato all'API Chat OpenAI. Questa proprietà supporta le espressioni di associazione. |
max_knowledge_count | Facoltativo. Ottiene o imposta il numero delle voci della knowledge base da inserire in SystemPrompt . |
Impostazione
L'associazione supporta queste proprietà di configurazione impostate nel file function.json.
Proprietà | Descrizione |
---|---|
type | Deve essere semanticSearch . |
direction | Deve essere in . |
name | Nome dell'associazione di input. |
connectionName | Ottiene o imposta il nome di un'impostazione dell'app o di una variabile di ambiente che contiene un valore della stringa di connessione. Questa proprietà supporta le espressioni di associazione. |
collection | Nome della raccolta, della tabella o dell'indice da cercare. Questa proprietà supporta le espressioni di associazione. |
query | Testo della query semantica da usare per la ricerca. Questa proprietà supporta le espressioni di associazione. |
embeddingsModel | ID del modello da usare per gli incorporamenti. Il valore predefinito è text-embedding-3-small . Questa proprietà supporta le espressioni di associazione. |
chatModel | Ottiene o imposta il nome del modello linguistico di grandi dimensioni da richiamare per le risposte di chat. Il valore predefinito è gpt-3.5-turbo . Questa proprietà supporta le espressioni di associazione. |
systemPrompt | Facoltativo. Ottiene o imposta il prompt di sistema da utilizzare per richiedere il modello linguistico di grandi dimensioni. Il prompt di sistema viene aggiunto con le informazioni recuperate in seguito a Query . Il prompt combinato viene inviato all'API Chat OpenAI. Questa proprietà supporta le espressioni di associazione. |
maxKnowledgeCount | Facoltativo. Ottiene o imposta il numero delle voci della knowledge base da inserire in SystemPrompt . |
Impostazione
Il binding supporta queste proprietà, definite nel codice:
Proprietà | Descrizione |
---|---|
connectionName | Nome di un'impostazione dell'app o di una variabile di ambiente che contiene il valore della stringa di connessione. Questa proprietà supporta le espressioni di associazione. |
collection | Nome della raccolta, della tabella o dell'indice da cercare. Questa proprietà supporta le espressioni di associazione. |
query | Testo della query semantica da usare per la ricerca. Questa proprietà supporta le espressioni di associazione. |
embeddingsModel | ID del modello da usare per gli incorporamenti. Il valore predefinito è text-embedding-3-small . Questa proprietà supporta le espressioni di associazione. |
chatModel | Ottiene o imposta il nome del modello linguistico di grandi dimensioni da richiamare per le risposte di chat. Il valore predefinito è gpt-3.5-turbo . Questa proprietà supporta le espressioni di associazione. |
systemPrompt | Facoltativo. Ottiene o imposta il prompt di sistema da utilizzare per richiedere il modello linguistico di grandi dimensioni. Il prompt di sistema viene aggiunto con le informazioni recuperate in seguito a Query . Il prompt combinato viene inviato all'API Chat OpenAI. Questa proprietà supporta le espressioni di associazione. |
maxKnowledgeCount | Facoltativo. Ottiene o imposta il numero delle voci della knowledge base da inserire in SystemPrompt . |
Utilizzo
Per esempi completi, vedere la sezione di esempio.