La base de conocimientos de Alibaba Cloud Model Studio proporciona APIs abiertas que le permiten integrarse con sus sistemas empresariales existentes, automatizar operaciones y satisfacer necesidades complejas de recuperación.
Requisitos previos
-
Para gestionar una base de conocimientos con API, un usuario RAM debe obtener permisos de API (la política AliyunBailianDataFullAccess) y unirse a un espacio de trabajo. Esto no es necesario para una cuenta de Alibaba Cloud.
Un usuario RAM solo puede gestionar bases de conocimientos en espacios de trabajo a los que se ha unido. Una cuenta de Alibaba Cloud puede gestionar bases de conocimientos en todos los espacios de trabajo.
-
Instale la versión más reciente del SDK de Alibaba Cloud Model Studio para llamar a las API de la base de conocimientos. Para obtener instrucciones de instalación, consulte la Referencia de desarrollo del SDK de Alibaba Cloud.
Si el SDK no cumple con sus requisitos, puede llamar a las API de la base de conocimientos mediante solicitudes HTTP utilizando el mecanismo de firma. Para obtener detalles sobre la conexión, consulte la Descripción general de la API.
-
Obtenga un AccessKey ID y un AccessKey Secret, y un ID de espacio de trabajo. Configúrelos como variables de entorno del sistema para ejecutar el código de ejemplo. El siguiente ejemplo muestra cómo establecer estas variables en Linux:
Si utiliza un IDE u otros complementos de desarrollo, configure las variables
ALIBABA_CLOUD_ACCESS_KEY_ID,ALIBABA_CLOUD_ACCESS_KEY_SECRETyWORKSPACE_IDen su entorno de desarrollo.
- Prepare el documento de conocimiento de ejemplo Alibaba Cloud Model Studio Phone Introduction.docx para crear una base de conocimientos.
Código de ejemplo
Código de ejemplo
- Crear una base de conocimientos
- Recuperar desde una base de conocimientos
- Actualizar una base de conocimientos
- Gestionar bases de conocimientos
Crear una base de conocimientos
Crear una base de conocimientos de búsqueda de documentos en un espacio de trabajo especificado.
1. Inicializar clientePara cargar archivos y crear una base de conocimientos, primero inicialice un cliente. Utilice su AccessKey y AccessKey Secret para verificar su identidad y configurar elendpoint.
| Python |
2. Cargar archivos de la base de conocimientos | |
2.1. Solicitar una concesión de carga de archivoAntes de crear una base de conocimientos, cargue sus archivos de origen en el mismo espacio de trabajo. Para ello, llame a la operación ApplyFileUploadLease para solicitar un permiso de carga de archivo. Un permiso es una autorización temporal para cargar un archivo y es válido durante varios minutos.
| Python
Ejemplo de solicitud
Ejemplo de respuesta |
2.2. Cargar archivo al almacenamiento temporalCon el permiso de carga, utilice los parámetros de carga temporal y la URL para cargar archivos desde su almacenamiento local o una URL de acceso público al servidor de Model Studio. Cada espacio de trabajo admite hasta 10,000 archivos. Los formatos admitidos incluyen PDF, DOCX, DOC, TXT, Markdown, PPTX, PPT, XLSX, XLS, HTML, PNG, JPG, JPEG, BMP y GIF.
|
Python |
2.3. Agregar archivo a una categoríaDespués de cargar el archivo, agréguelo a una categoría en el mismo espacio de trabajo llamando a la operación AddFile.
FileId para el archivo e inicia automáticamente su análisis. El lease_id se invalida inmediatamente. No reutilice el mismo ID de permiso para otro envío. | Python
Ejemplo de solicitud
Ejemplo de respuesta |
2.4. Consultar estado de análisis del archivoUn archivo no se puede utilizar en una base de conocimientos hasta que se haya analizado. Durante las horas pico, este proceso puede tardar varias horas. Puede llamar a la operación DescribeFile para consultar su estado de análisis.
Data.Status es PARSE_SUCCESS, el archivo se ha analizado correctamente y puede importarlo a la base de conocimientos. | Python
Ejemplo de solicitud
Ejemplo de respuesta |
3. Crear una base de conocimientos | |
3.1. Inicializar base de conocimientosUna vez analizado un archivo, puede crear una base de conocimientos a partir de él en el mismo espacio de trabajo. Para comenzar, llame a la operación CreateIndex para inicializar (pero no finalizar) una base de conocimientos de recuperación de documentos.
Data.Id devuelto por esta API es el ID de la base de conocimientos, que se utiliza para la construcción posterior del índice.Mantenga seguro el ID de la base de conocimientos, ya que es necesario para todas las operaciones API posteriores relacionadas con esta base de conocimientos. | Python
Ejemplo de solicitud
Ejemplo de respuesta |
3.2. Enviar un trabajo de indexaciónDespués de inicializar la base de conocimientos, llame a la operación SubmitIndexJob para iniciar el proceso de construcción del índice.
Data.Id devuelto por esta llamada a la API es el ID de la tarea correspondiente. Utilizará este ID en el siguiente paso para consultar el estado más reciente de la tarea. | Python
Ejemplo de solicitud
Ejemplo de respuesta |
3.3. Consultar estado del trabajo de indexaciónEl trabajo de indexación tarda algún tiempo en completarse. Durante las horas pico, este proceso puede tardar varias horas. Llame a la operación GetIndexJobStatus para consultar su estado de ejecución.
Data.Status es COMPLETED, la base de conocimientos se ha creado. | Python
Ejemplo de solicitud
Ejemplo de respuesta |
Recuperar desde una base de conocimientos
Puede recuperar información de una base de conocimientos de dos maneras:
- Mediante una aplicación de Alibaba Cloud Model Studio: Cuando usted llama a una aplicación, utilice el parámetro
rag_optionspara pasar el ID de la base de conocimientosindex_id. Esto complementa su modelo con conocimiento privado y proporciona la información más reciente. - Mediante una API de Alibaba Cloud: Llame a la API Retrieve para recuperar información de una base de conocimientos específica y devolver los segmentos de texto originales.
Para recuperar información y devolver segmentos de texto de una base de conocimientos especificada, llame a la API Retrieve.
| Python
Solicitud de ejemplo
Respuesta de ejemplo |
Actualizar una base de conocimientos
El siguiente ejemplo muestra cómo actualizar una base de conocimientos de búsqueda de documentos. Las aplicaciones que utilizan la base de conocimientos reflejan sus actualizaciones en tiempo real. El contenido nuevo estará disponible para su recuperación, mientras que el contenido eliminado ya no será accesible.
No puede actualizar bases de conocimientos de consulta de datos o preguntas y respuestas sobre imágenes mediante una API. Para más información, consulte Actualizar una base de conocimientos.
- Actualización incremental: El único método admitido es un proceso de tres pasos: cargar el archivo actualizado, agregar el archivo a la base de conocimientos y luego eliminar el archivo antiguo.
- Actualización completa: Para cada archivo en la base de conocimientos, realice los tres pasos para completar la actualización.
- Actualización o sincronización automática: Para obtener más información, consulte Cómo actualizar o sincronizar automáticamente una base de conocimientos.
- Límite de archivos por actualización individual: Se recomienda no actualizar más de 10,000 archivos a la vez. Superar este límite podría impedir que la base de conocimientos se actualice correctamente.
1. Cargar el archivo actualizadoSiga el procedimiento descrito en Crear una base de conocimientos: Paso 2 para cargar el archivo actualizado en el espacio de trabajo que contiene la base de conocimientos.Solicite una nueva concesión de carga de archivo para generar un nuevo conjunto de parámetros de carga para el archivo actualizado. | |
2. Agregar archivo a la base de conocimientos | |
2.1. Enviar una tarea de adiciónUna vez analizado el archivo cargado, llame a la operación SubmitIndexAddDocumentsJob para anexar el nuevo archivo a la base de conocimientos y reconstruir el índice de la misma.
Data.Id, que es el ID de la tarea (job_id). Utilice este ID en el siguiente paso para consultar el estado de la tarea. | Python
Ejemplo de solicitud
Ejemplo de respuesta |
2.2. Esperar finalización de la tareaLa tarea de indexación tarda algún tiempo en completarse. Durante las horas pico, este proceso puede tardar varias horas. Puede llamar a la operación GetIndexJobStatus para consultar su estado de ejecución.
COMPLETED para el campo Data.Status en la respuesta indica que todos los archivos actualizados se han agregado correctamente a la base de conocimientos.La lista | Python
Ejemplo de solicitud
Ejemplo de respuesta |
3. Eliminar el archivo antiguoFinalmente, llame a la operación DeleteIndexDocument para eliminar permanentemente la versión antigua del archivo de la base de conocimientos. Esto evita que se recupere información obsoleta accidentalmente.
Solo puede eliminar archivos con un estado de importación fallida (INSERT_ERROR) o importación exitosa (FINISH). Para consultar el estado de los archivos en la base de conocimientos, puede llamar a la operación ListIndexDocuments. | Python
Solicitud de ejemplo
Respuesta de ejemplo |
Gestionar bases de conocimientos
La creación y el uso de bases de conocimientos no son compatibles a través de la API. Debe realizar estas tareas en la consola de Model Studio.
Ver una base de conocimientosPara ver las bases de conocimientos en un espacio de trabajo especificado, llame a la operación ListIndices.
| Python
Solicitud de ejemplo
Respuesta de ejemplo |
Eliminar una base de conocimientosPara eliminar permanentemente una base de conocimientos, llame a la operación DeleteIndex. Antes de eliminar la base de conocimientos, debe desvincularla de todas las aplicaciones vinculadas de Alibaba Cloud Model Studio en la consola de Model Studio. De lo contrario, la eliminación fallará.
| Python
Solicitud de ejemplo
Respuesta de ejemplo |
API
Consulte el Catálogo de API (Base de conocimientos) para obtener una lista completa de las API de la base de conocimientos y sus parámetros de solicitud y respuesta.
FAQ
-
¿Cómo automatizo las actualizaciones y la sincronización de la base de conocimientos?
- Búsqueda de documentos
- Consulta de datos y preguntas y respuestas con imágenes
Integre las API de Object Storage Service (OSS), Function Compute (FC) y las bases de conocimientos de Model Studio. Siga estos pasos:- Crear un bucket: Vaya a la consola de OSS para crear un bucket de OSS para almacenar sus archivos fuente.
- Crear una base de conocimientos: Cree una base de conocimientos de búsqueda de documentos para almacenar su contenido de conocimiento privado.
- Crear una función personalizada: Vaya a la consola de FC y cree una función para eventos de cambio de archivo, como operaciones de adición o eliminación. Consulte Crear una función. Estas funciones sincronizan los cambios de archivos desde OSS hacia su base de conocimientos llamando a las API relevantes descritas en Actualizar una base de conocimientos.
- Crear un activador de OSS: En FC, asocie un activador de OSS con la función personalizada que creó en el paso anterior. Cuando se detecta un evento de cambio de archivo, como una nueva carga de archivo en OSS, el activador se activa y FC ejecuta la función. Consulte Activadores.
- ¿Por qué mi nueva base de conocimientos está vacía? Esto suele ocurrir si el paso Enviar un trabajo de indexación no se ejecuta correctamente. Si llama a la API CreateIndex pero la llamada a la API SubmitIndexJob falla, la base de conocimientos quedará vacía. Para resolverlo, envíe un trabajo de indexación nuevamente y espere a que el trabajo de indexación finalice.
- ¿Qué debo hacer si recibo el error "Access your uploaded file failed. Please check if your upload action was successful"? Este error suele ocurrir porque el paso Cargar el archivo en el almacenamiento temporal no se ejecutó correctamente. Confirme que este paso se ejecute correctamente antes de llamar a la operación de API AddFile.
-
¿Qué debo hacer si recibo el error "Access denied: Either you are not authorized to access this workspace, or the workspace does not exist"?
Este error suele ocurrir por las siguientes razones:
-
El endpoint de servicio solicitado (endpoint de servicio) es incorrecto: Para el acceso a través de Internet, los usuarios del sitio de China (nube pública) deben usar el endpoint de servicio en China (Beijing), mientras que los usuarios del sitio internacional deben usar el endpoint de servicio en Singapore. Si está utilizando la función de depuración en línea, asegúrese de seleccionar el endpoint de servicio correcto, como se muestra en la siguiente figura.

-
El
WorkspaceIdvalor es incorrecto o usted no es miembro del espacio de trabajo: Antes de llamar a la API, verifique que elWorkspaceIdsea correcto y que usted sea miembro del espacio de trabajo. Cómo ser agregado como miembro de un espacio de trabajo específico
-
El endpoint de servicio solicitado (endpoint de servicio) es incorrecto: Para el acceso a través de Internet, los usuarios del sitio de China (nube pública) deben usar el endpoint de servicio en China (Beijing), mientras que los usuarios del sitio internacional deben usar el endpoint de servicio en Singapore. Si está utilizando la función de depuración en línea, asegúrese de seleccionar el endpoint de servicio correcto, como se muestra en la siguiente figura.
-
¿Qué debo hacer si recibo el error "Specified access key is not found or invalid"?
Este error suele ocurrir porque el
access_key_ido elaccess_key_secretproporcionados son incorrectos, o porque elaccess_key_idha sido deshabilitado. Asegúrese de que elaccess_key_idsea correcto y no esté deshabilitado antes de llamar a la API. -
¿Qué debo hacer si recibo el error "Category is mismatched"?
Este error suele ocurrir cuando el
CategoryIdutilizado en la llamada a la APIApplyFileUploadLeasedifiere delCategoryIdpasado en la llamada posterior a la APIAddFile. Asegúrese de utilizar el mismoCategoryIddurante todo el flujo de carga de archivos, desdeApplyFileUploadLeasehastaAddFile. Puede llamar a la APIListCategorypara recuperar la lista de categorías en el espacio de trabajo actual y verificar que elCategoryIdque está utilizando sea correcto.
Facturación
- Todas las funciones de la base de conocimientos y las llamadas a la API son gratuitas. Consulte Base de conocimientos: Facturación.
- El espacio de almacenamiento para datos, como archivos, importados a Model Studio es gratuito.
