Powiązanie danych wejściowych wyszukiwania semantycznego usługi Azure OpenAI dla usługi Azure Functions
Ważne
Rozszerzenie Azure OpenAI dla usługi Azure Functions jest obecnie dostępne w wersji zapoznawczej.
Powiązanie danych wejściowych wyszukiwania semantycznego usługi Azure OpenAI umożliwia korzystanie z semantycznego wyszukiwania na osadzanych elementach.
Aby uzyskać informacje na temat konfigurowania i konfigurowania rozszerzenia Azure OpenAI, zobacz Azure OpenAI extensions for Azure Functions (Rozszerzenia azure OpenAI dla usługi Azure Functions). Aby dowiedzieć się więcej na temat klasyfikacji semantycznej w usłudze Azure AI Search, zobacz Semantic ranking in Azure AI Search (Ranking semantyczny w usłudze Azure AI Search).
Uwaga
Odwołania i przykłady są udostępniane tylko dla modelu Node.js w wersji 4.
Uwaga
Odwołania i przykłady są udostępniane tylko dla modelu języka Python w wersji 2.
Uwaga
Chociaż oba modele procesów języka C# są obsługiwane, udostępniane są tylko izolowane przykłady modeli procesów roboczych.
Przykład
W tym przykładzie pokazano, jak przeprowadzić semantyczne wyszukiwanie w pliku.
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; }
}
W tym przykładzie pokazano, jak przeprowadzić semantyczne wyszukiwanie w pliku.
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");
Przykłady nie są jeszcze dostępne.
W tym przykładzie pokazano, jak przeprowadzić semantyczne wyszukiwanie w pliku.
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.
W tym przykładzie pokazano, jak przeprowadzić semantyczne wyszukiwanie w pliku.
Oto plik function.json monitujący o plik:
{
"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%"
}
]
}
Aby uzyskać więcej informacji na temat function.json właściwości pliku, zobacz sekcję Konfiguracja.
using namespace System.Net
param($Request, $TriggerMetadata, $SemanticSearchInput)
Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
StatusCode = [HttpStatusCode]::OK
Body = $SemanticSearchInput.Response
})
Przykłady nie są jeszcze dostępne.
Atrybuty
Zastosuj atrybut, SemanticSearchInput
aby zdefiniować semantyczne powiązanie danych wejściowych wyszukiwania, które obsługuje następujące parametry:
Parametr | opis |
---|---|
Nazwa połączenia | Nazwa ustawienia aplikacji lub zmiennej środowiskowej zawierającej wartość parametry połączenia. Ta właściwość obsługuje wyrażenia powiązań. |
Kolekcja | Nazwa kolekcji lub tabeli lub indeksu do wyszukania. Ta właściwość obsługuje wyrażenia powiązań. |
Zapytanie | Semantyczny tekst zapytania do użycia do wyszukiwania. Ta właściwość obsługuje wyrażenia powiązań. |
EmbeddingsModel | Identyfikator modelu, który ma być używany do osadzania. Domyślna wartość to text-embedding-3-small . Ta właściwość obsługuje wyrażenia powiązań. |
ChatModel | Pobiera lub ustawia nazwę modelu dużego języka, który ma być wywoływany na potrzeby odpowiedzi na czat. Domyślna wartość to gpt-3.5-turbo . Ta właściwość obsługuje wyrażenia powiązań. |
SystemPrompt | Opcjonalne. Pobiera lub ustawia monit systemowy o monitowanie dużego modelu językowego. Monit systemowy jest dołączany z wiedzą, która jest pobierana w wyniku .Query Połączony monit jest wysyłany do interfejsu API czatu OpenAI. Ta właściwość obsługuje wyrażenia powiązań. |
MaxKnowledgeCount | Opcjonalne. Pobiera lub ustawia liczbę elementów wiedzy, które mają być wstrzykiwane do elementu SystemPrompt . |
Adnotacje
Adnotacja SemanticSearchInput
umożliwia zdefiniowanie semantycznego powiązania danych wejściowych wyszukiwania, które obsługuje następujące parametry:
Element | opis |
---|---|
name | Pobiera lub ustawia nazwę powiązania wejściowego. |
connectionName | Nazwa ustawienia aplikacji lub zmiennej środowiskowej zawierającej wartość parametry połączenia. Ta właściwość obsługuje wyrażenia powiązań. |
kolekcja | Nazwa kolekcji lub tabeli lub indeksu do wyszukania. Ta właściwość obsługuje wyrażenia powiązań. |
query | Semantyczny tekst zapytania do użycia do wyszukiwania. Ta właściwość obsługuje wyrażenia powiązań. |
embeddingsModel | Identyfikator modelu, który ma być używany do osadzania. Domyślna wartość to text-embedding-3-small . Ta właściwość obsługuje wyrażenia powiązań. |
chatModel | Pobiera lub ustawia nazwę modelu dużego języka, który ma być wywoływany na potrzeby odpowiedzi na czat. Domyślna wartość to gpt-3.5-turbo . Ta właściwość obsługuje wyrażenia powiązań. |
systemPrompt | Opcjonalne. Pobiera lub ustawia monit systemowy o monitowanie dużego modelu językowego. Monit systemowy jest dołączany z wiedzą, która jest pobierana w wyniku .Query Połączony monit jest wysyłany do interfejsu API czatu OpenAI. Ta właściwość obsługuje wyrażenia powiązań. |
maxKnowledgeCount | Opcjonalne. Pobiera lub ustawia liczbę elementów wiedzy, które mają być wstrzykiwane do elementu SystemPrompt . |
Dekoratory
W wersji zapoznawczej zdefiniuj powiązanie wejściowe jako generic_input_binding
powiązanie typu semanticSearch
, które obsługuje następujące parametry:
Parametr | Opis |
---|---|
arg_name | Nazwa zmiennej reprezentującej parametr powiązania. |
connection_name | Nazwa ustawienia aplikacji lub zmiennej środowiskowej zawierającej wartość parametry połączenia. Ta właściwość obsługuje wyrażenia powiązań. |
kolekcja | Nazwa kolekcji lub tabeli lub indeksu do wyszukania. Ta właściwość obsługuje wyrażenia powiązań. |
query | Semantyczny tekst zapytania do użycia do wyszukiwania. Ta właściwość obsługuje wyrażenia powiązań. |
embeddings_model | Identyfikator modelu, który ma być używany do osadzania. Domyślna wartość to text-embedding-3-small . Ta właściwość obsługuje wyrażenia powiązań. |
chat_model | Pobiera lub ustawia nazwę modelu dużego języka, który ma być wywoływany na potrzeby odpowiedzi na czat. Domyślna wartość to gpt-3.5-turbo . Ta właściwość obsługuje wyrażenia powiązań. |
system_prompt | Opcjonalne. Pobiera lub ustawia monit systemowy o monitowanie dużego modelu językowego. Monit systemowy jest dołączany z wiedzą, która jest pobierana w wyniku .Query Połączony monit jest wysyłany do interfejsu API czatu OpenAI. Ta właściwość obsługuje wyrażenia powiązań. |
max_knowledge_count | Opcjonalne. Pobiera lub ustawia liczbę elementów wiedzy, które mają być wstrzykiwane do elementu SystemPrompt . |
Konfigurowanie
Powiązanie obsługuje te właściwości konfiguracji ustawione w pliku function.json.
Właściwości | Opis |
---|---|
type | Musi mieć wartość semanticSearch . |
direction | Musi mieć wartość in . |
name | Nazwa powiązania wejściowego. |
connectionName | Pobiera lub ustawia nazwę ustawienia aplikacji lub zmiennej środowiskowej zawierającej wartość parametry połączenia. Ta właściwość obsługuje wyrażenia powiązań. |
kolekcja | Nazwa kolekcji lub tabeli lub indeksu do wyszukania. Ta właściwość obsługuje wyrażenia powiązań. |
query | Semantyczny tekst zapytania do użycia do wyszukiwania. Ta właściwość obsługuje wyrażenia powiązań. |
embeddingsModel | Identyfikator modelu, który ma być używany do osadzania. Domyślna wartość to text-embedding-3-small . Ta właściwość obsługuje wyrażenia powiązań. |
chatModel | Pobiera lub ustawia nazwę modelu dużego języka, który ma być wywoływany na potrzeby odpowiedzi na czat. Domyślna wartość to gpt-3.5-turbo . Ta właściwość obsługuje wyrażenia powiązań. |
systemPrompt | Opcjonalne. Pobiera lub ustawia monit systemowy o monitowanie dużego modelu językowego. Monit systemowy jest dołączany z wiedzą, która jest pobierana w wyniku .Query Połączony monit jest wysyłany do interfejsu API czatu OpenAI. Ta właściwość obsługuje wyrażenia powiązań. |
maxKnowledgeCount | Opcjonalne. Pobiera lub ustawia liczbę elementów wiedzy, które mają być wstrzykiwane do elementu SystemPrompt . |
Konfigurowanie
Powiązanie obsługuje te właściwości zdefiniowane w kodzie:
Właściwości | Opis |
---|---|
connectionName | Nazwa ustawienia aplikacji lub zmiennej środowiskowej zawierającej wartość parametry połączenia. Ta właściwość obsługuje wyrażenia powiązań. |
kolekcja | Nazwa kolekcji lub tabeli lub indeksu do wyszukania. Ta właściwość obsługuje wyrażenia powiązań. |
query | Semantyczny tekst zapytania do użycia do wyszukiwania. Ta właściwość obsługuje wyrażenia powiązań. |
embeddingsModel | Identyfikator modelu, który ma być używany do osadzania. Domyślna wartość to text-embedding-3-small . Ta właściwość obsługuje wyrażenia powiązań. |
chatModel | Pobiera lub ustawia nazwę modelu dużego języka, który ma być wywoływany na potrzeby odpowiedzi na czat. Domyślna wartość to gpt-3.5-turbo . Ta właściwość obsługuje wyrażenia powiązań. |
systemPrompt | Opcjonalne. Pobiera lub ustawia monit systemowy o monitowanie dużego modelu językowego. Monit systemowy jest dołączany z wiedzą, która jest pobierana w wyniku .Query Połączony monit jest wysyłany do interfejsu API czatu OpenAI. Ta właściwość obsługuje wyrażenia powiązań. |
maxKnowledgeCount | Opcjonalne. Pobiera lub ustawia liczbę elementów wiedzy, które mają być wstrzykiwane do elementu SystemPrompt . |
Użycie
Zobacz sekcję Przykład, aby zapoznać się z kompletnymi przykładami.