## Create `client.knowledgeBases.create(KnowledgeBaseCreateParamsbody?, RequestOptionsoptions?): KnowledgeBaseCreateResponse` **post** `/v2/gen-ai/knowledge_bases` To create a knowledge base, send a POST request to `/v2/gen-ai/knowledge_bases`. ### Parameters - `body: KnowledgeBaseCreateParams` - `database_id?: string` 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. - `datasources?: Array` The data sources to use for this knowledge base. See [Organize Data Sources](https://docs.digitalocean.com/products/genai-platform/concepts/best-practices/#spaces-buckets) for more information on data sources best practices. - `aws_data_source?: AwsDataSource` AWS S3 Data Source - `bucket_name?: string` Spaces bucket name - `item_path?: string` - `key_id?: string` The AWS Key ID - `region?: string` Region of bucket - `secret_key?: string` The AWS Secret Key - `bucket_name?: string` Deprecated, moved to data_source_details - `bucket_region?: string` Deprecated, moved to data_source_details - `dropbox_data_source?: DropboxDataSource` Dropbox Data Source - `folder?: string` - `refresh_token?: string` Refresh token. you can obrain a refresh token by following the oauth2 flow. see /v2/gen-ai/oauth2/dropbox/tokens for reference. - `file_upload_data_source?: APIFileUploadDataSource` File to upload as data source for knowledge base. - `original_file_name?: string` The original file name - `size_in_bytes?: string` The size of the file in bytes - `stored_object_key?: string` The object key the file was stored as - `item_path?: string` - `spaces_data_source?: APISpacesDataSource` Spaces Bucket Data Source - `bucket_name?: string` Spaces bucket name - `item_path?: string` - `region?: string` Region of bucket - `web_crawler_data_source?: APIWebCrawlerDataSource` WebCrawlerDataSource - `base_url?: string` The base url to crawl. - `crawling_option?: "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?: boolean` Whether to ingest and index media (images, etc.) on web pages. - `embedding_model_uuid?: string` Identifier for the [embedding model](https://docs.digitalocean.com/products/genai-platform/details/models/#embedding-models). - `name?: string` Name of the knowledge base. - `project_id?: string` Identifier of the DigitalOcean project this knowledge base will belong to. - `region?: string` The datacenter region to deploy the knowledge base in. - `tags?: Array` Tags to organize your knowledge base. - `vpc_uuid?: string` The VPC to deploy the knowledge base database in ### Returns - `KnowledgeBaseCreateResponse` Information about a newly created knowledge base - `knowledge_base?: APIKnowledgeBase` Knowledgebase Description - `added_to_agent_at?: string` Time when the knowledge base was added to the agent - `created_at?: string` Creation date / time - `database_id?: string` - `embedding_model_uuid?: string` - `is_public?: boolean` Whether the knowledge base is public or not - `last_indexing_job?: APIIndexingJob` IndexingJob description - `completed_datasources?: number` Number of datasources indexed completed - `created_at?: string` Creation date / time - `data_source_uuids?: Array` - `finished_at?: string` - `knowledge_base_uuid?: string` Knowledge base id - `phase?: "BATCH_JOB_PHASE_UNKNOWN" | "BATCH_JOB_PHASE_PENDING" | "BATCH_JOB_PHASE_RUNNING" | 4 more` - `"BATCH_JOB_PHASE_UNKNOWN"` - `"BATCH_JOB_PHASE_PENDING"` - `"BATCH_JOB_PHASE_RUNNING"` - `"BATCH_JOB_PHASE_SUCCEEDED"` - `"BATCH_JOB_PHASE_FAILED"` - `"BATCH_JOB_PHASE_ERROR"` - `"BATCH_JOB_PHASE_CANCELLED"` - `started_at?: string` - `status?: "INDEX_JOB_STATUS_UNKNOWN" | "INDEX_JOB_STATUS_PARTIAL" | "INDEX_JOB_STATUS_IN_PROGRESS" | 4 more` - `"INDEX_JOB_STATUS_UNKNOWN"` - `"INDEX_JOB_STATUS_PARTIAL"` - `"INDEX_JOB_STATUS_IN_PROGRESS"` - `"INDEX_JOB_STATUS_COMPLETED"` - `"INDEX_JOB_STATUS_FAILED"` - `"INDEX_JOB_STATUS_NO_CHANGES"` - `"INDEX_JOB_STATUS_PENDING"` - `tokens?: number` Number of tokens - `total_datasources?: number` Number of datasources being indexed - `total_items_failed?: string` Total Items Failed - `total_items_indexed?: string` Total Items Indexed - `total_items_skipped?: string` Total Items Skipped - `updated_at?: string` Last modified - `uuid?: string` Unique id - `name?: string` Name of knowledge base - `project_id?: string` - `region?: string` Region code - `tags?: Array` Tags to organize related resources - `updated_at?: string` Last modified - `user_id?: string` Id of user that created the knowledge base - `uuid?: string` Unique id for knowledge base ### Example ```typescript import Gradient from '@digitalocean/gradient'; const client = new Gradient(); const knowledgeBase = await client.knowledgeBases.create(); console.log(knowledgeBase.knowledge_base); ```