Referência da API REST da Procurize.AI#

Acesse programaticamente sua base de conhecimento – documentos, questionários, RAG e relatórios – usando seu token de API.

Aplica‑se a: API Procurize.AI v1
Autenticação: chave de API via cabeçalho X-API-Key (veja Tokens de API para gerenciamento de tokens)
URL Base: https://api.procurize.com

Visão geral#

A API REST da Procurize.AI fornece acesso programático às principais funcionalidades da plataforma. Ela permite que você integre a Procurize.AI aos seus sistemas internos, automatize a gestão da base de conhecimento e crie fluxos de trabalho personalizados.

Módulos suportados (autenticados por token):

Autenticação#

Todos os endpoints autenticados exigem um token de API passado no cabeçalho da requisição.

CabeçalhoValor
X-API-Key<SEU_TOKEN_API>

Exemplo:

curl -X GET "https://api.procurize.com/v1/..." \
  -H "X-API-Key: seu-token-api-aqui"

💡 Tokens estão vinculados à sua organização – você não precisa especificar um ID de organização na requisição.

URL Base#

Todos os endpoints da API REST são servidos em:

https://api.procurize.com

Tratamento de Erros#

A API usa códigos de status HTTP padrão.

CódigoSignificado
200 OKRequisição bem‑sucedida
201 CreatedRecurso criado com sucesso
204 No ContentRequisição bem‑sucedida, sem corpo de resposta
400 Bad RequestParâmetros inválidos ou requisição malformada
401 UnauthorizedToken de API ausente ou inválido
403 ForbiddenToken não tem permissão para esta ação
404 Not FoundRecurso não existe
500 Internal Server ErrorErro interno do servidor inesperado

Respostas de erro incluem um código de erro legível por máquina e uma mensagem legível por humanos.

Referência de Módulos#

RagArticle#

GET /questionnaire/rag/articles/summary#

Resumo: Resumo para a página inicial

Parâmetros:

NomeEmTipoObrigatórioDescrição
projquerystring (uuid)NãoID do projeto.

Resposta (200):

{
  "active": 5
}

GET /questionnaire/rag/articles/total#

Resumo: Número de artigos

Parâmetros:

NomeEmTipoObrigatórioDescrição
qquerystringNãoFiltrar por nome ou código do artigo.
statequeryarrayNãoFiltrar por estados.
projectqueryarrayNãoFiltrar por projetos.
typequeryarrayNãoFiltrar por tipos de documento.

Resposta (200):

42

GET /questionnaire/rag/articles/list#

Resumo: Obter lista de artigos

Parâmetros:

NomeEmTipoObrigatórioDescrição
qquerystringNãoFiltrar por nome ou código do artigo.
statequeryarrayNãoFiltrar por estados.
projectqueryarrayNãoFiltrar por projetos.
typequeryarrayNãoFiltrar por tipos de documento.
squerystringNãoCampo de ordenação.
ascquerybooleanNãoOrdenação ascendente.
psqueryinteger (int32)NãoTamanho da página.
pqueryinteger (int32)NãoNúmero da página (base 1).

Resposta (200):

{
  "paging": {
    "pageNumber": 1,
    "pageSize": 10,
    "total": 42,
    "totalPages": 5
  },
  "items": [
    {
      "code": "ART-001",
      "org": "00000000-0000-0000-0000-000000000000",
      "id": "00000000-0000-0000-0000-000000000000",
      "name": "Article Title",
      "description": "Article description",
      "documentTypes": [
        {
          "id": "00000000-0000-0000-0000-000000000000",
          "name": "Type Name",
          "plural": "Type Names",
          "count": 5
        }
      ],
      "size": 150,
      "revision": {
        "id": "00000000-0000-0000-0000-000000000000",
        "collectionId": "00000000-0000-0000-0000-000000000000",
        "rev": 3,
        "date": "2025-01-15T10:30:00Z",
        "author": {
          "id": "user123",
          "name": "John Doe",
          "email": "john.doe@example.com",
          "login": "johndoe",
          "ra": true
        },
        "authorName": "John Doe",
        "analysisSummary": {
          "id": "00000000-0000-0000-0000-000000000000",
          "initiator": {
            "id": "user123",
            "name": "John Doe",
            "email": "john.doe@example.com",
            "login": "johndoe",
            "ra": true
          },
          "created": "2025-01-15T10:30:00Z",
          "state": "Completed",
          "stateDate": "2025-01-15T10:35:00Z",
          "stateDetails": "Analysis completed successfully",
          "operationId": "op-12345"
        }
      },
      "type": "Article",
      "state": "Active",
      "projects": [
        "00000000-0000-0000-0000-000000000000"
      ],
      "items": [
        "00000000-0000-0000-0000-000000000000"
      ],
      "isShared": false
    }
  ]
}

POST /questionnaire/rag/file-to-md#

Resumo: Retorna conteúdo Markdown a partir do arquivo

Corpo da Requisição (multipart/form-data):

{
  "url": "https://example.com/file.pdf",
  "file": "binary"
}

Resposta (200):

"Markdown content from file"

POST /questionnaire/rag/article/create#

Resumo: Criar um artigo

Corpo da Requisição (multipart/form-data):

{
  "code": "ART-001",
  "name": "Article Title",
  "description": "Article description",
  "content": "# Article Content\n\nThis is the article content.",
  "url": "https://example.com/file.pdf",
  "file": "binary"
}

Resposta (200):

{
  "code": "ART-001",
  "org": "00000000-0000-0000-0000-000000000000",
  "id": "00000000-0000-0000-0000-000000000000",
  "name": "Article Title",
  "description": "Article description",
  "documentTypes": null,
  "size": 150,
  "revision": null,
  "type": "Article",
  "state": "Active",
  "projects": null,
  "items": null,
  "isShared": false
}

GET /questionnaire/rag/article/check#

Resumo: Verificar existência do artigo.

Parâmetros:

NomeEmTipoObrigatórioDescrição
codequerystringSimCódigo do artigo.

Resposta (200):

true

GET /questionnaire/rag/article-info#

Resumo: Obter informações do artigo por código.

Parâmetros:

NomeEmTipoObrigatórioDescrição
codequerystringSimCódigo do artigo.

Resposta (200):

{
  "code": "ART-001",
  "org": "00000000-0000-0000-0000-000000000000",
  "id": "00000000-0000-0000-0000-000000000000",
  "name": "Article Title",
  "description": "Article description",
  "documentTypes": null,
  "size": 150,
  "revision": null,
  "type": "Article",
  "state": "Active",
  "projects": null,
  "items": null,
  "isShared": false
}

GET /questionnaire/rag/article#

Resumo: Obter conteúdo do artigo por código

Parâmetros:

NomeEmTipoObrigatórioDescrição
codequerystringSimCódigo do artigo.
formatquerystringNãoSe true, retorna conteúdo HTML no corpo da resposta. Caso contrário, retorna o conteúdo em formato Markdown.
splitquerybooleanNãoSe true, retorna o conteúdo separado por elementos RAG.
cssquerybooleanNãoSe true, retorna o conteúdo HTML/PDF com CSS.

Resposta (200):

"# Article Title\n\nThis is the article content in Markdown format."

POST /questionnaire/rag/article#

Resumo: Atualizar metadados do artigo

Corpo da Requisição:

{
  "code": "ART-001",
  "name": "Updated Article Title",
  "description": "Updated description",
  "projects": [
    "00000000-0000-0000-0000-000000000000"
  ],
  "documentTypes": [
    {
      "id": "00000000-0000-0000-0000-000000000000",
      "name": "Type Name",
      "plural": "Type Names"
    }
  ],
  "isShared": true,
  "state": "Active"
}

Resposta (200):

{}

DELETE /questionnaire/rag/article#

Resumo: Excluir artigo

Parâmetros:

NomeEmTipoObrigatórioDescrição
codequerystringSimCódigo do artigo.

GET /questionnaire/rag/article/pdf#

Resumo: Obter artigo como PDF por código

Parâmetros:

NomeEmTipoObrigatórioDescrição
codequerystringSimCódigo do artigo.

Resposta (200):

(pdf binary)

GET /questionnaire/rag/article/content#

Resumo: Obter conteúdo do artigo

Parâmetros:

NomeEmTipoObrigatórioDescrição
codequerystringSimCódigo do artigo.

Resposta (200):

{
  "content": "# Article Title\n\nContent here."
}

POST /questionnaire/rag/article/content#

Resumo: Atualizar conteúdo do artigo

Corpo da Requisição (multipart/form-data):

{
  "code": "ART-001",
  "content": "# Updated Content",
  "file": "binary"
}

POST /questionnaire/rag/plural#

Resumo: Obter forma plural do substantivo

Parâmetros:

NomeEmTipoObrigatórioDescrição
nounquerystringNãoSubstantivo a ser pluralizado.

Resposta (200):

{
  "plural": "Articles"
}

POST /questionnaire/rag/article/find-types#

Resumo: Analisar artigo com IA e retornar seus tipos

Corpo da Requisição (multipart/form-data):

{
  "code": "ART-001",
  "content": "# Article Content"
}

Resposta (200):

[
  {
    "plural": "Types"
  }
]

POST /questionnaire/rag/article/format-with-ai#

Resumo: Formatar conteúdo do artigo com IA

Corpo da Requisição (multipart/form-data):

{
  "code": "ART-001",
  "content": "# Article Content"
}

Resposta (200):

{
  "formattedContent": "# Formatted Article Content"
}

POST /questionnaire/rag/article/improve-on-suggestions#

Resumo: Melhorar o documento com base nas sugestões

Corpo da Requisição (multipart/form-data):

{
  "suggestions": [
    {
      "sectionTitle": "Introduction",
      "suggestion": "Add more details here."
    }
  ],
  "code": "ART-001",
  "content": "# Article Content"
}

Resposta (200):

{
  "improvedContent": "# Improved Content"
}

GET /questionnaire/rag/article/parts#

Resumo: Retorna lista de partes do artigo

Parâmetros:

NomeEmTipoObrigatórioDescrição
idqueryarraySimLista de partes do artigo.

Resposta (200):

[
  {
    "id": "00000000-0000-0000-0000-000000000000",
    "code": "part-1",
    "title": "Introduction",
    "orderNumber": 1,
    "content": "Introduction content."
  }
]

GET /questionnaire/rag/article/revisions#

Resumo: Retorna lista de revisões do artigo

Parâmetros:

NomeEmTipoObrigatórioDescrição
codequerystringSimCódigo do artigo.

Resposta (200):

[
  {
    "id": "00000000-0000-0000-0000-000000000000",
    "collectionId": "00000000-0000-0000-0000-000000000000",
    "rev": 1,
    "date": "2025-01-15T10:30:00Z",
    "author": {
      "id": "user123",
      "name": "John Doe",
      "email": "john.doe@example.com",
      "login": "johndoe",
      "ra": true
    },
    "authorName": "John Doe",
    "analysisSummary": {
      "id": "00000000-0000-0000-0000-000000000000",
      "initiator": {
        "id": "user123",
        "name": "John Doe",
        "email": "john.doe@example.com",
        "login": "johndoe",
        "ra": true
      },
      "created": "2025-01-15T10:30:00Z",
      "state": "Completed",
      "stateDate": "2025-01-15T10:35:00Z",
      "stateDetails": "Analysis completed",
      "operationId": "op-12345"
    }
  }
]

GET /questionnaire/rag/article/revisions/info/{id}#

Resumo: Obter informações da revisão do artigo

Parâmetros:

NomeEmTipoObrigatórioDescrição
idpathstring (uuid)SimID da revisão.

Resposta (200):

{
  "id": "00000000-0000-0000-0000-000000000000",
  "collectionId": "00000000-0000-0000-0000-000000000000",
  "rev": 1,
  "date": "2025-01-15T10:30:00Z",
  "author": {
    "id": "user123",
    "name": "John Doe",
    "email": "john.doe@example.com",
    "login": "johndoe",
    "ra": true
  },
  "authorName": "John Doe",
  "analysisSummary": {
    "id": "00000000-0000-0000-0000-000000000000",
    "initiator": {
      "id": "user123",
      "name": "John Doe",
      "email": "john.doe@example.com",
      "login": "johndoe",
      "ra": true
    },
    "created": "2025-01-15T10:30:00Z",
    "state": "Completed",
    "stateDate": "2025-01-15T10:35:00Z",
    "stateDetails": "Analysis completed",
    "operationId": "op-12345"
  }
}

GET /questionnaire/rag/article/revisions/{id}#

Resumo: Obter conteúdo da revisão do artigo

Parâmetros:

NomeEmTipoObrigatórioDescrição
idpathstring (uuid)SimID da revisão.

Resposta (200):

"# Article Revision Content\n\nPrevious version."

GET /questionnaire/rag/article/analyze#

Resumo: Analisar conteúdo do artigo com IA

Parâmetros:

NomeEmTipoObrigatórioDescrição
codequerystringSimCódigo do artigo.
revqueryinteger (int32)NãoNúmero da revisão.
forcequerybooleanNãoForçar criação de nova análise e excluir resultado de análise incompleto anterior, se existir.

Resposta (200):

{
  "id": "00000000-0000-0000-0000-000000000000",
  "initiator": {
    "id": "user123",
    "name": "John Doe",
    "email": "john.doe@example.com",
    "login": "johndoe",
    "ra": true
  },
  "created": "2025-01-15T10:30:00Z",
  "state": "Completed",
  "stateDate": "2025-01-15T10:35:00Z",
  "stateDetails": "Analysis completed",
  "operationId": "op-12345"
}

GET /questionnaire/rag/article/analyze/{id}#

Resumo: Obter resultado da análise do artigo

Parâmetros:

NomeEmTipoObrigatórioDescrição
idpathstring (uuid)SimID da análise.

Resposta (200):

{
  "id": "00000000-0000-0000-0000-000000000000",
  "initiator": {
    "id": "user123",
    "name": "John Doe",
    "email": "john.doe@example.com",
    "login": "johndoe",
    "ra": true
  },
  "created": "2025-01-15T10:30:00Z",
  "state": "Completed",
  "stateDate": "2025-01-15T10:35:00Z",
  "stateDetails": "Analysis completed",
  "operationId": "op-12345",
  "fragments": [
    "fragment-1",
    "fragment-2"
  ],
  "ownInconcies": "Own inconsistencies found",
  "ragInconcies": "RAG inconsistencies found",
  "proposals": "Improvement proposals"
}

GET /questionnaire/rag/messages/list#

Resumo: Listar todas as mensagens

Parâmetros:

NomeEmTipoObrigatórioDescrição
idquerystring (uuid)SimID da Coleção RAG.
itemquerystring (uuid)NãoID do Item RAG.
messagequerystring (uuid)NãoID da Mensagem.
ascquerybooleanNãoOrdenação ascendente.
psqueryinteger (int32)NãoTamanho da página.
pqueryinteger (int32)NãoNúmero da página (base 1).

Resposta (200):

{
  "paging": {
    "pageNumber": 1,
    "pageSize": 10,
    "total": 5,
    "totalPages": 1
  },
  "items": [
    {
      "id": "00000000-0000-0000-0000-000000000000",
      "replyTo": null,
      "questionnaire": null,
      "section": null,
      "question": null,
      "ragCollection": "00000000-0000-0000-0000-000000000000",
      "ragItem": "00000000-0000-0000-0000-000000000000",
      "targetId": "00000000-0000-0000-0000-000000000000",
      "targetType": "Question",
      "targetNum": 1,
      "author": {
        "id": "user123",
        "name": "John Doe",
        "email": "john.doe@example.com",
        "login": "johndoe",
        "ra": true
      },
      "text": "Message content",
      "created": "2025-01-15T10:30:00Z",
      "updated": "2025-01-15T10:30:00Z",
      "replies": 0
    }
  ]
}

POST /questionnaire/rag/messages/add#

Resumo: Adicionar nova mensagem

Parâmetros:

NomeEmTipoObrigatórioDescrição
idquerystring (uuid)SimID da Coleção RAG.
itemquerystring (uuid)NãoID do Item RAG.
messagequerystring (uuid)NãoID da Mensagem a responder.

Corpo da Requisição:

{
  "text": "New message content"
}

Resposta (200):

{
  "id": "00000000-0000-0000-0000-000000000000",
  "replyTo": null,
  "questionnaire": null,
  "section": null,
  "question": null,
  "ragCollection": "00000000-0000-0000-0000-000000000000",
  "ragItem": "00000000-0000-0000-0000-000000000000",
  "targetId": "00000000-0000-0000-0000-000000000000",
  "targetType": "Question",
  "targetNum": 1,
  "author": {
    "id": "user123",
    "name": "John Doe",
    "email": "john.doe@example.com",
    "login": "johndoe",
    "ra": true
  },
  "text": "New message content",
  "created": "2025-01-15T10:30:00Z",
  "updated": "2025-01-15T10:30:00Z",
  "replies": 0
}

POST /questionnaire/rag/message#

Resumo: Atualizar mensagem existente

Parâmetros:

NomeEmTipoObrigatórioDescrição
cquerystring (uuid)SimID da Coleção RAG.
idquerystring (uuid)SimID da Mensagem.

Corpo da Requisição:

{
  "text": "Updated message content"
}

Resposta (200):

{
  "id": "00000000-0000-0000-0000-000000000000",
  "replyTo": null,
  "questionnaire": null,
  "section": null,
  "question": null,
  "ragCollection": "00000000-0000-0000-0000-000000000000",
  "ragItem": "00000000-0000-0000-0000-000000000000",
  "targetId": "00000000-0000-0000-0000-000000000000",
  "targetType": "Question",
  "targetNum": 1,
  "author": {
    "id": "user123",
    "name": "John Doe",
    "email": "john.doe@example.com",
    "login": "johndoe",
    "ra": true
  },
  "text": "Updated message content",
  "created": "2025-01-15T10:30:00Z",
  "updated": "2025-01-15T10:45:00Z",
  "replies": 0
}

DELETE /questionnaire/rag/message#

Resumo: Excluir mensagem existente

Parâmetros:

NomeEmTipoObrigatórioDescrição
idquerystring (uuid)SimID da Mensagem.

Resposta (200):

{}

RagFaq#

GET /questionnaire/rag/faq-collections/summary#

Resumo: Resumo para a página inicial

Parâmetros:

NomeEmTipoObrigatórioDescrição
projquerystring (uuid)NãoID do projeto.

Resposta (200):

{
  "active": 3
}

GET /questionnaire/rag/faq-collections/total#

Resumo: Número de coleções de FAQ.

Parâmetros:

NomeEmTipoObrigatórioDescrição
qquerystringNãoFiltrar por nome ou código da coleção.
statequeryarrayNãoFiltrar por estados.
projectqueryarrayNãoFiltrar por projetos.

Resposta (200):

3

GET /questionnaire/rag/faq-collections/list#

Resumo: Obter lista de coleções de FAQ.

Parâmetros:

NomeEmTipoObrigatórioDescrição
qquerystringNãoFiltrar por nome ou código da coleção.
statequeryarrayNãoFiltrar por estados.
projectqueryarrayNãoFiltrar por projetos.
squerystringNãoCampo de ordenação.
ascquerybooleanNãoOrdenação ascendente.
psqueryinteger (int32)NãoTamanho da página.
pqueryinteger (int32)NãoNúmero da página (base 1).

Resposta (200):

{
  "paging": {
    "pageNumber": 1,
    "pageSize": 10,
    "total": 3,
    "totalPages": 1
  },
  "items": [
    {
      "code": "FAQ-001",
      "org": "00000000-0000-0000-0000-000000000000",
      "id": "00000000-0000-0000-0000-000000000000",
      "name": "FAQ Collection",
      "description": "FAQ collection description",
      "documentTypes": null,
      "size": 5,
      "revision": null,
      "type": "Faq",
      "state": "Active",
      "projects": null,
      "items": null,
      "isShared": false
    }
  ]
}

GET /questionnaire/rag/faq-collections/find-items#

Resumo: Encontrar itens de FAQ.

Parâmetros:

NomeEmTipoObrigatórioDescrição
qquerystringSimFiltrar por pergunta.
projectquerystring (uuid)NãoFiltrar por projeto.
psqueryinteger (int32)NãoTamanho da página.
pqueryinteger (int32)NãoNúmero da página (base 1).

Resposta (200):

{
  "paging": {
    "pageNumber": 1,
    "pageSize": 10,
    "total": 5,
    "totalPages": 1
  },
  "items": [
    {
      "index": 0,
      "question": "What is this product?",
      "answer": "This is a great product.",
      "comment": "Product FAQ",
      "state": "Active"
    }
  ]
}

POST /questionnaire/rag/faq-collection/create#

Resumo: Criar nova coleção de FAQ.

Corpo da Requisição (multipart/form-data):

{
  "code": "FAQ-001",
  "name": "FAQ Collection",
  "description": "FAQ collection description",
  "content": "Content here",
  "file": "binary"
}

Resposta (200):

{
  "code": "FAQ-001",
  "id": "00000000-0000-0000-0000-000000000000",
  "name": "FAQ Collection",
  "description": "FAQ collection description",
  "documentTypes": null,
  "size": 5,
  "revision": null,
  "type": "Faq",
  "state": "Active",
  "projects": null,
  "items": null,
  "isShared": false
}

POST /questionnaire/rag/faq-collection#

Resumo: Atualizar metadados da coleção de FAQ.

Corpo da Requisição:

{
  "code": "FAQ-001",
  "name": "Updated FAQ Collection",
  "description": "Updated description",
  "projects": null,
  "documentTypes": null,
  "isShared": false,
  "state": "Active"
}

DELETE /questionnaire/rag/faq-collection#

Resumo: Excluir coleção de FAQ.

Parâmetros:

NomeEmTipoObrigatórioDescrição
codequerystringSimCódigo da coleção.

GET /questionnaire/rag/faq-collection#

Resumo: Obter coleção de FAQ.

Parâmetros:

NomeEmTipoObrigatórioDescrição
codequerystringSimCódigo da coleção.

Resposta (200):

{
  "code": "FAQ-001",
  "org": "00000000-0000-0000-0000-000000000000",
  "id": "00000000-0000-0000-0000-000000000000",
  "name": "FAQ Collection",
  "description": "FAQ collection description",
  "documentTypes": null,
  "size": 5,
  "revision": null,
  "type": "Faq",
  "state": "Active",
  "projects": null,
  "items": null,
  "isShared": false
}

GET /questionnaire/rag/faq-collection/check#

Resumo: Verificar existência da coleção de FAQ.

Parâmetros:

NomeEmTipoObrigatórioDescrição
codequerystringSimCódigo da coleção.

Resposta (200):

true

GET /questionnaire/rag/faq-collection/items-total#

Resumo: Número de itens de FAQ.

Parâmetros:

NomeEmTipoObrigatórioDescrição
codequerystringSimCódigo da coleção.
qquerystringNãoFiltrar por conteúdo do item de FAQ.

Corpo da Requisição:

["Active", "Default"]

Resposta (200):

5

GET /questionnaire/rag/faq-collection/items#

Resumo: Obter lista de itens de FAQ.

Parâmetros:

NomeEmTipoObrigatórioDescrição
codequerystringSimCódigo da coleção.
qquerystringNãoFiltrar por conteúdo do item de FAQ.
statequeryarrayNãoFiltrar por estados.
squerystringNãoCampo de ordenação.
ascquerybooleanNãoOrdenação ascendente.
psqueryinteger (int32)NãoTamanho da página.
pqueryinteger (int32)NãoNúmero da página (base 1).

Resposta (200):

{
  "paging": {
    "pageNumber": 1,
    "pageSize": 10,
    "total": 5,
    "totalPages": 1
  },
  "items": [
    {
      "index": 0,
      "question": "What is this product?",
      "answer": "This is a great product.",
      "comment": "Product FAQ",
      "state": "Active"
    }
  ]
}

POST /questionnaire/rag/faq-collection/item/create#

Resumo: Criar novo item de FAQ.

Corpo da Requisição:

{
  "code": "FAQ-001",
  "index": 0,
  "question": "What is this product?",
  "answer": "This is a great product.",
  "comment": "Product FAQ",
  "state": "Active"
}

Resposta (200):

{
  "index": 0,
  "question": "What is this product?",
  "answer": "This is a great product.",
  "comment": "Product FAQ",
  "state": "Active"
}

GET /questionnaire/rag/faq-collection/item#

Resumo: Obter item de FAQ.

Parâmetros:

NomeEmTipoObrigatórioDescrição
codequerystringSimCódigo da coleção.
indexqueryinteger (int32)SimÍndice (base zero) do item de FAQ na coleção.

Resposta (200):

{
  "index": 0,
  "question": "What is this product?",
  "answer": "This is a great product.",
  "comment": "Product FAQ",
  "state": "Active"
}

POST /questionnaire/rag/faq-collection/item#

Resumo: Atualizar item de FAQ.

Corpo da Requisição:

{
  "code": "FAQ-001",
  "index": 0,
  "newIndex": 1,
  "question": "Updated question?",
  "answer": "Updated answer.",
  "comment": "Updated comment",
  "state": "Active"
}

DELETE /questionnaire/rag/faq-collection/item#

Resumo: Excluir item de FAQ.

Parâmetros:

NomeEmTipoObrigatórioDescrição
codequerystringSimCódigo da coleção.
indexqueryinteger (int32)SimÍndice (base zero) do item de FAQ na coleção.

RagQuery#

POST /questionnaire/rag/query#

Resumo: Executar consulta na Base de Conhecimento RAG

Corpo da Requisição:

{
  "project": "00000000-0000-0000-0000-000000000000",
  "excludeCollections": [
    "00000000-0000-0000-0000-000000000000"
  ],
  "question": "What is this product?",
  "yourCompanyName": "Acme Corp",
  "yourCompanyAlias": "Acme",
  "customerName": "John Doe",
  "options": [
    "option1",
    "option2"
  ],
  "multiselect": false,
  "nArticles": 5,
  "nFaqs": 3,
  "threshold": 0.5,
  "debug": false,
  "withJustification": true,
  "withConfidenceLevel": true,
  "withFragments": true,
  "nAttempts": 3
}

Resposta (200):

{
  "attempt": 1,
  "preparedQuery": {
    "original": "What is this product?",
    "enhanced": "What is this product and its features?"
  },
  "ragItems": [
    {
      "id": "00000000-0000-0000-0000-000000000000",
      "distance": 0.25
    }
  ],
  "question": "What is this product?",
  "generalInstructions": "Based on the knowledge base, here is the answer:",
  "text": "This product is a great solution for your needs.",
  "explanation": "The answer was found in multiple sources with high confidence."
}

POST /questionnaire/rag/query-stream#

Resumo: Executar consulta na Base de Conhecimento RAG (stream)

Corpo da Requisição:

{
  "project": "00000000-0000-0000-0000-000000000000",
  "excludeCollections": [
    "00000000-0000-0000-0000-000000000000"
  ],
  "question": "What is this product?",
  "yourCompanyName": "Acme Corp",
  "yourCompanyAlias": "Acme",
  "customerName": "John Doe",
  "options": [
    "option1",
    "option2"
  ],
  "multiselect": false,
  "nArticles": 5,
  "nFaqs": 3,
  "threshold": 0.5,
  "debug": false,
  "withJustification": true,
  "withConfidenceLevel": true,
  "withFragments": true,
  "nAttempts": 3
}

Resposta (200):

[
  {
    "text": "This product is a great solution",
    "fragments": [
      {
        "id": "00000000-0000-0000-0000-000000000000",
        "part": 1,
        "distance": 0.25,
        "type": "Article",
        "code": "ART-001",
        "title": "Product Title",
        "fragment": "Product content fragment"
      }
    ]
  },
  {
    "text": " for your needs.",
    "fragments": []
  }
]

POST /questionnaire/rag/query-fragments#

Resumo: Executar consulta na Base de Conhecimento RAG (fragmentos)

Corpo da Requisição:

{
  "project": "00000000-0000-0000-0000-000000000000",
  "exclude_documents": [
    "00000000-0000-0000-0000-000000000000"
  ],
  "query": "What is this product?",
  "top_k": 5,
  "similarity_threshold": 0.5,
  "prepare_query": true
}

Resposta (200):

{
  "results": [
    {
      "document_id": "00000000-0000-0000-0000-000000000000",
      "document_code": "ART-001",
      "document_title": "Product Title",
      "revision": 3,
      "chunk_index": 0,
      "content": "Product content fragment",
      "metadata": {
        "author": "John Doe",
        "created_at": "2025-01-15T10:30:00Z",
        "last_updated_at": "2025-01-15T10:35:00Z",
        "doc_categories": [
          "Product",
          "Information"
        ]
      },
      "similarity_score": 0.85
    }
  ]
}

Artigos Relacionados#

para o topo
Selecionar idioma