knowledge_base_data_sources
Creates, updates, deletes, gets or lists a knowledge_base_data_sources resource.
Overview
| Name | knowledge_base_data_sources |
| Type | Resource |
| Id | digitalocean.genai.knowledge_base_data_sources |
Fields
The following fields are returned by SELECT queries:
- genai_list_knowledge_base_data_sources
A successful response.
| Name | Datatype | Description |
|---|---|---|
knowledge_base_data_sources | array | The data sources |
links | object | Links to other pages |
meta | object | Meta information about the data set |
Methods
The following methods are available for this resource:
| Name | Accessible by | Required Params | Optional Params | Description |
|---|---|---|---|---|
genai_list_knowledge_base_data_sources | select | knowledge_base_uuid | page, per_page | To list all data sources for a knowledge base, send a GET request to /v2/gen-ai/knowledge_bases/{knowledge_base_uuid}/data_sources. |
genai_create_knowledge_base_data_source | insert | knowledge_base_uuid | To add a data source to a knowledge base, send a POST request to /v2/gen-ai/knowledge_bases/{knowledge_base_uuid}/data_sources. | |
genai_update_knowledge_base_data_source | replace | knowledge_base_uuid, data_source_uuid | To update a data source (e.g. chunking options), send a PUT request to /v2/gen-ai/knowledge_bases/{knowledge_base_uuid}/data_sources/{data_source_uuid}. | |
genai_delete_knowledge_base_data_source | delete | knowledge_base_uuid, 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}. | |
genai_create_data_source_file_upload_presigned_urls | exec | To create presigned URLs for knowledge base data source file upload, send a POST request to /v2/gen-ai/knowledge_bases/data_sources/file_upload_presigned_urls. |
Parameters
Parameters can be passed in the WHERE clause of a query. Check the Methods section to see which parameters are required or optional for each operation.
| Name | Datatype | Description |
|---|---|---|
data_source_uuid | string | Data source id (example: "123e4567-e89b-12d3-a456-426614174000") |
knowledge_base_uuid | string | Knowledge base id (example: "123e4567-e89b-12d3-a456-426614174000") |
page | integer | Page number. (example: 1) |
per_page | integer | Items per page. (example: 1) |
SELECT examples
- genai_list_knowledge_base_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.
SELECT
knowledge_base_data_sources,
links,
meta
FROM digitalocean.genai.knowledge_base_data_sources
WHERE knowledge_base_uuid = '{{ knowledge_base_uuid }}' -- required
AND page = '{{ page }}'
AND per_page = '{{ per_page }}'
;
INSERT examples
- genai_create_knowledge_base_data_source
- Manifest
To add a data source to a knowledge base, send a POST request to /v2/gen-ai/knowledge_bases/{knowledge_base_uuid}/data_sources.
INSERT INTO digitalocean.genai.knowledge_base_data_sources (
aws_data_source,
chunking_algorithm,
chunking_options,
knowledge_base_uuid,
spaces_data_source,
web_crawler_data_source,
knowledge_base_uuid
)
SELECT
'{{ aws_data_source }}',
'{{ chunking_algorithm }}',
'{{ chunking_options }}',
'{{ knowledge_base_uuid }}',
'{{ spaces_data_source }}',
'{{ web_crawler_data_source }}',
'{{ knowledge_base_uuid }}'
RETURNING
knowledge_base_data_source
;
# Description fields are for documentation purposes
- name: knowledge_base_data_sources
props:
- name: knowledge_base_uuid
value: "{{ knowledge_base_uuid }}"
description: Required parameter for the knowledge_base_data_sources resource.
- name: aws_data_source
description: |
AWS S3 Data Source
value:
bucket_name: "{{ bucket_name }}"
item_path: "{{ item_path }}"
key_id: "{{ key_id }}"
region: "{{ region }}"
secret_key: "{{ secret_key }}"
- name: chunking_algorithm
value: "{{ chunking_algorithm }}"
valid_values: ['CHUNKING_ALGORITHM_UNKNOWN', 'CHUNKING_ALGORITHM_SECTION_BASED', 'CHUNKING_ALGORITHM_HIERARCHICAL', 'CHUNKING_ALGORITHM_SEMANTIC', 'CHUNKING_ALGORITHM_FIXED_LENGTH']
default: CHUNKING_ALGORITHM_UNKNOWN
- name: chunking_options
value:
child_chunk_size: {{ child_chunk_size }}
max_chunk_size: {{ max_chunk_size }}
parent_chunk_size: {{ parent_chunk_size }}
semantic_threshold: {{ semantic_threshold }}
- name: knowledge_base_uuid
value: "{{ knowledge_base_uuid }}"
description: |
Knowledge base id
- name: spaces_data_source
description: |
Spaces Bucket Data Source
value:
bucket_name: "{{ bucket_name }}"
item_path: "{{ item_path }}"
region: "{{ region }}"
- name: web_crawler_data_source
description: |
WebCrawlerDataSource
value:
base_url: "{{ base_url }}"
crawling_option: "{{ crawling_option }}"
embed_media: {{ embed_media }}
exclude_tags:
- "{{ exclude_tags }}"
REPLACE examples
- genai_update_knowledge_base_data_source
To update a data source (e.g. chunking options), send a PUT request to /v2/gen-ai/knowledge_bases/{knowledge_base_uuid}/data_sources/{data_source_uuid}.
REPLACE digitalocean.genai.knowledge_base_data_sources
SET
chunking_algorithm = '{{ chunking_algorithm }}',
chunking_options = '{{ chunking_options }}',
data_source_uuid = '{{ data_source_uuid }}',
knowledge_base_uuid = '{{ knowledge_base_uuid }}'
WHERE
knowledge_base_uuid = '{{ knowledge_base_uuid }}' --required
AND data_source_uuid = '{{ data_source_uuid }}' --required
RETURNING
knowledge_base_data_source;
DELETE examples
- genai_delete_knowledge_base_data_source
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}.
DELETE FROM digitalocean.genai.knowledge_base_data_sources
WHERE knowledge_base_uuid = '{{ knowledge_base_uuid }}' --required
AND data_source_uuid = '{{ data_source_uuid }}' --required
;
Lifecycle Methods
- genai_create_data_source_file_upload_presigned_urls
To create presigned URLs for knowledge base data source file upload, send a POST request to /v2/gen-ai/knowledge_bases/data_sources/file_upload_presigned_urls.
EXEC digitalocean.genai.knowledge_base_data_sources.genai_create_data_source_file_upload_presigned_urls
@@json=
'{
"files": "{{ files }}"
}'
;