Todos os produtos
Search
Central de documentação

OpenSearch:Perguntas e respostas baseadas em texto

Última atualização: Oct 19, 2026

O recurso de perguntas e respostas baseadas em texto recupera conteúdo de uma base de conhecimento e executa consultas textuais. Há suporte para conversas de múltiplas rodadas, permitindo especificar um ID de sessão para manter o contexto da conversa. Além disso, é possível escolher diferentes modelos de linguagem grandes (LLMs) para gerar respostas e personalizar o conteúdo gerado.

Pré-requisitos

  • Obtenha uma chave de API para autenticar chamadas ao OpenSearch - LLM Intelligent Q&A Edition. Para mais informações, consulte {{XREF_0}}.

  • Obtenha um endpoint de service para realizar chamadas ao OpenSearch - LLM Intelligent Q&A Edition. Para mais informações, consulte {{XREF_1}}.

Importante

Esta operação foi projetada para chamadas no lado do servidor. Recomendamos que você não a chame diretamente de ambientes de frontend, como navegadores, páginas H5, mini programas ou aplicativos, por dois motivos. Primeiro, a autenticação da operação utiliza Authorization: Bearer <API Key>, e a chave de API é uma credencial de longo prazo. Se você a incluir no código de frontend, ela ficará exposta aos usuários finais, com risco de roubo. Segundo, a operação geralmente não oferece suporte a compartilhamento de recursos de origem cruzada (CORS) em navegadores, portanto, chamadas diretas do frontend provavelmente serão bloqueadas. Armazene a chave de API em seu próprio servidor, faça as chamadas a partir dele e retorne os resultados para o frontend.

Informações da operação

Método de solicitação

Protocolo de solicitação

Formato dos dados de solicitação

POST

HTTP

JSON

URL da solicitação

{
  "request_id": "e579a090bf99dc787d29d878b40c8367",
  "status": "FAIL",
  "errors": [
    {"code": 3005, "message": "topN[51] is not in (0, 50]"}
  ]
}
  • {host}: o endpoint do service. Você pode chamar a API pela Internet ou por uma virtual private cloud (VPC). Para mais informações, consulte {{XREF_2}}.

  • {app_group_identity}: o nome do aplicativo. Faça login no console do OpenSearch LLM-Based Conversational Search Edition e visualize o nome do aplicativo da instância correspondente na página de gerenciamento de instâncias.

Parâmetros de solicitação

Parâmetros de cabeçalho

Parâmetro

Tipo

Obrigatório

Descrição

Exemplo

Content-Type

string

Sim

Especifica o tipo de mídia do corpo da solicitação. Deve ser "application/json".

application/json

Authorization

string

Sim

Sua chave de API, prefixada com "Bearer ".

Bearer OS-d1**2a

accept

string

Não

Defina como "text/event-stream" para receber respostas em streaming usando Server-Sent Events (SSE).

text/event-stream

Parâmetros do corpo

Parâmetro

Tipo

Obrigatório

Descrição

Valor de exemplo

question

map

Sim

A pergunta de entrada.

{

"text":"user

question",

"type": "TEXT",

"session" : ""

}

question.text

string

Sim

O conteúdo textual da pergunta do usuário.

user question

question.session

string

Não

Um ID de sessão que identifica o contexto de uma conversa de múltiplas rodadas. Valores válidos:

  • Se este parâmetro não for definido ou estiver vazio, a conversa de múltiplas rodadas fica desativada.

  • Se você fornecer um valor não vazio, a conversa de múltiplas rodadas será ativada. O sistema retém conversas com o mesmo ID de sessão para manter o contexto. O histórico de conversas é mantido por até 7 dias. Use o parâmetro history_max para especificar o número de rodadas de conversa a serem retidas (até 20).

1725530408586

question.type

string

Não

O tipo da pergunta de entrada. Defina como TEXT.

TEXT

options

map

Não

Parâmetros opcionais para controlar configurações como recuperação, seleção de modelo e prompts.

options.chat

map

Não

Parâmetros para acessar um Modelo de Linguagem Grande (LLM).

options.chat.disable

boolean

Não

Especifica se o acesso ao LLM deve ser desativado.

  • false: Acessa o LLM para resumir e gerar o resultado. Este é o valor padrão.

  • true: Não acessa o LLM.

false

options.chat.stream

boolean

Não

Define se a resposta em streaming deve ser ativada.

  • true: Ativa a resposta em streaming. Este é o valor padrão.

  • false: Desativa a resposta em streaming.

true

options.chat.model

string

Não

O Modelo de Linguagem Grande (LLM) a ser utilizado. Valores válidos:

Asia Pacific SE 1 (Singapore)

  • opensearch-llama2-13b

  • opensearch-falcon-7b

  • qwen-turbo

  • qwen-plus

  • qwen-max

  • qwen2-72b-instruct

opensearch-llama2-13b

options.chat.enable_deep_search

boolean

Não

Especifica se o {{XREF_3}} deve ser ativado.

  • true: Ativa a busca profunda. Esse recurso usa raciocínio de múltiplas rodadas para sintetizar dados para a resposta final, o que pode aumentar o tempo e os recursos computacionais usados por rodada de conversa.

  • false: Desativa a busca profunda.

false

options.chat.model_generation

integer

Não

Especifica a versão do modelo a ser usada para um modelo de product personalizado. Se você não especificar esse parâmetro, o sistema usará a versão mais antiga por padrão.

20

options.chat.prompt_template

string

Não

O nome de um modelo de prompt personalizado. Se este parâmetro estiver vazio, o sistema usará seu modelo de prompt integrado por padrão.

user_defined_prompt_name

options.chat.prompt_config

object

Não

Os pares chave-valor para configurar um prompt personalizado. O parâmetro deve estar no seguinte formato:

{
  "String_key": "value",
  "Integer_key" : 1
}
{
  "attitude": "normal",
  "rule" : "detailed",
  "noanswer": "sorry",
  "language": "Chinese",
  "role": false,
  "role_name": "AI Assistant",
}

options.chat.prompt_config.attitude

string

Não

Um parâmetro para o modelo de prompt integrado que controla o tom da resposta. O valor padrão é normal.

  • normal: Um tom neutro.

  • polite: Um tom amigável e cortês.

  • patience: Um tom diplomático e paciente.

normal

options.chat.prompt_config.rule

string

Não

Controla o nível de detalhe da resposta. O valor padrão é detailed.

  • detailed: Detalhado e profissional.

  • stepbystep: Detalhado e passo a passo.

detailed

options.chat.prompt_config.noanswer

string

Não

A resposta a ser retornada quando o sistema não conseguir responder à pergunta. O valor padrão é sorry.

  • sorry: "Desculpe, não posso responder a esta pergunta com base nas informações disponíveis."

  • uncertain: "Não sei."

sorry

options.chat.prompt_config.language

string

Não

O idioma a ser usado na resposta. O valor padrão é Chinese.

  • Chinese: Chinês.

  • English: Inglês.

  • Thai: Tailandês.

  • Korean: Coreano.

Chinese

options.chat.prompt_config.role

boolean

Não

Especifica se uma persona personalizada deve ser ativada para a resposta. Se você definir como true, o sistema gera respostas com base na persona definida em role_name.

false

options.chat.prompt_config.role_name

string

Não

O nome da persona personalizada. Por exemplo: AI Assistant.

AI Assistant

options.chat.prompt_config.out_format

string

Não

O formato do conteúdo de saída. O valor padrão é text.

  • text: Texto.

  • table: Tabela.

  • list: Lista.

  • markdown: Markdown.

text

options.chat.generate_config.repetition_penalty

float

Não

Controla a penalidade por repetição em sequências de tokens gerados. Um valor maior reduz a probabilidade de repetição. Um valor de 1,0 indica nenhuma penalidade. Não há um intervalo de valores estrito.

1,01

options.chat.generate_config.top_k

integer

Não

O número de tokens de maior probabilidade a serem considerados para amostragem. Por exemplo, um valor de 50 instrui o modelo a amostrar apenas os 50 tokens com as maiores pontuações. Um valor maior aumenta a aleatoriedade, enquanto um valor menor aumenta o determinismo. O valor padrão é 0, que desativa a estratégia top-k e depende da estratégia top-p.

50

options.chat.generate_config.top_p

float

Não

O limiar de probabilidade cumulativa para amostragem de núcleo. Por exemplo, um valor de 0,8 significa que o modelo seleciona do menor conjunto possível de tokens cuja probabilidade cumulativa seja de pelo menos 0,8. Os valores válidos estão no intervalo (0, 1,0). Um valor maior aumenta a aleatoriedade, enquanto um valor menor aumenta o determinismo.

0,5

options.chat.generate_config.temperature

float

Não

Controla a aleatoriedade e a diversidade do texto gerado. Uma temperatura mais alta achata a distribuição de probabilidade dos tokens candidatos, permitindo que o modelo escolha tokens menos prováveis e tornando a saída mais diversa. Um valor mais baixo aguça a distribuição, tornando mais provável que o modelo selecione tokens de alta probabilidade e a saída seja mais determinística.

Intervalo de valores: [0, 2). Não defina este parâmetro como 0.

python version >=1.10.1

java version >= 2.5.1

0,7

options.chat.history_max

integer

Não

O número máximo de rodadas a serem retidas no histórico de uma conversa de múltiplas rodadas. O valor máximo é 20. O valor padrão é 1.

20

options.chat.link

boolean

Não

Especifica se citações de source devem ser incluídas na resposta. Valores válidos:

  • true: A resposta inclui citações de source.

  • false: A resposta não inclui citações de source. Este é o valor padrão.

A seguir, um exemplo de resposta que contém citações:

You can expand the capacity of an ECS disk either online or offline[^1^]. Online expansion does not require you to restart the instance, while offline expansion does[^1^]. To perform the expansion, go to the ECS console, select the disk, and choose Expand Disk from the Actions column. Then, select an expansion method as needed[^1^]. If you need to expand partitions and file systems, you can do so from the console[^2^]. After the disk capacity is expanded, it cannot be reduced, so plan your storage space accordingly[^3^].

Os números entre [^ e ^] correspondem aos documentos no objeto reference da resposta da API. Por exemplo, [^1^] refere-se ao primeiro documento no objeto reference.

false

options.chat.rich_text_strategy

string

Não

A estratégia de pós-processamento para a saída de um {{XREF_4}}. Se este parâmetro estiver vazio ou não for especificado, o processamento de rich text é desativado por padrão.

  • inside_response: Renderiza tags de rich text diretamente dentro do conteúdo da resposta em formato Markdown. As tabelas são inseridas como HTML dentro do Markdown.

  • extend_response: Se a resposta contiver tags de rich text, o conteúdo de cada tag é retornado separadamente no objeto rich_text_ref. Por exemplo, o conteúdo da imagem é retornado como uma URL, o conteúdo da tabela como HTML e o conteúdo do código como texto simples.

inside_response

options.chat.agent

map

Não

Especifica opções para as capacidades de uso de ferramentas do agente RAG. Quando ativado, o modelo decide se deve executar uma ferramenta com base no conteúdo disponível. Os LLMs que atualmente suportam este recurso são:

  • qwen-plus

  • qwen-max

  • qwen2-72b-instruct

options.chat.agent.think_process

boolean

Não

Especifica se o processo de pensamento do agente deve ser retornado.

true

options.chat.agent.max_think_round

integer

Não

O número máximo de rodadas de pensamento para o agente. O valor não pode exceder 20.

10

options.chat.agent.language

string

Não

O idioma para o processo de pensamento e a resposta final.

AUTO: Determina automaticamente se deve usar chinês ou inglês com base na consulta do usuário.

CN: Chinês.

EN: Inglês.

AUTO

options.chat.agent.tools

list of string

Não

As ferramentas RAG que o agente pode usar. Estão disponíveis as seguintes ferramentas:

  • knowledge_search: Executa a recuperação da base de conhecimento.

["knowledge_search"]

options.retrieve

map

Não

Especifica parâmetros que controlam o processo de recuperação.

options.retrieve.web_search.enable

boolean

Não

Define se a busca na web deve ser ativada.

  • true: Ativa a busca na web. O sistema gera a resposta com base nos dados da busca na web, o que pode aumentar o consumo de tempo e recursos.

  • false: Desativa a busca na web. Este é o valor padrão.

false

doc

map

Não

Especifica parâmetros relacionados à recuperação de documentos.

options.retrieve.doc.disable

boolean

Não

Especifica se a recuperação da base de conhecimento deve ser desativada.

  • false: Ativa a recuperação. Este é o valor padrão.

  • true: Desativa a recuperação.

false

options.retrieve.doc.filter

string

Não

Uma expressão de filtro para selecionar dados para recuperação da base de conhecimento. Se não for especificado, nenhum filtro será aplicado. Para exemplos de sintaxe, consulte {{XREF_5}}.

Campos suportados:

  • table: A tabela onde o documento está armazenado.

  • raw_pk: A chave primária do documento.

  • category: A categoria do documento.

  • score: A pontuação do documento.

  • timestamp: O carimbo de data/hora do documento.

Formato de exemplo:

"filter" : "raw_pk=\"123\""   # Retrieves data only from the document with the ID 123.
"filter" : "category=\"value1\""   # Retrieves data only from documents in the "value1" category.
"filter" : "category=\"value1\" OR category=\"value2\"" # Retrieves data from documents in the "value1" and "value2" categories.
"filter" : "score>1.0"   # Retrieves data only from documents with a score greater than 1.0.
"filter" : "timestamp>1356969600"   # Retrieves data only from documents with a timestamp after 2013-01-01.

category=\"value1\"

options.retrieve.doc.sf

float

Não

O limiar de pontuação para recuperação baseada em vetores.

  • Quando vetores esparsos estão desativados: O intervalo de valores é [0, 2,0], e o valor padrão é 1,3. Um valor menor produz resultados mais relevantes, porém em menor quantidade. Um valor maior pode recuperar resultados menos relevantes.

  • Quando vetores esparsos estão ativados: O valor padrão é 0,35. Um valor maior produz resultados mais relevantes, porém em menor quantidade. Um valor menor pode recuperar resultados menos relevantes.

0,35

options.retrieve.doc.top_n

integer

Não

O número de documentos a serem recuperados. O valor deve estar no intervalo (0, 50]. O valor padrão é 5.

5

options.retrieve.doc.formula

string

Não

Uma fórmula de classificação personalizada para documentos recuperados.

Nota

Para detalhes de sintaxe, consulte {{XREF_6}}. Os recursos de Relevância Algorítmica e Relevância Geográfica não são suportados.

-timestamp: Classifica documentos em ordem decrescente pelo campo timestamp.

options.retrieve.doc.rerank_size

integer

Não

O número de documentos a serem reclassificados quando o recurso de rerank está ativado. O valor deve estar no intervalo (0, 100]. O valor padrão é 30.

30

options.retrieve.doc.operator

string

Não

A relação entre os termos resultantes da tokenização de question.text para recuperação da base de conhecimento. Este parâmetro é eficaz apenas quando você desativa vetores esparsos.

  • AND: Todos os termos devem aparecer em um documento para que ele seja recuperado. Este é o valor padrão.

  • OR: Pelo menos um termo deve aparecer em um documento para que ele seja recuperado.

AND

options.retrieve.doc.dense_weight

float

Não

Quando vetores esparsos estão ativados, este parâmetro controla o peso do vetor denso durante a recuperação de documentos. O valor deve estar no intervalo (0,0, 1,0). O valor padrão é 0,7.

0,7

options.retrieve.entry

map

Não

Especifica parâmetros para recuperar resultados de dados de intervenção manual.

options.retrieve.entry.disable

boolean

Não

Define se a recuperação de dados de intervenção manual deve ser desativada.

  • false: Ativa a recuperação. Este é o valor padrão.

  • true: Desativa a recuperação.

false

options.retrieve.entry.sf

float

Não

O limiar de pontuação vetorial para recuperar dados de intervenção manual. O intervalo de valores é [0, 2,0], e o valor padrão é 0,3. Um valor menor recupera menos resultados, porém mais relevantes, enquanto um valor maior pode recuperar resultados menos relevantes.

0,3

options.retrieve.image

map

Não

Especifica parâmetros para recuperar resultados de imagens da base de conhecimento.

options.retrieve.image.disable

boolean

Não

Especifica se a recuperação de imagens deve ser desativada. O valor padrão é false.

  • false: Ativa a recuperação de imagens. Este é o valor padrão.

  • true: Desativa a recuperação de imagens.

false

options.retrieve.image.sf

float

Não

O limiar de pontuação para recuperação de vetores de imagem.

  • Quando vetores esparsos estão desativados: O intervalo de valores é [0, 2,0], e o valor padrão é 1,0. Um valor menor produz resultados mais relevantes, porém em menor quantidade. Um valor maior pode recuperar resultados menos relevantes.

  • Quando vetores esparsos estão ativados: O valor padrão é 0,5. Um valor maior produz resultados mais relevantes, porém em menor quantidade. Um valor menor pode recuperar resultados menos relevantes.

1,0

options.retrieve.image.dense_weight

float

Não

Quando vetores esparsos estão ativados, este parâmetro controla o peso do vetor denso durante a recuperação de imagens. O valor deve estar no intervalo (0,0, 1,0). O valor padrão é 0,7.

0,7

options.retrieve.qp

map

Não

Especifica opções para reescrita de consulta.

options.retrieve.qp.query_extend

boolean

Não

Define se a consulta do usuário deve ser expandida. O mecanismo de busca usa a consulta expandida para recuperar trechos de documentos.

  • false: Não expande a consulta. Este é o valor padrão.

  • true: Expande a consulta. Esta opção requer uma chamada adicional ao LLM, o que aumenta a latência da resposta. Não ative isso para aplicações sensíveis à latência.

false

options.retrieve.qp.query_extend_num

integer

Não

Quando a expansão de consulta está ativada, este parâmetro especifica o número máximo de consultas adicionais a serem geradas. O valor padrão é 5.

5

options.retrieve.rerank

map

Não

Especifica opções para reclassificar documentos recuperados.

options.retrieve.rerank.enable

boolean

Não

Especifica se um modelo deve ser usado para reclassificar os resultados da busca por relevância. Valores válidos:

  • true: Reclassifica os resultados usando um modelo.

  • false: Não reclassifica os resultados.

  • O padrão é false se options.retrieve.doc.formula for especificado; caso contrário, é true.

true

options.retrieve.rerank.model

string

Não

O nome do modelo grande a ser usado para reclassificação.

  • ops-bge-reranker-larger: O modelo bge-reranker. Este é o padrão.

  • ops-text-reranker-001: Um modelo de reranker proprietário.

ops-bge-reranker-larger

options.retrieve.return_hits

boolean

Não

Especifica se os resultados da recuperação de documentos devem ser retornados, que correspondem ao objeto search_hits na resposta.

false

Corpo da solicitação

{
  "request_id": "e579a090bf99dc787d29d878b40c8367",
  "status": "FAIL",
  "errors": [
    {"code": 3005, "message": "topN[51] is not in (0, 50]"}
  ]
}

Parâmetros principais:

  • Use question.session para ativar o contexto de conversa de múltiplas rodadas.

  • Defina options.chat.disable como true para ignorar o LLM e retornar resultados de recuperação.

  • Use options.retrieve.doc.top_n para especificar o número de documentos recuperados. O padrão é 5.

  • Defina options.retrieve.return_hits como true para retornar o conteúdo detalhado de search_hits.

Parâmetros de resposta

Parâmetro

Tipo

Descrição

request_id

string

Identificador único da solicitação. Inclua este valor nas solicitações de suporte.

status

string

O status de processamento da solicitação.

  • OK: A solicitação foi bem-sucedida.

  • FAIL: A solicitação falhou.

latency

float

Tempo de processamento do servidor em milissegundos. Retornado apenas quando a solicitação é bem-sucedida.

id

integer

A chave primária.

title

string

Título do documento.

category

string

Nome da categoria.

url

string

URL do documento.

answer

string

A resposta gerada.

type

string

Tipo de resultado.

scores

array

Pontuações de relevância do documento.

event

string

O tipo de evento de streaming.

Uma rodada de pensamento inclui eventos THINK, ACTION e ANSWER, embora THINK seja opcional. Esses eventos indicam o processo de pensamento do modelo (THINK), a ação executada (ACTION) e a conclusão da rodada atual (ANSWER). SUMMARY fornece a resposta final e é retornado apenas uma vez.

event_status

string

Indica se o evento está completo.

PROCESSING: O evento está em andamento.

FINISHED: O evento está concluído.

code

string

O código de erro. Retornado apenas quando ocorre um erro.

message

string

A mensagem de erro. Retornada apenas quando ocorre um erro.

Exemplo de corpo de resposta

Resposta bem-sucedida

{
  "request_id": "e579a090bf99dc787d29d878b40c8367",
  "status": "FAIL",
  "errors": [
    {"code": 3005, "message": "topN[51] is not in (0, 50]"}
  ]
}

Resposta de erro

{
  "request_id": "e579a090bf99dc787d29d878b40c8367",
  "status": "FAIL",
  "errors": [
    {"code": 3005, "message": "topN[51] is not in (0, 50]"}
  ]
}

Gerencie API keys

Obter service endpoints

Obter service endpoint