# Data Sources ## Create `knowledge_bases.data_sources.create(strpath_knowledge_base_uuid, DataSourceCreateParams**kwargs) -> DataSourceCreateResponse` **post** `/v2/gen-ai/knowledge_bases/{knowledge_base_uuid}/data_sources` To add a data source to a knowledge base, send a POST request to `/v2/gen-ai/knowledge_bases/{knowledge_base_uuid}/data_sources`. ### Parameters - **knowledge\_base\_uuid:** `str` - **aws\_data\_source:** `AwsDataSourceParam` AWS S3 Data Source - **knowledge\_base\_uuid:** `str` - **spaces\_data\_source:** `APISpacesDataSourceParam` Spaces Bucket Data Source - **web\_crawler\_data\_source:** `APIWebCrawlerDataSourceParam` WebCrawlerDataSource ### Returns - `class DataSourceCreateResponse` Information about a newly created knowldege base data source - **knowledge\_base\_data\_source:** `Optional[APIKnowledgeBaseDataSource]` Data Source configuration for Knowledge Bases ### Example ```python from gradient import Gradient client = Gradient() data_source = client.knowledge_bases.data_sources.create( path_knowledge_base_uuid="\"123e4567-e89b-12d3-a456-426614174000\"", ) print(data_source.knowledge_base_data_source) ``` ## List `knowledge_bases.data_sources.list(strknowledge_base_uuid, DataSourceListParams**kwargs) -> DataSourceListResponse` **get** `/v2/gen-ai/knowledge_bases/{knowledge_base_uuid}/data_sources` To list all data sources for a knowledge base, send a GET request to `/v2/gen-ai/knowledge_bases/{knowledge_base_uuid}/data_sources`. ### Parameters - **knowledge\_base\_uuid:** `str` - **page:** `int` Page number. - **per\_page:** `int` Items per page. ### Returns - `class DataSourceListResponse` A list of knowledge base data sources - **knowledge\_base\_data\_sources:** `Optional[List[APIKnowledgeBaseDataSource]]` The data sources - **aws\_data\_source:** `Optional[AwsDataSource]` AWS S3 Data Source for Display - **bucket\_name:** `Optional[str]` Spaces bucket name - **item\_path:** `Optional[str]` - **region:** `Optional[str]` Region of bucket - **bucket\_name:** `Optional[str]` Name of storage bucket - Deprecated, moved to data_source_details - **created\_at:** `Optional[datetime]` Creation date / time - **dropbox\_data\_source:** `Optional[DropboxDataSource]` Dropbox Data Source for Display - **folder:** `Optional[str]` - **file\_upload\_data\_source:** `Optional[APIFileUploadDataSource]` File to upload as data source for knowledge base. - **item\_path:** `Optional[str]` Path of folder or object in bucket - Deprecated, moved to data_source_details - **last\_datasource\_indexing\_job:** `Optional[APIIndexedDataSource]` - **last\_indexing\_job:** `Optional[APIIndexingJob]` IndexingJob description - **region:** `Optional[str]` Region code - Deprecated, moved to data_source_details - **spaces\_data\_source:** `Optional[APISpacesDataSource]` Spaces Bucket Data Source - **updated\_at:** `Optional[datetime]` Last modified - **uuid:** `Optional[str]` Unique id of knowledge base - **web\_crawler\_data\_source:** `Optional[APIWebCrawlerDataSource]` WebCrawlerDataSource - **links:** `Optional[APILinks]` Links to other pages - **meta:** `Optional[APIMeta]` Meta information about the data set ### Example ```python from gradient import Gradient client = Gradient() data_sources = client.knowledge_bases.data_sources.list( knowledge_base_uuid="\"123e4567-e89b-12d3-a456-426614174000\"", ) print(data_sources.knowledge_base_data_sources) ``` ## Delete `knowledge_bases.data_sources.delete(strdata_source_uuid, DataSourceDeleteParams**kwargs) -> DataSourceDeleteResponse` **delete** `/v2/gen-ai/knowledge_bases/{knowledge_base_uuid}/data_sources/{data_source_uuid}` To delete a data source from a knowledge base, send a DELETE request to `/v2/gen-ai/knowledge_bases/{knowledge_base_uuid}/data_sources/{data_source_uuid}`. ### Parameters - **knowledge\_base\_uuid:** `str` - **data\_source\_uuid:** `str` ### Returns - `class DataSourceDeleteResponse` Information about a newly deleted knowledge base data source - **data\_source\_uuid:** `Optional[str]` Data source id - **knowledge\_base\_uuid:** `Optional[str]` Knowledge base id ### Example ```python from gradient import Gradient client = Gradient() data_source = client.knowledge_bases.data_sources.delete( data_source_uuid="\"123e4567-e89b-12d3-a456-426614174000\"", knowledge_base_uuid="\"123e4567-e89b-12d3-a456-426614174000\"", ) print(data_source.data_source_uuid) ``` ## Domain Types ### API File Upload Data Source - `class APIFileUploadDataSource` File to upload as data source for knowledge base. - **original\_file\_name:** `Optional[str]` The original file name - **size\_in\_bytes:** `Optional[str]` The size of the file in bytes - **stored\_object\_key:** `Optional[str]` The object key the file was stored as ### API Knowledge Base Data Source - `class APIKnowledgeBaseDataSource` Data Source configuration for Knowledge Bases - **aws\_data\_source:** `Optional[AwsDataSource]` AWS S3 Data Source for Display - **bucket\_name:** `Optional[str]` Spaces bucket name - **item\_path:** `Optional[str]` - **region:** `Optional[str]` Region of bucket - **bucket\_name:** `Optional[str]` Name of storage bucket - Deprecated, moved to data_source_details - **created\_at:** `Optional[datetime]` Creation date / time - **dropbox\_data\_source:** `Optional[DropboxDataSource]` Dropbox Data Source for Display - **folder:** `Optional[str]` - **file\_upload\_data\_source:** `Optional[APIFileUploadDataSource]` File to upload as data source for knowledge base. - **item\_path:** `Optional[str]` Path of folder or object in bucket - Deprecated, moved to data_source_details - **last\_datasource\_indexing\_job:** `Optional[APIIndexedDataSource]` - **last\_indexing\_job:** `Optional[APIIndexingJob]` IndexingJob description - **region:** `Optional[str]` Region code - Deprecated, moved to data_source_details - **spaces\_data\_source:** `Optional[APISpacesDataSource]` Spaces Bucket Data Source - **updated\_at:** `Optional[datetime]` Last modified - **uuid:** `Optional[str]` Unique id of knowledge base - **web\_crawler\_data\_source:** `Optional[APIWebCrawlerDataSource]` WebCrawlerDataSource ### API Spaces Data Source - `class APISpacesDataSource` Spaces Bucket Data Source - **bucket\_name:** `Optional[str]` Spaces bucket name - **item\_path:** `Optional[str]` - **region:** `Optional[str]` Region of bucket ### API Web Crawler Data Source - `class APIWebCrawlerDataSource` WebCrawlerDataSource - **base\_url:** `Optional[str]` The base url to crawl. - **crawling\_option:** `Optional[Literal["UNKNOWN", "SCOPED", "PATH", 2 more]]` Options for specifying how URLs found on pages should be handled. - UNKNOWN: Default unknown value - SCOPED: Only include the base URL. - PATH: Crawl the base URL and linked pages within the URL path. - DOMAIN: Crawl the base URL and linked pages within the same domain. - SUBDOMAINS: Crawl the base URL and linked pages for any subdomain. - `"UNKNOWN"` - `"SCOPED"` - `"PATH"` - `"DOMAIN"` - `"SUBDOMAINS"` - **embed\_media:** `Optional[bool]` Whether to ingest and index media (images, etc.) on web pages. ### Aws Data Source - `class AwsDataSource` AWS S3 Data Source - **bucket\_name:** `Optional[str]` Spaces bucket name - **item\_path:** `Optional[str]` - **key\_id:** `Optional[str]` The AWS Key ID - **region:** `Optional[str]` Region of bucket - **secret\_key:** `Optional[str]` The AWS Secret Key