Поделиться через


Привязка ввода семантического поиска Azure OpenAI для функций Azure

Это важно

Расширение Azure OpenAI для Функции Azure в настоящее время находится в предварительной версии.

Привязка входных данных семантического поиска Azure OpenAI позволяет использовать семантический поиск в внедрениях.

Сведения о настройке и настройке расширения Azure OpenAI см. в Функции Azure расширения Azure OpenAI. Дополнительные сведения о семантике ранжирования в службе "Поиск ИИ Azure" см. в статье "Семантический ранжирование" в службе "Поиск ИИ Azure".

Замечание

Ссылки и примеры предоставляются только для модели Node.js версии 4.

Замечание

Ссылки и примеры предоставляются только для модели Python версии 2.

Замечание

Хотя поддерживаются обе модели процессов C#, предоставляются только примеры изолированных рабочих моделей .

Пример

В этом примере показано, как выполнить семантический поиск в файле.

[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" };
}

В этом примере показано, как выполнить семантический поиск в файле.

@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;
    }        
}

В этом примере показано, как выполнить семантический поиск в файле.

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() }
    }
});

В этом примере показано, как выполнить семантический поиск в файле.

Ниже приведен файл function.json для запроса файла:

{
  "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%"
    }
  ]
}

Дополнительные сведения о свойствах файла function.json см. в разделе "Конфигурация ".

using namespace System.Net

param($Request, $TriggerMetadata, $SemanticSearchInput)

Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
        StatusCode = [HttpStatusCode]::OK
        Body       = $SemanticSearchInput.Response
    })

В этом примере показано, как выполнить семантический поиск в файле.

@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"
    )

Атрибуты

SemanticSearchInput Примените атрибут для определения семантической входной привязки поиска, которая поддерживает следующие параметры:

Параметр Описание
SearchConnectionName Имя параметра приложения или переменной среды, содержащей значение строка подключения. Это свойство поддерживает выражения привязок.
Коллекция Имя коллекции или таблицы или индекса для поиска. Это свойство поддерживает выражения привязок.
Запрос Текст семантического запроса, используемый для поиска. Это свойство поддерживает выражения привязок.
ВнедрениеsModel Необязательно. Идентификатор модели, используемой для внедрения. Значение по умолчанию — text-embedding-3-small. Это свойство поддерживает выражения привязок.
ChatModel Необязательно. Возвращает или задает имя модели большого языка для вызова ответов чата. Значение по умолчанию — gpt-3.5-turbo. Это свойство поддерживает выражения привязок.
AIConnectionName Необязательно. Возвращает или задает имя раздела конфигурации для параметров подключения службы ИИ. Для Azure OpenAI: если указано, найдите значения Endpoint и Key в этом разделе конфигурации. Если этот раздел не указан или раздел не существует, возвращается к переменным среды: AZURE_OPENAI_ENDPOINT и AZURE_OPENAI_KEY. Для проверки подлинности управляемого удостоверения, назначаемого пользователем, это свойство необходимо. Для службы OpenAI (не Azure) задайте переменную среды OPENAI_API_KEY.
SystemPrompt Необязательно. Возвращает или задает системный запрос, используемый для запроса крупной языковой модели. Системный запрос добавляется с знаниями, которые извлекается в результате Queryвыполнения. Объединенный запрос отправляется в API Чата OpenAI. Это свойство поддерживает выражения привязок.
MaxKnowledgeCount Необязательно. Возвращает или задает количество элементов знаний, которые необходимо внедрить в SystemPrompt.
IsReasoningModel Необязательно. Возвращает или задает значение, указывающее, является ли модель завершения чата моделью причин. Этот параметр является экспериментальным и связан с моделью причин, пока все модели не имеют четности в ожидаемых свойствах с значением falseпо умолчанию.

Аннотации

Заметка SemanticSearchInput позволяет определить семантику входных данных поиска, которая поддерживает следующие параметры:

Элемент Описание
имя Возвращает или задает имя входной привязки.
searchConnectionName Имя параметра приложения или переменной среды, содержащей значение строка подключения. Это свойство поддерживает выражения привязок.
коллекция Имя коллекции или таблицы или индекса для поиска. Это свойство поддерживает выражения привязок.
запрос Текст семантического запроса, используемый для поиска. Это свойство поддерживает выражения привязок.
embeddingsModel Необязательно. Идентификатор модели, используемой для внедрения. Значение по умолчанию — text-embedding-3-small. Это свойство поддерживает выражения привязок.
chatModel Необязательно. Возвращает или задает имя модели большого языка для вызова ответов чата. Значение по умолчанию — gpt-3.5-turbo. Это свойство поддерживает выражения привязок.
aiConnectionName Необязательно. Возвращает или задает имя раздела конфигурации для параметров подключения службы ИИ. Для Azure OpenAI: если указано, найдите значения Endpoint и Key в этом разделе конфигурации. Если этот раздел не указан или раздел не существует, возвращается к переменным среды: AZURE_OPENAI_ENDPOINT и AZURE_OPENAI_KEY. Для проверки подлинности управляемого удостоверения, назначаемого пользователем, это свойство необходимо. Для службы OpenAI (не Azure) задайте переменную среды OPENAI_API_KEY.
systemPrompt Необязательно. Возвращает или задает системный запрос, используемый для запроса крупной языковой модели. Системный запрос добавляется с знаниями, которые извлекается в результате Queryвыполнения. Объединенный запрос отправляется в API Чата OpenAI. Это свойство поддерживает выражения привязок.
maxKnowledgeCount Необязательно. Возвращает или задает количество элементов знаний, которые необходимо внедрить в SystemPrompt.
isReasoningModel Необязательно. Возвращает или задает значение, указывающее, является ли модель завершения чата моделью причин. Этот параметр является экспериментальным и связан с моделью причин, пока все модели не имеют четности в ожидаемых свойствах с значением falseпо умолчанию.

Декораторы

Во время предварительной версии определите входную привязку как привязку generic_input_binding типа semanticSearch, которая поддерживает следующие параметры:

Параметр Описание
arg_name Имя переменной, представляющей параметр привязки.
search_connection_name Имя параметра приложения или переменной среды, содержащей значение строка подключения. Это свойство поддерживает выражения привязок.
коллекция Имя коллекции или таблицы или индекса для поиска. Это свойство поддерживает выражения привязок.
запрос Текст семантического запроса, используемый для поиска. Это свойство поддерживает выражения привязок.
embeddings_model Необязательно. Идентификатор модели, используемой для внедрения. Значение по умолчанию — text-embedding-3-small. Это свойство поддерживает выражения привязок.
chat_model Необязательно. Возвращает или задает имя модели большого языка для вызова ответов чата. Значение по умолчанию — gpt-3.5-turbo. Это свойство поддерживает выражения привязок.
ai_connection_name Необязательно. Возвращает или задает имя раздела конфигурации для параметров подключения службы ИИ. Для Azure OpenAI: если указано, найдите значения Endpoint и Key в этом разделе конфигурации. Если этот раздел не указан или раздел не существует, возвращается к переменным среды: AZURE_OPENAI_ENDPOINT и AZURE_OPENAI_KEY. Для проверки подлинности управляемого удостоверения, назначаемого пользователем, это свойство необходимо. Для службы OpenAI (не Azure) задайте переменную среды OPENAI_API_KEY.
system_prompt Необязательно. Возвращает или задает системный запрос, используемый для запроса крупной языковой модели. Системный запрос добавляется с знаниями, которые извлекается в результате Queryвыполнения. Объединенный запрос отправляется в API Чата OpenAI. Это свойство поддерживает выражения привязок.
max_knowledge_count Необязательно. Возвращает или задает количество элементов знаний, которые необходимо внедрить в SystemPrompt.
is_reasoning _model Необязательно. Возвращает или задает значение, указывающее, является ли модель завершения чата моделью причин. Этот параметр является экспериментальным и связан с моделью причин, пока все модели не имеют четности в ожидаемых свойствах с значением falseпо умолчанию.

Конфигурация

Привязка поддерживает эти свойства конфигурации, заданные в файле function.json.

Недвижимость Описание
тип Этот параметр должен содержать значение semanticSearch.
направление Этот параметр должен содержать значение in.
имя Имя входной привязки.
searchConnectionName Возвращает или задает имя параметра приложения или переменной среды, содержащей строковое значение подключения. Это свойство поддерживает выражения привязок.
коллекция Имя коллекции или таблицы или индекса для поиска. Это свойство поддерживает выражения привязок.
запрос Текст семантического запроса, используемый для поиска. Это свойство поддерживает выражения привязок.
embeddingsModel Необязательно. Идентификатор модели, используемой для внедрения. Значение по умолчанию — text-embedding-3-small. Это свойство поддерживает выражения привязок.
chatModel Необязательно. Возвращает или задает имя модели большого языка для вызова ответов чата. Значение по умолчанию — gpt-3.5-turbo. Это свойство поддерживает выражения привязок.
aiConnectionName Необязательно. Возвращает или задает имя раздела конфигурации для параметров подключения службы ИИ. Для Azure OpenAI: если указано, найдите значения Endpoint и Key в этом разделе конфигурации. Если этот раздел не указан или раздел не существует, возвращается к переменным среды: AZURE_OPENAI_ENDPOINT и AZURE_OPENAI_KEY. Для проверки подлинности управляемого удостоверения, назначаемого пользователем, это свойство необходимо. Для службы OpenAI (не Azure) задайте переменную среды OPENAI_API_KEY.
systemPrompt Необязательно. Возвращает или задает системный запрос, используемый для запроса крупной языковой модели. Системный запрос добавляется с знаниями, которые извлекается в результате Queryвыполнения. Объединенный запрос отправляется в API Чата OpenAI. Это свойство поддерживает выражения привязок.
maxKnowledgeCount Необязательно. Возвращает или задает количество элементов знаний, которые необходимо внедрить в SystemPrompt.
isReasoningModel Необязательно. Возвращает или задает значение, указывающее, является ли модель завершения чата моделью причин. Этот параметр является экспериментальным и связан с моделью причин, пока все модели не имеют четности в ожидаемых свойствах с значением falseпо умолчанию.

Конфигурация

Привязка поддерживает эти свойства, определенные в коде:

Недвижимость Описание
searchConnectionName Имя параметра приложения или переменной среды, содержащей значение строка подключения. Это свойство поддерживает выражения привязок.
коллекция Имя коллекции или таблицы или индекса для поиска. Это свойство поддерживает выражения привязок.
запрос Текст семантического запроса, используемый для поиска. Это свойство поддерживает выражения привязок.
embeddingsModel Необязательно. Идентификатор модели, используемой для внедрения. Значение по умолчанию — text-embedding-3-small. Это свойство поддерживает выражения привязок.
chatModel Необязательно. Возвращает или задает имя модели большого языка для вызова ответов чата. Значение по умолчанию — gpt-3.5-turbo. Это свойство поддерживает выражения привязок.
aiConnectionName Необязательно. Возвращает или задает имя раздела конфигурации для параметров подключения службы ИИ. Для Azure OpenAI: если указано, найдите значения Endpoint и Key в этом разделе конфигурации. Если этот раздел не указан или раздел не существует, возвращается к переменным среды: AZURE_OPENAI_ENDPOINT и AZURE_OPENAI_KEY. Для проверки подлинности управляемого удостоверения, назначаемого пользователем, это свойство необходимо. Для службы OpenAI (не Azure) задайте переменную среды OPENAI_API_KEY.
systemPrompt Необязательно. Возвращает или задает системный запрос, используемый для запроса крупной языковой модели. Системный запрос добавляется с знаниями, которые извлекается в результате Queryвыполнения. Объединенный запрос отправляется в API Чата OpenAI. Это свойство поддерживает выражения привязок.
maxKnowledgeCount Необязательно. Возвращает или задает количество элементов знаний, которые необходимо внедрить в SystemPrompt.
isReasoningModel Необязательно. Возвращает или задает значение, указывающее, является ли модель завершения чата моделью причин. Этот параметр является экспериментальным и связан с моделью причин, пока все модели не имеют четности в ожидаемых свойствах с значением falseпо умолчанию.

Использование

Подробные примеры см. в разделе Примеры.