Endpoint
Header
This API is used to connect to a knowledge base that is independent of the Dify and maintained by developers. For more details, please refer to Connecting to an External Knowledge Base. You can useAPI-Key in the Authorization HTTP Header to verify permissions. The authentication logic is defined by you in the retrieval API, as shown below:
Request Body Elements
The request accepts the following data in JSON format.| Property | Required | Type | Description | Example value |
|---|---|---|---|---|
| knowledge_id | TRUE | string | Your knowledge’s unique ID | AAA-BBB-CCC |
| query | TRUE | string | User’s query | What is Dify? |
| retrieval_setting | TRUE | object | Knowledge’s retrieval parameters | See below |
| metadata_condition | FALSE | Object | Original array filtering | See below |
retrieval_setting property is an object containing the following keys:
| Property | Required | Type | Description | Example value |
|---|---|---|---|---|
| top_k | TRUE | int | Maximum number of retrieved results | 5 |
| score_threshold | TRUE | float | The score limit of relevance of the result to the query, scope: 0~1 | 0.5 |
metadata_condition property is an object containing the following keys:
| Attribute | Required | Type | Description | Example Value |
|---|---|---|---|---|
| logical_operator | No | String | Logical operator, values can be and or or, default is and | and |
| conditions | Yes | Array (Object) | List of conditions | See below |
conditions array contains the following keys:
| Attribute | Required | Type | Description | Example Value |
|---|---|---|---|---|
| name | Yes | Array (String) | Names of the metadata to filter | ["category", "tag"] |
| comparison_operator | Yes | String | Comparison operator | contains |
| value | No | String | Comparison value, can be omitted when the operator is empty, not empty, null, or not null | "AI" |
comparison_operator operators:
contains: Contains a certain valuenot contains: Does not contain a certain valuestart with: Starts with a certain valueend with: Ends with a certain valueis: Equals a certain valueis not: Does not equal a certain valueempty: Is emptynot empty: Is not empty=: Equals≠: Not equal>: Greater than<: Less than≥: Greater than or equal to≤: Less than or equal tobefore: Before a certain dateafter: After a certain date
Request Syntax
Response Elements
If the action is successful, the service sends back an HTTP 200 response. The following data is returned in JSON format by the service.| Property | Required | Type | Description | Example value |
|---|---|---|---|---|
| records | TRUE | List[Object] | A list of records from querying the knowledge base. | See below |
records property is a list object containing the following keys:
| Property | Required | Type | Description | Example value |
|---|---|---|---|---|
| content | TRUE | string | Contains a chunk of text from a data source in the knowledge base. | Dify:The Innovation Engine for GenAI Applications |
| score | TRUE | float | The score of relevance of the result to the query, scope: 0~1 | 0.5 |
| title | TRUE | string | Document title | Dify Introduction |
| metadata | FALSE | json | Contains metadata attributes and their values for the document in the data source. | See example |
Response Syntax
Errors
If the action fails, the service sends back the following error information in JSON format:| Property | Required | Type | Description | Example value |
|---|---|---|---|---|
| error_code | TRUE | int | Error code | 1001 |
| error_msg | TRUE | string | The description of API exception | Invalid Authorization header format. Expected ‘Bearer <api-key>’ format. |
error_code property has the following types:
| Code | Description |
|---|---|
| 1001 | Invalid Authorization header format. |
| 1002 | Authorization failed |
| 2001 | The knowledge does not exist |