common.py

Overview

common.py is a utility module in the InfiniFlow project that provides a comprehensive set of functions to interact with the InfiniFlow RESTful API services. The file focuses primarily on managing datasets, documents, chunks, chat assistants, and sessions by performing CRUD (Create, Read, Update, Delete) operations and batch processes through HTTP requests.

This module abstracts the underlying HTTP communication and multipart file uploads/downloads, enabling other system components or clients to manage resources related to datasets and conversational AI components efficiently. It relies on external configuration constants such as HOST_ADDRESS and VERSION to construct API endpoints dynamically, ensuring adaptability across different API versions or environments.


Detailed Descriptions

Constants


Dataset Management Functions

These functions manage datasets via the InfiniFlow API.

create_dataset(auth, payload=None, *, headers=HEADERS, data=None)

list_datasets(auth, params=None, *, headers=HEADERS)

update_dataset(auth, dataset_id, payload=None, *, headers=HEADERS, data=None)

delete_datasets(auth, payload=None, *, headers=HEADERS, data=None)

batch_create_datasets(auth, num)


File Management Within Dataset

Functions to upload, download, list, update, delete, and parse documents within datasets.

upload_documents(auth, dataset_id, files_path=None)

download_document(auth, dataset_id, document_id, save_path)

list_documents(auth, dataset_id, params=None)

update_document(auth, dataset_id, document_id, payload=None)

delete_documents(auth, dataset_id, payload=None)

parse_documents(auth, dataset_id, payload=None)

stop_parse_documents(auth, dataset_id, payload=None)

bulk_upload_documents(auth, dataset_id, num, tmp_path)


Chunk Management Within Dataset

Chunks represent segmented parts of documents, useful for fine-grained retrieval or analysis.

add_chunk(auth, dataset_id, document_id, payload=None)

list_chunks(auth, dataset_id, document_id, params=None)

update_chunk(auth, dataset_id, document_id, chunk_id, payload=None)

delete_chunks(auth, dataset_id, document_id, payload=None)

retrieval_chunks(auth, payload=None)

batch_add_chunks(auth, dataset_id, document_id, num)


Chat Assistant Management

Functions for managing chat assistants, which presumably represent conversational agents.

create_chat_assistant(auth, payload=None)

list_chat_assistants(auth, params=None)

update_chat_assistant(auth, chat_assistant_id, payload=None)

delete_chat_assistants(auth, payload=None)

batch_create_chat_assistants(auth, num)


Session Management

Sessions represent interaction histories or contexts under chat assistants or agents.

create_session_with_chat_assistant(auth, chat_assistant_id, payload=None)

list_session_with_chat_assistants(auth, chat_assistant_id, params=None)

update_session_with_chat_assistant(auth, chat_assistant_id, session_id, payload=None)

delete_session_with_chat_assistants(auth, chat_assistant_id, payload=None)

batch_add_sessions_with_chat_assistant(auth, chat_assistant_id, num)


Important Implementation Details


Interaction with Other System Components


Usage Example

from common import create_dataset, upload_documents, list_documents

auth = ('user', 'password')

# Create a new dataset
dataset_response = create_dataset(auth, {"name": "My Dataset"})
dataset_id = dataset_response['data']['id']

# Upload documents to the dataset
files = ['doc1.txt', 'doc2.txt']
upload_response = upload_documents(auth, dataset_id, files)

# List documents in the dataset
documents = list_documents(auth, dataset_id)
print(documents)

Mermaid Diagram - Function Flowchart

flowchart TD
    A[Dataset Management]
    A --> create_dataset
    A --> list_datasets
    A --> update_dataset
    A --> delete_datasets
    A --> batch_create_datasets

    B[Document Management]
    B --> upload_documents
    B --> download_document
    B --> list_documents
    B --> update_document
    B --> delete_documents
    B --> parse_documents
    B --> stop_parse_documents
    B --> bulk_upload_documents

    C[Chunk Management]
    C --> add_chunk
    C --> list_chunks
    C --> update_chunk
    C --> delete_chunks
    C --> retrieval_chunks
    C --> batch_add_chunks

    D[Chat Assistant Management]
    D --> create_chat_assistant
    D --> list_chat_assistants
    D --> update_chat_assistant
    D --> delete_chat_assistants
    D --> batch_create_chat_assistants

    E[Session Management]
    E --> create_session_with_chat_assistant
    E --> list_session_with_chat_assistants
    E --> update_session_with_chat_assistant
    E --> delete_session_with_chat_assistants
    E --> batch_add_sessions_with_chat_assistant

    A --> B
    B --> C
    D --> E

Summary

The common.py file is a critical utility module that enables seamless, programmatic interaction with the InfiniFlow backend API. It encapsulates HTTP request logic for managing datasets, documents, document chunks, chat assistants, and sessions, providing batch operation helpers and safe file handling utilities. The module is designed to be reusable and extensible, serving as a foundational building block for higher-level workflows in the InfiniFlow system.