Referencia de la API REST de Procurize.AI#

Accede programáticamente a tu base de conocimientos – documentos, cuestionarios, RAG y reportes – usando tu token de API.

Aplica a: API de Procurize.AI v1
Autenticación: clave API mediante el encabezado X-API-Key (consulta Tokens de API para la gestión de tokens)
URL base: https://api.procurize.com

Visión general#

La API REST de Procurize.AI brinda acceso programático a las funciones clave de la plataforma. Permite integrar Procurize.AI con tus sistemas internos, automatizar la gestión de la base de conocimientos y crear flujos de trabajo personalizados.

Módulos soportados (autenticados con token):

Autenticación#

Todos los endpoints autenticados requieren un token de API pasado en el encabezado de la solicitud.

EncabezadoValor
X-API-Key<TU_TOKEN_API>

Ejemplo:

curl -X GET "https://api.procurize.com/v1/..." \
  -H "X-API-Key: tu-token-api-aquí"

💡 Los tokens están vinculados a tu organización – no necesitas especificar un ID de organización en la solicitud .

URL base#

Todos los endpoints de la API REST se sirven bajo:

https://api.procurize.com

Manejo de errores#

La API usa códigos de estado HTTP estándar.

CódigoSignificado
200 OKSolicitud exitosa
201 CreatedRecurso creado exitosamente
204 No ContentSolicitud exitosa, sin cuerpo de respuesta
400 Bad RequestParámetros inválidos o solicitud malformada
401 UnauthorizedToken de API faltante o inválido
403 ForbiddenEl token no tiene permiso para esta acción
404 Not FoundRecurso no existe
500 Internal Server ErrorError interno del servidor

Las respuestas de error incluyen un código de error legible por máquina y un mensaje legible por humanos.

Referencia de módulos#

RagArticle#

GET /questionnaire/rag/articles/summary#

Resumen: Resumen para la página principal

Parámetros:

NombreEnTipoRequeridoDescripción
projquerystring (uuid)NoID del proyecto.

Respuesta (200):

{
  "active": 5
}

GET /questionnaire/rag/articles/total#

Resumen: Número de artículos

Parámetros:

NombreEnTipoRequeridoDescripción
qquerystringNoFiltrar por nombre o código del artículo.
statequeryarrayNoFiltrar por estados.
projectqueryarrayNoFiltrar por proyectos.
typequeryarrayNoFiltrar por tipos de documento.

Respuesta (200):

42

GET /questionnaire/rag/articles/list#

Resumen: Obtener lista de artículos

Parámetros:

NombreEnTipoRequeridoDescripción
qquerystringNoFiltrar por nombre o código del artículo.
statequeryarrayNoFiltrar por estados.
projectqueryarrayNoFiltrar por proyectos.
typequeryarrayNoFiltrar por tipos de documento.
squerystringNoCampo de ordenación.
ascquerybooleanNoOrden ascendente.
psqueryinteger (int32)NoTamaño de página.
pqueryinteger (int32)NoNúmero de página (iniciado en 1).

Respuesta (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#

Resumen: Devuelve contenido Markdown del archivo

Cuerpo de la solicitud (multipart/form-data):

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

Respuesta (200):

"Markdown content from file"

POST /questionnaire/rag/article/create#

Resumen: Crear un artículo

Cuerpo de la solicitud (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"
}

Respuesta (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#

Resumen: Verificar existencia del artículo.

Parámetros:

NombreEnTipoRequeridoDescripción
codequerystringCódigo del artículo.

Respuesta (200):

true

GET /questionnaire/rag/article-info#

Resumen: Obtener información del artículo por código.

Parámetros:

NombreEnTipoRequeridoDescripción
codequerystringCódigo del artículo.

Respuesta (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#

Resumen: Obtener contenido del artículo por código

Parámetros:

NombreEnTipoRequeridoDescripción
codequerystringCódigo del artículo.
formatquerystringNoSi es true, devuelve contenido HTML en el cuerpo de la respuesta. De lo contrario devuelve el contenido del artículo en formato Markdown.
splitquerybooleanNoSi es true, devuelve el contenido separado por elementos RAG.
cssquerybooleanNoSi es true, devuelve el contenido HTML/PDF con CSS.

Respuesta (200):

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

POST /questionnaire/rag/article#

Resumen: Actualizar metadatos del artículo

Cuerpo de la solicitud:

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

Respuesta (200):

{}

DELETE /questionnaire/rag/article#

Resumen: Eliminar artículo

Parámetros:

NombreEnTipoRequeridoDescripción
codequerystringCódigo del artículo.

GET /questionnaire/rag/article/pdf#

Resumen: Obtener artículo como PDF por código

Parámetros:

NombreEnTipoRequeridoDescripción
codequerystringCódigo del artículo.

Respuesta (200):

(pdf binary)

GET /questionnaire/rag/article/content#

Resumen: Obtener contenido del artículo

Parámetros:

NombreEnTipoRequeridoDescripción
codequerystringCódigo del artículo.

Respuesta (200):

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

POST /questionnaire/rag/article/content#

Resumen: Actualizar contenido del artículo

Cuerpo de la solicitud (multipart/form-data):

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

POST /questionnaire/rag/plural#

Resumen: Obtener forma plural del sustantivo

Parámetros:

NombreEnTipoRequeridoDescripción
nounquerystringNoSustantivo a pluralizar.

Respuesta (200):

{
  "plural": "Articles"
}

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

Resumen: Analizar artículo con IA y devolver sus tipos

Cuerpo de la solicitud (multipart/form-data):

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

Respuesta (200):

[
  {
    "plural": "Types"
  }
]

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

Resumen: Formatear contenido del artículo con IA

Cuerpo de la solicitud (multipart/form-data):

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

Respuesta (200):

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

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

Resumen: Mejorar el documento basado en sugerencias

Cuerpo de la solicitud (multipart/form-data):

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

Respuesta (200):

{
  "improvedContent": "# Improved Content"
}

GET /questionnaire/rag/article/parts#

Resumen: Devuelve lista de partes del artículo

Parámetros:

NombreEnTipoRequeridoDescripción
idqueryarrayLista de partes del artículo.

Respuesta (200):

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

GET /questionnaire/rag/article/revisions#

Resumen: Devuelve lista de revisiones del artículo

Parámetros:

NombreEnTipoRequeridoDescripción
codequerystringCódigo del artículo.

Respuesta (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}#

Resumen: Obtener información de la revisión del artículo

Parámetros:

NombreEnTipoRequeridoDescripción
idpathstring (uuid)ID de la revisión.

Respuesta (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}#

Resumen: Obtener contenido de la revisión del artículo

Respuesta (200):

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

GET /questionnaire/rag/article/analyze#

Resumen: Analizar contenido del artículo con IA

Parámetros:

NombreEnTipoRequeridoDescripción
codequerystringCódigo del artículo.
revqueryinteger (int32)NoNúmero de revisión.
forcequerybooleanNoForzar la creación de un nuevo análisis y eliminar el resultado de análisis incompleto anterior si existe.

Respuesta (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}#

Resumen: Obtener resultado del análisis del artículo

Parámetros:

NombreEnTipoRequeridoDescripción
idpathstring (uuid)ID del análisis.

Respuesta (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#

Resumen: Listar todos los mensajes

Parámetros:

NombreEnTipoRequeridoDescripción
idquerystring (uuid)ID de la colección RAG.
itemquerystring (uuid)NoID del ítem RAG.
messagequerystring (uuid)NoID del mensaje.
ascquerybooleanNoOrden ascendente.
psqueryinteger (int32)NoTamaño de página.
pqueryinteger (int32)NoNúmero de página (iniciado en 1).

Respuesta (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#

Resumen: Añadir nuevo mensaje

Parámetros:

NombreEnTipoRequeridoDescripción
idquerystring (uuid)ID de la colección RAG.
itemquerystring (uuid)NoID del ítem RAG.
messagequerystring (uuid)NoID del mensaje al que responder.

Cuerpo de la solicitud:

{
  "text": "New message content"
}

Respuesta (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#

Resumen: Actualizar mensaje existente

Parámetros:

NombreEnTipoRequeridoDescripción
cquerystring (uuid)ID de la colección RAG.
idquerystring (uuid)ID del mensaje.

Cuerpo de la solicitud:

{
  "text": "Updated message content"
}

Respuesta (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#

Resumen: Eliminar mensaje existente

Parámetros:

NombreEnTipoRequeridoDescripción
idquerystring (uuid)ID del mensaje.

Respuesta (200):

{}

RagFaq#

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

Resumen: Resumen para la página principal

Parámetros:

NombreEnTipoRequeridoDescripción
projquerystring (uuid)NoID del proyecto.

Respuesta (200):

{
  "active": 3
}

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

Resumen: Número de colecciones FAQ.

Parámetros:

NombreEnTipoRequeridoDescripción
qquerystringNoFiltrar por nombre o código de la colección.
statequeryarrayNoFiltrar por estados.
projectqueryarrayNoFiltrar por proyectos.

Respuesta (200):

3

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

Resumen: Obtener lista de colecciones FAQ.

Parámetros:

NombreEnTipoRequeridoDescripción
qquerystringNoFiltrar por nombre o código de la colección.
statequeryarrayNoFiltrar por estados.
projectqueryarrayNoFiltrar por proyectos.
squerystringNoCampo de ordenación.
ascquerybooleanNoOrden ascendente.
psqueryinteger (int32)NoTamaño de página.
pqueryinteger (int32)NoNúmero de página (iniciado en 1).

Respuesta (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#

Resumen: Encontrar ítems FAQ.

Parámetros:

NombreEnTipoRequeridoDescripción
qquerystringFiltrar por pregunta.
projectquerystring (uuid)NoFiltrar por proyecto.
psqueryinteger (int32)NoTamaño de página.
pqueryinteger (int32)NoNúmero de página (iniciado en 1).

Respuesta (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#

Resumen: Crear nueva colección FAQ.

Cuerpo de la solicitud (multipart/form-data):

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

Respuesta (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#

Resumen: Actualizar metadatos de la colección FAQ.

Cuerpo de la solicitud:

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

DELETE /questionnaire/rag/faq-collection#

Resumen: Eliminar colección FAQ.

Parámetros:

NombreEnTipoRequeridoDescripción
codequerystringCódigo del artículo.

GET /questionnaire/rag/faq-collection#

Resumen: Obtener colección FAQ.

Parámetros:

NombreEnTipoRequeridoDescripción
codequerystringCódigo de la colección.

Respuesta (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#

Resumen: Verificar existencia de la colección FAQ.

Parámetros:

NombreEnTipoRequeridoDescripción
codequerystringCódigo de la colección.

Respuesta (200):

true

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

Resumen: Número de ítems FAQ.

Parámetros:

NombreEnTipoRequeridoDescripción
codequerystringCódigo de la colección.
qquerystringNoFiltrar por contenido del ítem FAQ.

Cuerpo de la solicitud:

["Active", "Default"]

Respuesta (200):

5

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

Resumen: Obtener lista de ítems FAQ.

Parámetros:

NombreEnTipoRequeridoDescripción
codequerystringCódigo de la colección.
qquerystringNoFiltrar por contenido del ítem FAQ.
statequeryarrayNoFiltrar por estados.
squerystringNoCampo de ordenación.
ascquerybooleanNoOrden ascendente.
psqueryinteger (int32)NoTamaño de página.
pqueryinteger (int32)NoNúmero de página (iniciado en 1).

Respuesta (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#

Resumen: Crear nuevo ítem FAQ.

Cuerpo de la solicitud:

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

Respuesta (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#

Resumen: Obtener ítem FAQ.

Parámetros:

NombreEnTipoRequeridoDescripción
codequerystringCódigo de la colección.
indexqueryinteger (int32)Índice base cero del ítem FAQ en la colección.

Respuesta (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#

Resumen: Actualizar ítem FAQ.

Cuerpo de la solicitud:

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

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

Resumen: Eliminar ítem FAQ.

Parámetros:

NombreEnTipoRequeridoDescripción
codequerystringCódigo de la colección.
indexqueryinteger (int32)Índice base cero del ítem FAQ en la colección.

RagQuery#

POST /questionnaire/rag/query#

Resumen: Realizar consulta en la Base de Conocimientos RAG

Cuerpo de la solicitud:

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

Respuesta (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#

Resumen: Realizar consulta en la Base de Conocimientos RAG

Cuerpo de la solicitud:

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

Respuesta (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#

Resumen: Realizar consulta en la Base de Conocimientos RAG

Cuerpo de la solicitud:

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

Respuesta (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
    }
  ]
}

Artículos relacionados#

Arriba
Seleccionar idioma