knowledge_bases
Creates, updates, deletes, gets or lists a knowledge_bases resource.
Overview
| Name | knowledge_bases |
| Type | Resource |
| Id | digitalocean.genai.knowledge_bases |
Fields
The following fields are returned by SELECT queries:
- genai_get_knowledge_base
- genai_list_knowledge_bases
A successful response.
| Name | Datatype | Description |
|---|---|---|
database_status | string | (CREATING, ONLINE, POWEROFF, REBUILDING, REBALANCING, DECOMMISSIONED, FORKING, MIGRATING, RESIZING, RESTORING, POWERING_ON, UNHEALTHY, UPGRADING) (default: CREATING, example: CREATING) |
knowledge_base | object | Knowledgebase Description |
A successful response.
| Name | Datatype | Description |
|---|---|---|
knowledge_bases | array | The knowledge bases |
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_get_knowledge_base | select | uuid | To retrive information about an existing knowledge base, send a GET request to /v2/gen-ai/knowledge_bases/{uuid}. | |
genai_list_knowledge_bases | select | page, per_page | To list all knowledge bases, send a GET request to /v2/gen-ai/knowledge_bases. | |
genai_create_knowledge_base | insert | To create a knowledge base, send a POST request to /v2/gen-ai/knowledge_bases. | ||
genai_update_knowledge_base | replace | uuid | To update a knowledge base, send a PUT request to /v2/gen-ai/knowledge_bases/{uuid}. | |
genai_delete_knowledge_base | delete | uuid | To delete a knowledge base, send a DELETE request to /v2/gen-ai/knowledge_bases/{uuid}. | |
genai_attach_knowledge_bases | exec | agent_uuid | To attach knowledge bases to an agent, send a POST request to /v2/gen-ai/agents/{agent_uuid}/knowledge_bases | |
genai_attach_knowledge_base | exec | agent_uuid, knowledge_base_uuid | To attach a knowledge base to an agent, send a POST request to /v2/gen-ai/agents/{agent_uuid}/knowledge_bases/{knowledge_base_uuid} | |
genai_detach_knowledge_base | exec | agent_uuid, knowledge_base_uuid | To detach a knowledge base from an agent, send a DELETE request to /v2/gen-ai/agents/{agent_uuid}/knowledge_bases/{knowledge_base_uuid}. |
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 |
|---|---|---|
agent_uuid | string | Agent id (example: "123e4567-e89b-12d3-a456-426614174000") |
knowledge_base_uuid | string | Knowledge base id (example: "123e4567-e89b-12d3-a456-426614174000") |
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_get_knowledge_base
- genai_list_knowledge_bases
To retrive information about an existing knowledge base, send a GET request to /v2/gen-ai/knowledge_bases/{uuid}.
SELECT
database_status,
knowledge_base
FROM digitalocean.genai.knowledge_bases
WHERE uuid = '{{ uuid }}' -- required
;
To list all knowledge bases, send a GET request to /v2/gen-ai/knowledge_bases.
SELECT
knowledge_bases,
links,
meta
FROM digitalocean.genai.knowledge_bases
WHERE page = '{{ page }}'
AND per_page = '{{ per_page }}'
;
INSERT examples
- genai_create_knowledge_base
- Manifest
To create a knowledge base, send a POST request to /v2/gen-ai/knowledge_bases.
INSERT INTO digitalocean.genai.knowledge_bases (
database_id,
datasources,
embedding_model_uuid,
name,
project_id,
region,
reranking_config,
size,
tags,
vpc_uuid
)
SELECT
'{{ database_id }}',
'{{ datasources }}',
'{{ embedding_model_uuid }}',
'{{ name }}',
'{{ project_id }}',
'{{ region }}',
'{{ reranking_config }}',
'{{ size }}',
'{{ tags }}',
'{{ vpc_uuid }}'
RETURNING
knowledge_base
;
# Description fields are for documentation purposes
- name: knowledge_bases
props:
- name: database_id
value: "{{ database_id }}"
description: |
Identifier of the DigitalOcean OpenSearch database this knowledge base will use, optional.
If not provided, we create a new database for the knowledge base in
the same region as the knowledge base.
- name: datasources
description: |
Optional data sources to attach at creation. Omit or use an empty list to create the knowledge base without sources, then add sources (with chunking strategy and sizes) using [Add a Data Source to a Knowledge Base](#operation/create_knowledge_base_data_source). When provided, see [Organize Data Sources](https://docs.digitalocean.com/products/gradient-ai-platform/how-to/create-manage-agent-knowledge-bases/#add-data-sources) for best practices.
value:
- aws_data_source:
bucket_name: "{{ bucket_name }}"
item_path: "{{ item_path }}"
key_id: "{{ key_id }}"
region: "{{ region }}"
secret_key: "{{ secret_key }}"
bucket_name: "{{ bucket_name }}"
bucket_region: "{{ bucket_region }}"
chunking_algorithm: "{{ chunking_algorithm }}"
chunking_options:
child_chunk_size: {{ child_chunk_size }}
max_chunk_size: {{ max_chunk_size }}
parent_chunk_size: {{ parent_chunk_size }}
semantic_threshold: {{ semantic_threshold }}
dropbox_data_source:
folder: "{{ folder }}"
refresh_token: "{{ refresh_token }}"
file_upload_data_source:
original_file_name: "{{ original_file_name }}"
size_in_bytes: "{{ size_in_bytes }}"
stored_object_key: "{{ stored_object_key }}"
google_drive_data_source:
folder_id: "{{ folder_id }}"
refresh_token: "{{ refresh_token }}"
item_path: "{{ item_path }}"
spaces_data_source:
bucket_name: "{{ bucket_name }}"
item_path: "{{ item_path }}"
region: "{{ region }}"
web_crawler_data_source:
base_url: "{{ base_url }}"
crawling_option: "{{ crawling_option }}"
embed_media: {{ embed_media }}
exclude_tags:
- "{{ exclude_tags }}"
- name: embedding_model_uuid
value: "{{ embedding_model_uuid }}"
description: |
Identifier for the [embedding model](https://docs.digitalocean.com/products/genai-platform/details/models/#embedding-models).
- name: name
value: "{{ name }}"
description: |
Name of the knowledge base.
- name: project_id
value: "{{ project_id }}"
description: |
Identifier of the DigitalOcean project this knowledge base will belong to.
- name: region
value: "{{ region }}"
description: |
The datacenter region to deploy the knowledge base in.
- name: reranking_config
description: |
Configuration for cross-encoder reranking during retrieval.
value:
enabled: {{ enabled }}
model: "{{ model }}"
- name: size
value: "{{ size }}"
valid_values: ['OPEN_SEARCH_PLAN_SIZE_UNSPECIFIED', 'OPEN_SEARCH_PLAN_SIZE_SMALL', 'OPEN_SEARCH_PLAN_SIZE_MEDIUM', 'OPEN_SEARCH_PLAN_SIZE_LARGE', 'OPEN_SEARCH_PLAN_SIZE_EXTRA_LARGE']
default: OPEN_SEARCH_PLAN_SIZE_UNSPECIFIED
- name: tags
value:
- "{{ tags }}"
description: |
Tags to organize your knowledge base.
- name: vpc_uuid
value: "{{ vpc_uuid }}"
description: |
The VPC to deploy the knowledge base database in
REPLACE examples
- genai_update_knowledge_base
To update a knowledge base, send a PUT request to /v2/gen-ai/knowledge_bases/{uuid}.
REPLACE digitalocean.genai.knowledge_bases
SET
database_id = '{{ database_id }}',
name = '{{ name }}',
project_id = '{{ project_id }}',
reranking_config = '{{ reranking_config }}',
tags = '{{ tags }}',
uuid = '{{ uuid }}'
WHERE
uuid = '{{ uuid }}' --required
RETURNING
knowledge_base;
DELETE examples
- genai_delete_knowledge_base
To delete a knowledge base, send a DELETE request to /v2/gen-ai/knowledge_bases/{uuid}.
DELETE FROM digitalocean.genai.knowledge_bases
WHERE uuid = '{{ uuid }}' --required
;
Lifecycle Methods
- genai_attach_knowledge_bases
- genai_attach_knowledge_base
- genai_detach_knowledge_base
To attach knowledge bases to an agent, send a POST request to /v2/gen-ai/agents/{agent_uuid}/knowledge_bases
EXEC digitalocean.genai.knowledge_bases.genai_attach_knowledge_bases
@agent_uuid='{{ agent_uuid }}' --required
;
To attach a knowledge base to an agent, send a POST request to /v2/gen-ai/agents/{agent_uuid}/knowledge_bases/{knowledge_base_uuid}
EXEC digitalocean.genai.knowledge_bases.genai_attach_knowledge_base
@agent_uuid='{{ agent_uuid }}' --required,
@knowledge_base_uuid='{{ knowledge_base_uuid }}' --required
;
To detach a knowledge base from an agent, send a DELETE request to /v2/gen-ai/agents/{agent_uuid}/knowledge_bases/{knowledge_base_uuid}.
EXEC digitalocean.genai.knowledge_bases.genai_detach_knowledge_base
@agent_uuid='{{ agent_uuid }}' --required,
@knowledge_base_uuid='{{ knowledge_base_uuid }}' --required
;